--- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -60,7 +60,7 @@ 'pallet-transaction-payment/std', 'pallet-transaction-payment-rpc-runtime-api/std', 'pallet-treasury/std', - 'pallet-vesting/std', + # 'pallet-vesting/std', 'pallet-evm/std', 'pallet-evm-migration/std', 'pallet-evm-contract-helpers/std', @@ -97,6 +97,8 @@ 'xcm/std', 'xcm-builder/std', 'xcm-executor/std', + + "orml-vesting/std", ] limit-testing = ['pallet-nft/limit-testing', 'nft-data-structs/limit-testing'] @@ -210,10 +212,10 @@ git = 'https://github.com/paritytech/substrate.git' branch = 'polkadot-v0.9.12' -[dependencies.pallet-vesting] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'polkadot-v0.9.12' +# [dependencies.pallet-vesting] +# default-features = false +# git = 'https://github.com/paritytech/substrate.git' +# branch = 'polkadot-v0.9.12' [dependencies.sp-arithmetic] default-features = false @@ -359,6 +361,10 @@ branch = 'release-v0.9.12' default-features = false +[dependencies.orml-vesting] +git = "https://github.com/open-web3-stack/open-runtime-module-library" +version = "0.4.1-dev" +default-features = false ################################################################################ # local dependencies --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -22,8 +22,7 @@ use sp_runtime::{ Permill, Perbill, Percent, create_runtime_str, generic, impl_opaque_keys, traits::{ - AccountIdLookup, ConvertInto, BlakeTwo256, Block as BlockT, IdentifyAccount, Verify, - AccountIdConversion, + AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, Verify, AccountIdConversion, }, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, MultiSignature, @@ -70,7 +69,7 @@ use fp_rpc::TransactionStatus; use sp_core::crypto::Public; use sp_runtime::{ - traits::{Dispatchable, PostDispatchInfoOf}, + traits::{BlockNumberProvider, Dispatchable, PostDispatchInfoOf}, transaction_validity::TransactionValidityError, }; @@ -515,17 +514,33 @@ type Call = Call; } +pub struct RelayChainBlockNumberProvider(sp_std::marker::PhantomData); + +impl BlockNumberProvider + for RelayChainBlockNumberProvider +{ + type BlockNumber = BlockNumber; + + fn current_block_number() -> Self::BlockNumber { + cumulus_pallet_parachain_system::Pallet::::validation_data() + .map(|d| d.relay_parent_number) + .unwrap_or_default() + } +} + parameter_types! { pub const MinVestedTransfer: Balance = 10 * UNIQUE; + pub const MaxVestingSchedules: u32 = 28; } -impl pallet_vesting::Config for Runtime { +impl orml_vesting::Config for Runtime { type Event = Event; - type Currency = Balances; - type BlockNumberToBalance = ConvertInto; + type Currency = pallet_balances::Pallet; type MinVestedTransfer = MinVestedTransfer; + type VestedTransferOrigin = EnsureSigned; type WeightInfo = (); - const MAX_VESTING_SCHEDULES: u32 = 28; + type MaxVestingSchedules = MaxVestingSchedules; + type BlockNumberProvider = RelayChainBlockNumberProvider; } parameter_types! { @@ -841,7 +856,8 @@ Treasury: pallet_treasury::{Pallet, Call, Storage, Config, Event} = 34, Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event} = 35, System: system::{Pallet, Call, Storage, Config, Event} = 36, - Vesting: pallet_vesting::{Pallet, Call, Config, Storage, Event} = 37, + Vesting: orml_vesting::{Pallet, Storage, Call, Event, Config} = 37, + // Vesting: pallet_vesting::{Pallet, Call, Config, Storage, Event} = 37, // Contracts: pallet_contracts::{Pallet, Call, Storage, Event} = 38, // XCM helpers.