Skip to content

Commit cf69b67

Browse files
committed
feature(kreivo-runtime): update to stable2512-1
1 parent db3d8af commit cf69b67

File tree

10 files changed

+1475
-1276
lines changed

10 files changed

+1475
-1276
lines changed

Cargo.lock

Lines changed: 1346 additions & 1116 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 72 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -74,98 +74,98 @@ pass-webauthn = { git = "https://github.com/virto-network/pass-authenticators",
7474
pass-substrate-keys = { git = "https://github.com/virto-network/pass-authenticators", default-features = false, package = "pass-authenticators-substrate-keys" }
7575

7676
# Substrate std
77-
pallet-transaction-payment-rpc = { version = "46.0.0" }
78-
sc-chain-spec = { version = "46.0.0" }
79-
sp-consensus = { version = "0.45.0" }
77+
pallet-transaction-payment-rpc = { version = "48.0.0" }
78+
sc-chain-spec = { version = "48.0.0" }
79+
sp-consensus = { version = "0.46.0" }
8080

8181
# Substrate non-std
82-
frame-benchmarking = { version = "43.0.0", default-features = false }
83-
sp-api = { version = "39.0.0", default-features = false }
84-
sp-block-builder = { version = "39.0.0", default-features = false }
85-
sp-consensus-aura = { version = "0.45.0", default-features = false }
86-
sp-core = { version = "38.1.0", default-features = false }
87-
sp-io = { version = "43.0.0", default-features = false }
88-
sp-offchain = { version = "39.0.0", default-features = false }
89-
sp-session = { version = "41.0.0", default-features = false }
90-
sp-transaction-pool = { version = "39.0.0", default-features = false }
82+
frame-benchmarking = { version = "45.0.1", default-features = false }
83+
sp-api = { version = "40.0.0", default-features = false }
84+
sp-block-builder = { version = "40.0.0", default-features = false }
85+
sp-consensus-aura = { version = "0.46.0", default-features = false }
86+
sp-core = { version = "39.0.0", default-features = false }
87+
sp-io = { version = "44.0.0", default-features = false }
88+
sp-offchain = { version = "40.0.0", default-features = false }
89+
sp-session = { version = "42.0.0", default-features = false }
90+
sp-transaction-pool = { version = "40.0.0", default-features = false }
9191

9292
# Substrate Runtime
93-
sp-genesis-builder = { version = "0.20.0", default-features = false }
94-
sp-inherents = { version = "39.0.0", default-features = false }
95-
sp-runtime = { version = "44.0.0", default-features = false }
96-
sp-version = { version = "42.0.0", default-features = false }
97-
sp-weights = { version = "33.1.0", default-features = false }
93+
sp-genesis-builder = { version = "0.21.0", default-features = false }
94+
sp-inherents = { version = "40.0.0", default-features = false }
95+
sp-runtime = { version = "45.0.0", default-features = false }
96+
sp-version = { version = "43.0.0", default-features = false }
97+
sp-weights = { version = "33.2.0", default-features = false }
9898

9999
# Build Dependencies
100-
substrate-wasm-builder = { version = "29.0.0" }
100+
substrate-wasm-builder = { version = "31.1.0" }
101101
parity-wasm = { version = "0.45.0" }
102102

103103
## FRAME Dependencies
104-
frame-executive = { version = "43.0.1", default-features = false }
105-
frame-support = { version = "43.0.0", default-features = false }
106-
frame-system = { version = "43.0.1", default-features = false }
107-
frame-system-benchmarking = { version = "43.0.0", default-features = false }
108-
frame-system-rpc-runtime-api = { version = "39.0.0", default-features = false }
109-
frame-try-runtime = { version = "0.49.0", default-features = false }
104+
frame-executive = { version = "45.0.1", default-features = false }
105+
frame-support = { version = "45.1.0", default-features = false }
106+
frame-system = { version = "45.0.0", default-features = false }
107+
frame-system-benchmarking = { version = "45.0.0", default-features = false }
108+
frame-system-rpc-runtime-api = { version = "40.0.0", default-features = false }
109+
frame-try-runtime = { version = "0.51.0", default-features = false }
110110

111111
## FRAME Pallets
112-
pallet-asset-tx-payment = { version = "43.0.0", default-features = false }
113-
pallet-assets = { version = "46.1.0", default-features = false }
114-
pallet-assets-freezer = { version = "0.11.0", default-features = false }
115-
pallet-assets-holder = { version = "0.6.0", default-features = false }
116-
pallet-aura = { version = "42.0.0", default-features = false }
117-
pallet-authorship = { version = "43.0.0", default-features = false }
118-
pallet-balances = { version = "44.0.0", default-features = false }
119-
pallet-contracts = { version = "43.0.0", default-features = false }
112+
pallet-asset-tx-payment = { version = "45.0.0", default-features = false }
113+
pallet-assets = { version = "48.1.0", default-features = false }
114+
pallet-assets-freezer = { version = "0.13.0", default-features = false }
115+
pallet-assets-holder = { version = "0.8.0", default-features = false }
116+
pallet-aura = { version = "44.0.0", default-features = false }
117+
pallet-authorship = { version = "45.0.0", default-features = false }
118+
pallet-balances = { version = "46.0.0", default-features = false }
119+
pallet-contracts = { version = "45.0.1", default-features = false }
120120
pallet-contracts-fixtures = { path = "pallets/contracts-store/fixtures", default-features = false }
121-
pallet-multisig = { version = "43.0.0", default-features = false }
122-
pallet-nfts = { version = "37.0.0", default-features = false }
123-
pallet-preimage = { version = "43.0.0", default-features = false }
124-
pallet-proxy = { version = "43.1.0", default-features = false }
125-
pallet-ranked-collective = { version = "43.0.1", default-features = false }
126-
pallet-referenda = { version = "43.0.0", default-features = false }
127-
pallet-scheduler = { version = "44.0.0", default-features = false }
128-
pallet-session = { version = "43.0.0", default-features = false }
129-
pallet-skip-feeless-payment = { version = "18.0.0", default-features = false }
130-
pallet-sudo = { version = "43.0.0", default-features = false }
131-
pallet-timestamp = { version = "42.0.0", default-features = false }
132-
pallet-transaction-payment = { version = "43.0.0", default-features = false }
133-
pallet-transaction-payment-rpc-runtime-api = { version = "43.0.0", default-features = false }
134-
pallet-treasury = { version = "42.0.0", default-features = false }
135-
pallet-utility = { version = "43.0.0", default-features = false }
136-
pallet-vesting = { version = "43.0.0", default-features = false }
137-
pallet-revive = { version = "0.10.1", default-features = false }
121+
pallet-multisig = { version = "45.0.0", default-features = false }
122+
pallet-nfts = { version = "39.0.0", default-features = false }
123+
pallet-preimage = { version = "45.0.0", default-features = false }
124+
pallet-proxy = { version = "45.0.0", default-features = false }
125+
pallet-ranked-collective = { version = "45.0.0", default-features = false }
126+
pallet-referenda = { version = "45.0.0", default-features = false }
127+
pallet-scheduler = { version = "46.0.0", default-features = false }
128+
pallet-session = { version = "45.0.0", default-features = false }
129+
pallet-skip-feeless-payment = { version = "20.0.0", default-features = false }
130+
pallet-sudo = { version = "45.0.0", default-features = false }
131+
pallet-timestamp = { version = "44.0.0", default-features = false }
132+
pallet-transaction-payment = { version = "45.0.0", default-features = false }
133+
pallet-transaction-payment-rpc-runtime-api = { version = "45.0.0", default-features = false }
134+
pallet-treasury = { version = "44.0.0", default-features = false }
135+
pallet-utility = { version = "45.0.0", default-features = false }
136+
pallet-vesting = { version = "45.0.0", default-features = false }
137+
pallet-revive = { version = "0.12.2", default-features = false }
138138

139139
# Cumulus client dependencies
140-
cumulus-primitives-aura = { version = "0.20.0", default-features = false }
140+
cumulus-primitives-aura = { version = "0.21.0", default-features = false }
141141

142142
# Cumulus runtime dependencies
143-
assets-common = { version = "0.25.0", default-features = false }
144-
cumulus-pallet-aura-ext = { version = "0.23.0", default-features = false }
145-
cumulus-pallet-parachain-system = { version = "0.23.1", default-features = false }
146-
cumulus-pallet-session-benchmarking = { version = "24.0.0", default-features = false }
147-
cumulus-pallet-xcm = { version = "0.22.0", default-features = false }
148-
cumulus-pallet-xcmp-queue = { version = "0.23.0", default-features = false }
149-
cumulus-primitives-core = { version = "0.21.0", default-features = false }
150-
cumulus-primitives-timestamp = { version = "0.22.0", default-features = false }
151-
cumulus-primitives-utility = { version = "0.23.0", default-features = false }
152-
pallet-collator-selection = { version = "24.0.0", default-features = false }
153-
pallet-message-queue = { version = "46.0.0", default-features = false }
154-
parachain-info = { version = "0.23.0", package = "staging-parachain-info", default-features = false }
155-
parachains-common = { version = "25.0.0", default-features = false }
143+
assets-common = { version = "0.27.1", default-features = false }
144+
cumulus-pallet-aura-ext = { version = "0.25.0", default-features = false }
145+
cumulus-pallet-parachain-system = { version = "0.25.0", default-features = false }
146+
cumulus-pallet-session-benchmarking = { version = "26.0.0", default-features = false }
147+
cumulus-pallet-xcm = { version = "0.24.0", default-features = false }
148+
cumulus-pallet-xcmp-queue = { version = "0.25.0", default-features = false }
149+
cumulus-primitives-core = { version = "0.23.0", default-features = false }
150+
cumulus-primitives-timestamp = { version = "0.24.0", default-features = false }
151+
cumulus-primitives-utility = { version = "0.25.0", default-features = false }
152+
pallet-collator-selection = { version = "26.0.0", default-features = false }
153+
pallet-message-queue = { version = "48.0.0", default-features = false }
154+
parachain-info = { version = "0.25.0", package = "staging-parachain-info", default-features = false }
155+
parachains-common = { version = "27.1.0", default-features = false }
156156

157157
# Polkadot
158-
polkadot-primitives = { version = "21.0.0", default-features = false }
158+
polkadot-primitives = { version = "22.0.0", default-features = false }
159159

160160
# Polkadot Dependencies
161-
pallet-xcm = { version = "23.0.0", default-features = false }
162-
pallet-xcm-benchmarks = { version = "23.0.0", default-features = false }
163-
polkadot-core-primitives = { version = "20.0.0", default-features = false }
164-
polkadot-parachain-primitives = { version = "19.0.0", default-features = false }
165-
polkadot-runtime-common = { version = "22.0.0", default-features = false }
166-
xcm = { version = "19.0.0", package = "staging-xcm", default-features = false }
167-
xcm-builder = { version = "23.0.0", package = "staging-xcm-builder", default-features = false }
168-
xcm-executor = { version = "22.0.0", package = "staging-xcm-executor", default-features = false }
161+
pallet-xcm = { version = "25.0.0", default-features = false }
162+
pallet-xcm-benchmarks = { version = "25.0.0", default-features = false }
163+
polkadot-core-primitives = { version = "21.0.0", default-features = false }
164+
polkadot-parachain-primitives = { version = "20.0.0", default-features = false }
165+
polkadot-runtime-common = { version = "24.0.0", default-features = false }
166+
xcm = { version = "21.0.0", package = "staging-xcm", default-features = false }
167+
xcm-builder = { version = "25.0.0", package = "staging-xcm-builder", default-features = false }
168+
xcm-executor = { version = "24.0.0", package = "staging-xcm-executor", default-features = false }
169169

170170
# ink!
171171
ink = { version = "5.1.1", default-features = false }

runtime/kreivo/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ xcm-executor.workspace = true
9898

9999
# Cumulus
100100
cumulus-pallet-aura-ext.workspace = true
101-
cumulus-pallet-parachain-system = { workspace = true, features = ["experimental-ump-signals"] }
101+
cumulus-pallet-parachain-system.workspace = true
102102
cumulus-pallet-session-benchmarking.workspace = true
103103
cumulus-pallet-xcm.workspace = true
104104
cumulus-pallet-xcmp-queue.workspace = true

runtime/kreivo/src/apis.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use super::*;
22
use pallet_contracts::{CollectEvents, DebugInfo, Determinism};
33
use pallet_revive::evm::runtime::EthExtra;
4+
use pallet_revive::impl_runtime_apis_plus_revive_traits;
45
use sp_api::impl_runtime_apis;
56
use sp_core::OpaqueMetadata;
67
use sp_runtime::{
@@ -43,10 +44,12 @@ impl EthExtra for EthExtraImpl {
4344
}
4445
}
4546

46-
pallet_revive::impl_runtime_apis_plus_revive! {
47+
impl_runtime_apis_plus_revive_traits! {
4748
Runtime,
49+
Revive,
4850
Executive,
4951
EthExtraImpl,
52+
5053
impl sp_consensus_aura::AuraApi<Block, AuraId> for Runtime {
5154
fn slot_duration() -> sp_consensus_aura::SlotDuration {
5255
sp_consensus_aura::SlotDuration::from_millis(RELAY_CHAIN_SLOT_DURATION_MILLIS)
@@ -71,7 +74,7 @@ pallet_revive::impl_runtime_apis_plus_revive! {
7174
VERSION
7275
}
7376

74-
fn execute_block(block: Block) {
77+
fn execute_block(block: <Block as BlockT>::LazyBlock) {
7578
Executive::execute_block(block)
7679
}
7780

@@ -108,7 +111,7 @@ pallet_revive::impl_runtime_apis_plus_revive! {
108111
}
109112

110113
fn check_inherents(
111-
block: Block,
114+
block: <Block as BlockT>::LazyBlock,
112115
data: sp_inherents::InherentData,
113116
) -> sp_inherents::CheckInherentsResult {
114117
data.check_extrinsics(&block)
@@ -322,7 +325,7 @@ pallet_revive::impl_runtime_apis_plus_revive! {
322325
}
323326

324327
fn execute_block(
325-
block: Block,
328+
block: <Block as BlockT>::LazyBlock,
326329
state_root_check: bool,
327330
signature_check: bool,
328331
select: frame_try_runtime::TryStateSelect,

runtime/kreivo/src/config/currency.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,10 @@ pub type KreivoAssetsCall = pallet_assets::Call<Runtime, KreivoAssetsInstance>;
9090
impl pallet_assets::Config<KreivoAssetsInstance> for Runtime {
9191
type RuntimeEvent = RuntimeEvent;
9292
type Balance = Balance;
93-
type RemoveItemsLimit = frame_support::traits::ConstU32<1000>;
93+
type RemoveItemsLimit = ConstU32<1000>;
9494
type AssetId = FungibleAssetLocation;
9595
type AssetIdParameter = FungibleAssetLocation;
96+
type ReserveData = (); // We abide by the rules of Asset Hub
9697
type Currency = Balances;
9798
/// Only root can create assets and force state changes.
9899
#[cfg(not(feature = "runtime-benchmarks"))]

runtime/kreivo/src/config/revive/mod.rs

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,37 +8,44 @@ use frame_system::EnsureSigned;
88
parameter_types! {
99
pub const DepositPerItem: Balance = deposit(1, 0);
1010
pub const DepositPerByte: Balance = deposit(0, 1);
11+
pub const DepositPerChildTrieItem: Balance = deposit(1, 0) / 100;
1112
pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30);
1213
pub const ChainId: u64 = 2281;
1314
}
1415

1516
impl pallet_revive::Config for Runtime {
1617
type Time = Timestamp;
18+
type Balance = Balance;
1719
type Currency = Balances;
1820
type RuntimeEvent = RuntimeEvent;
1921
type RuntimeCall = RuntimeCall;
20-
type DepositPerItem = DepositPerItem;
21-
type DepositPerByte = DepositPerByte;
22-
type WeightPrice = pallet_transaction_payment::Pallet<Self>;
22+
type RuntimeOrigin = RuntimeOrigin;
23+
type RuntimeHoldReason = RuntimeHoldReason;
2324
type WeightInfo = pallet_revive::weights::SubstrateWeight<Self>;
2425
type Precompiles = ();
26+
// 10^(18 - 12) Eth is 10^18, Native is 10^12.
27+
type FindAuthor = <Runtime as pallet_authorship::Config>::FindAuthor;
28+
type DepositPerByte = DepositPerByte;
29+
type DepositPerItem = DepositPerItem;
30+
type DepositPerChildTrieItem = DepositPerChildTrieItem;
31+
type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent;
2532
type AddressMapper = pallet_revive::AccountId32Mapper<Self>;
26-
type RuntimeMemory = ConstU32<{ 128 * 1024 * 1024 }>;
27-
type PVFMemory = ConstU32<{ 512 * 1024 * 1024 }>;
2833
type UnsafeUnstableInterface = ConstBool<true>;
34+
type AllowEVMBytecode = ConstBool<true>;
2935
#[cfg(not(feature = "zombienet"))]
3036
type UploadOrigin = EnsureRootWithSuccess<AccountId, TreasuryAccount>;
31-
#[cfg(not(feature = "zombienet"))]
32-
type InstantiateOrigin = EnsureRootWithSuccess<AccountId, TreasuryAccount>;
3337
#[cfg(feature = "zombienet")]
3438
type UploadOrigin = EnsureSigned<AccountId>;
39+
#[cfg(not(feature = "zombienet"))]
40+
type InstantiateOrigin = EnsureRootWithSuccess<AccountId, TreasuryAccount>;
3541
#[cfg(feature = "zombienet")]
3642
type InstantiateOrigin = EnsureSigned<AccountId>;
37-
type RuntimeHoldReason = RuntimeHoldReason;
38-
type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent;
43+
type RuntimeMemory = ConstU32<{ 128 * 1024 * 1024 }>;
44+
type PVFMemory = ConstU32<{ 512 * 1024 * 1024 }>;
3945
type ChainId = ChainId;
40-
type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12.
41-
type EthGasEncoder = ();
42-
type FindAuthor = <Runtime as pallet_authorship::Config>::FindAuthor;
43-
type AllowEVMBytecode = ConstBool<true>; // Virto accepts EVM Bytecode (?)
46+
type NativeToEthRatio = ConstU32<1_000_000>;
47+
type FeeInfo = pallet_revive::evm::fees::Info<Address, Signature, EthExtraImpl>;
48+
type MaxEthExtrinsicWeight = ();
49+
type DebugEnabled = ConstBool<false>;
50+
type GasScale = (); // Virto accepts EVM Bytecode (?)
4451
}

runtime/kreivo/src/constants.rs

Lines changed: 12 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -33,77 +33,22 @@ pub mod currency {
3333

3434
/// Fee-related.
3535
pub mod fee {
36-
use frame_support::weights::{
37-
constants::ExtrinsicBaseWeight, FeePolynomial, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients,
38-
WeightToFeePolynomial,
39-
};
36+
use frame_support::weights::{constants::ExtrinsicBaseWeight, WeightToFeePolynomial};
4037
use polkadot_core_primitives::Balance;
41-
use smallvec::smallvec;
4238
pub use sp_runtime::Perbill;
4339

44-
/// Handles converting a weight scalar to a fee value, based on the scale
45-
/// and granularity of the node's balance type.
40+
/// `pallet_revive` requires this specific `WeightToFee` implementation.
4641
///
47-
/// This should typically create a mapping between the following ranges:
48-
/// - [0, MAXIMUM_BLOCK_WEIGHT]
49-
/// - [Balance::min, Balance::max]
50-
///
51-
/// Yet, it can be used for any other sort of change to weight-fee. Some
52-
/// examples being:
53-
/// - Setting it to `0` will essentially disable the weight fee.
54-
/// - Setting it to `1` will cause the literal `#[weight = x]` values to
55-
/// be charged.
56-
pub struct WeightToFee;
57-
impl frame_support::weights::WeightToFee for WeightToFee {
58-
type Balance = Balance;
59-
60-
fn weight_to_fee(weight: &Weight) -> Self::Balance {
61-
let time_poly: FeePolynomial<Balance> = RefTimeToFee::polynomial().into();
62-
let proof_poly: FeePolynomial<Balance> = ProofSizeToFee::polynomial().into();
63-
64-
// Take the maximum instead of the sum to charge by the more scarce resource.
65-
time_poly
66-
.eval(weight.ref_time())
67-
.max(proof_poly.eval(weight.proof_size()))
68-
}
69-
}
70-
71-
/// Maps the reference time component of `Weight` to a fee.
72-
pub struct RefTimeToFee;
73-
impl WeightToFeePolynomial for RefTimeToFee {
74-
type Balance = Balance;
75-
fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
76-
// in Kusama, extrinsic base weight (smallest non-zero weight) is mapped to 1/10
77-
// CENT: in Statemine, we map to 1/10 of that, or 1/100 CENT
78-
let p = super::currency::CENTS;
79-
let q = 100 * Balance::from(ExtrinsicBaseWeight::get().ref_time());
80-
81-
smallvec![WeightToFeeCoefficient {
82-
degree: 1,
83-
negative: false,
84-
coeff_frac: Perbill::from_rational(p % q, q),
85-
coeff_integer: p / q,
86-
}]
87-
}
88-
}
89-
90-
/// Maps the proof size component of `Weight` to a fee.
91-
pub struct ProofSizeToFee;
92-
impl WeightToFeePolynomial for ProofSizeToFee {
93-
type Balance = Balance;
94-
fn polynomial() -> WeightToFeeCoefficients<Self::Balance> {
95-
// Map 10kb proof to 1 CENT.
96-
let p = super::currency::CENTS;
97-
let q = 10_000;
98-
99-
smallvec![WeightToFeeCoefficient {
100-
degree: 1,
101-
negative: false,
102-
coeff_frac: Perbill::from_rational(p % q, q),
103-
coeff_integer: p / q,
104-
}]
105-
}
106-
}
42+
/// This is needed because we make certain assumptions about how weight
43+
/// is mapped to fees. Enforced at compile time.
44+
pub type WeightToFee = pallet_revive::evm::fees::BlockRatioFee<
45+
// p
46+
{ super::currency::CENTS },
47+
// q
48+
{ 100 * ExtrinsicBaseWeight::get().ref_time() as u128 },
49+
crate::Runtime,
50+
Balance,
51+
>;
10752
}
10853

10954
pub mod locations {

runtime/kreivo/src/genesis_config_presets.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ mod local {
8282
metadata: vec![(FungibleAssetLocation::Here(1), b"testUSD".to_vec(), b"tUSD".to_vec(), 3)],
8383
accounts: vec![(FungibleAssetLocation::Here(1), alice(), 100_000_000_000)],
8484
next_asset_id: None,
85+
reserves: vec![],
8586
},
8687
});
8788

0 commit comments

Comments
 (0)