difftreelog
Merge branch 'develop' into feature/ci-refactoring
in: master
19 files changed
Cargo.lockdiffbeforeafterboth5385 "pallet-treasury",5385 "pallet-treasury",5386 "pallet-unique",5386 "pallet-unique",5387 "pallet-unique-scheduler",5387 "pallet-unique-scheduler",5388 "pallet-unique-scheduler-v2",5389 "pallet-xcm",5388 "pallet-xcm",5390 "parachain-info",5389 "parachain-info",5391 "parity-scale-codec 3.2.1",5390 "parity-scale-codec 3.2.1",6709dependencies = [6708dependencies = [6710 "frame-support",6709 "frame-support",6711 "frame-system",6710 "frame-system",6712 "pallet-unique-scheduler-v2",6711 "pallet-unique-scheduler",6713 "parity-scale-codec 3.2.1",6712 "parity-scale-codec 3.2.1",6714 "scale-info",6713 "scale-info",6715]6714]6853 "up-sponsorship",6852 "up-sponsorship",6854]6853]68556856[[package]]6857name = "pallet-unique-scheduler-v2"6858version = "0.1.0"6859dependencies = [6860 "frame-benchmarking",6861 "frame-support",6862 "frame-system",6863 "log",6864 "pallet-preimage",6865 "parity-scale-codec 3.2.1",6866 "scale-info",6867 "sp-core",6868 "sp-io",6869 "sp-runtime",6870 "sp-std",6871 "substrate-test-utils",6872]687368546874[[package]]6855[[package]]6875name = "pallet-utility"6856name = "pallet-utility"client/rpc/src/lib.rsdiffbeforeafterboth551552552 #[map(|keys| string_keys_to_bytes_keys(keys))]553 #[map(|keys| string_keys_to_bytes_keys(keys))]553 keys: Option<Vec<String>>,554 keys: Option<Vec<String>>,554 ) -> TokenData<CrossAccountId>, unique_api);555 ) -> TokenData<CrossAccountId>, unique_api;556 changed_in 3, token_data_before_version_3(collection, token_id, string_keys_to_bytes_keys(keys)) => |value| value.into()557 );555558556 pass_method!(adminlist(collection: CollectionId) -> Vec<CrossAccountId>, unique_api);559 pass_method!(adminlist(collection: CollectionId) -> Vec<CrossAccountId>, unique_api);kb/how-not-to-break-rpc.mddiffbeforeafterbothno changes
pallets/scheduler-v2/Cargo.tomldiffbeforeafterbothno changes
pallets/scheduler-v2/src/benchmarking.rsdiffbeforeafterbothno changes
pallets/scheduler-v2/src/lib.rsdiffbeforeafterbothno changes
pallets/scheduler-v2/src/mock.rsdiffbeforeafterbothno changes
pallets/scheduler-v2/src/tests.rsdiffbeforeafterbothno changes
pallets/scheduler-v2/src/weights.rsdiffbeforeafterbothno changes
primitives/data-structs/src/lib.rsdiffbeforeafterboth221}221}222222223/// Token data.223/// Token data.224#[struct_versioning::versioned(version = 2, upper)]224#[derive(Encode, Decode, Clone, PartialEq, TypeInfo)]225#[derive(Encode, Decode, Clone, PartialEq, TypeInfo)]225#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]226#[cfg_attr(feature = "serde1", derive(Serialize, Deserialize))]226pub struct TokenData<CrossAccountId> {227pub struct TokenData<CrossAccountId> {231 pub owner: Option<CrossAccountId>,232 pub owner: Option<CrossAccountId>,232233233 /// Token pieces.234 /// Token pieces.235 #[version(2.., upper(0))]234 pub pieces: u128,236 pub pieces: u128,235}237}236238primitives/rpc/src/lib.rsdiffbeforeafterboth202021use up_data_structs::{21use up_data_structs::{22 CollectionId, TokenId, RpcCollection, CollectionStats, CollectionLimits, Property,22 CollectionId, TokenId, RpcCollection, CollectionStats, CollectionLimits, Property,23 PropertyKeyPermission, TokenData, TokenChild, RpcCollectionVersion1,23 PropertyKeyPermission, TokenData, TokenChild, RpcCollectionVersion1, TokenDataVersion1,24};24};252526use sp_std::vec::Vec;26use sp_std::vec::Vec;77 keys: Option<Vec<Vec<u8>>>77 keys: Option<Vec<Vec<u8>>>78 ) -> Result<TokenData<CrossAccountId>>;78 ) -> Result<TokenData<CrossAccountId>>;7980 #[changed_in(3)]81 fn token_data(82 collection: CollectionId,83 token_id: TokenId,84 keys: Option<Vec<Vec<u8>>>85 ) -> Result<TokenDataVersion1<CrossAccountId>>;798680 /// Total number of tokens in collection.87 /// Total number of tokens in collection.81 fn total_supply(collection: CollectionId) -> Result<u32>;88 fn total_supply(collection: CollectionId) -> Result<u32>;runtime/common/config/pallets/scheduler.rsdiffbeforeafterboth27 runtime_common::{scheduler::SchedulerPaymentExecutor, config::substrate::RuntimeBlockWeights},27 runtime_common::{scheduler::SchedulerPaymentExecutor, config::substrate::RuntimeBlockWeights},28 Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, OriginCaller, Balances,28 Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, OriginCaller, Balances,29};29};30use pallet_unique_scheduler_v2::ScheduledEnsureOriginSuccess;30use pallet_unique_scheduler::ScheduledEnsureOriginSuccess;31use up_common::types::AccountId;31use up_common::types::AccountId;323233parameter_types! {33parameter_types! {70 }70 }71}71}7273// impl pallet_unique_scheduler::Config for Runtime {74// type RuntimeEvent = RuntimeEvent;75// type RuntimeOrigin = RuntimeOrigin;76// type Currency = Balances;77// type PalletsOrigin = OriginCaller;78// type RuntimeCall = RuntimeCall;79// type MaximumWeight = MaximumSchedulerWeight;80// type ScheduleOrigin = EnsureSignedOrRoot<AccountId>;81// type PrioritySetOrigin = EnsureRoot<AccountId>;82// type MaxScheduledPerBlock = MaxScheduledPerBlock;83// type WeightInfo = ();84// type CallExecutor = SchedulerPaymentExecutor;85// type OriginPrivilegeCmp = EqualOrRootOnly;86// type PreimageProvider = ();87// type NoPreimagePostponement = NoPreimagePostponement;88// }897290impl pallet_unique_scheduler_v2::Config for Runtime {73impl pallet_unique_scheduler::Config for Runtime {91 type RuntimeEvent = RuntimeEvent;74 type RuntimeEvent = RuntimeEvent;92 type RuntimeOrigin = RuntimeOrigin;75 type RuntimeOrigin = RuntimeOrigin;76 type Currency = Balances;93 type PalletsOrigin = OriginCaller;77 type PalletsOrigin = OriginCaller;94 type RuntimeCall = RuntimeCall;78 type RuntimeCall = RuntimeCall;95 type MaximumWeight = MaximumSchedulerWeight;79 type MaximumWeight = MaximumSchedulerWeight;96 type ScheduleOrigin = EnsureSignedOrRoot<AccountId>;80 type ScheduleOrigin = EnsureSignedOrRoot<AccountId>;97 type OriginPrivilegeCmp = EqualOrRootOnly;81 type PrioritySetOrigin = EnsureRoot<AccountId>;98 type MaxScheduledPerBlock = MaxScheduledPerBlock;82 type MaxScheduledPerBlock = MaxScheduledPerBlock;99 type WeightInfo = ();83 type WeightInfo = ();100 type Preimages = ();84 type CallExecutor = SchedulerPaymentExecutor;101 type CallExecutor = SchedulerPaymentExecutor;85 type OriginPrivilegeCmp = EqualOrRootOnly;102 type PrioritySetOrigin = EnsureRoot<AccountId>;86 type PreimageProvider = ();87 type NoPreimagePostponement = NoPreimagePostponement;103}88}10489runtime/common/construct_runtime/mod.rsdiffbeforeafterboth57 Inflation: pallet_inflation::{Pallet, Call, Storage} = 60,57 Inflation: pallet_inflation::{Pallet, Call, Storage} = 60,58 Unique: pallet_unique::{Pallet, Call, Storage, Event<T>} = 61,58 Unique: pallet_unique::{Pallet, Call, Storage, Event<T>} = 61,595960 // #[runtimes(opal)]60 #[runtimes(opal)]61 // Scheduler: pallet_unique_scheduler::{Pallet, Call, Storage, Event<T>} = 62,61 Scheduler: pallet_unique_scheduler::{Pallet, Call, Storage, Event<T>} = 62,626263 Configuration: pallet_configuration::{Pallet, Call, Storage} = 63,63 Configuration: pallet_configuration::{Pallet, Call, Storage} = 63,646494 EvmTransactionPayment: pallet_evm_transaction_payment::{Pallet} = 152,94 EvmTransactionPayment: pallet_evm_transaction_payment::{Pallet} = 152,95 EvmMigration: pallet_evm_migration::{Pallet, Call, Storage} = 153,95 EvmMigration: pallet_evm_migration::{Pallet, Call, Storage} = 153,9697 #[runtimes(opal)]98 Scheduler: pallet_unique_scheduler_v2::{Pallet, Call, Storage, Event<T>} = 154,9996100 #[runtimes(opal)]97 #[runtimes(opal)]101 TestUtils: pallet_test_utils = 255,98 TestUtils: pallet_test_utils = 255,runtime/common/scheduler.rsdiffbeforeafterboth28use crate::{Runtime, RuntimeCall, RuntimeOrigin, Balances};28use crate::{Runtime, RuntimeCall, RuntimeOrigin, Balances};29use up_common::types::{AccountId, Balance};29use up_common::types::{AccountId, Balance};30use fp_self_contained::SelfContainedCall;30use fp_self_contained::SelfContainedCall;31use pallet_unique_scheduler_v2::DispatchCall;31use pallet_unique_scheduler::DispatchCall;32use pallet_transaction_payment::ChargeTransactionPayment;32use pallet_transaction_payment::ChargeTransactionPayment;333334// type SponsorshipChargeTransactionPayment =34type SponsorshipChargeTransactionPayment =35// pallet_charge_transaction::ChargeTransactionPayment<Runtime>;35 pallet_charge_transaction::ChargeTransactionPayment<Runtime>;363637/// The SignedExtension to the basic transaction logic.37/// The SignedExtension to the basic transaction logic.38pub type SignedExtraScheduler = (38pub type SignedExtraScheduler = (595960pub struct SchedulerPaymentExecutor;60pub struct SchedulerPaymentExecutor;616162impl<T: frame_system::Config + pallet_unique_scheduler_v2::Config, SelfContainedSignedInfo>62impl<T: frame_system::Config + pallet_unique_scheduler::Config, SelfContainedSignedInfo>63 DispatchCall<T, SelfContainedSignedInfo> for SchedulerPaymentExecutor63 DispatchCall<T, SelfContainedSignedInfo> for SchedulerPaymentExecutor64where64where65 <T as frame_system::Config>::RuntimeCall: Member65 <T as frame_system::Config>::RuntimeCall: Member69 + From<frame_system::Call<Runtime>>,69 + From<frame_system::Call<Runtime>>,70 SelfContainedSignedInfo: Send + Sync + 'static,70 SelfContainedSignedInfo: Send + Sync + 'static,71 RuntimeCall: From<<T as frame_system::Config>::RuntimeCall>71 RuntimeCall: From<<T as frame_system::Config>::RuntimeCall>72 + From<<T as pallet_unique_scheduler_v2::Config>::RuntimeCall>72 + From<<T as pallet_unique_scheduler::Config>::RuntimeCall>73 + SelfContainedCall<SignedInfo = SelfContainedSignedInfo>,73 + SelfContainedCall<SignedInfo = SelfContainedSignedInfo>,74 sp_runtime::AccountId32: From<<T as frame_system::Config>::AccountId>,74 sp_runtime::AccountId32: From<<T as frame_system::Config>::AccountId>,75{75{76 fn dispatch_call(76 fn dispatch_call(77 signer: Option<<T as frame_system::Config>::AccountId>,77 signer: Option<<T as frame_system::Config>::AccountId>,78 call: <T as pallet_unique_scheduler_v2::Config>::RuntimeCall,78 call: <T as pallet_unique_scheduler::Config>::RuntimeCall,79 ) -> Result<79 ) -> Result<80 Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>,80 Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>,81 TransactionValidityError,81 TransactionValidityError,104 extrinsic.apply::<Runtime>(&dispatch_info, len)104 extrinsic.apply::<Runtime>(&dispatch_info, len)105 }105 }106107 fn reserve_balance(108 id: [u8; 16],109 sponsor: <T as frame_system::Config>::AccountId,110 call: <T as pallet_unique_scheduler::Config>::RuntimeCall,111 count: u32,112 ) -> Result<(), DispatchError> {113 let dispatch_info = call.get_dispatch_info();114 let weight: Balance =115 SponsorshipChargeTransactionPayment::traditional_fee(0, &dispatch_info, 0)116 .saturating_mul(count.into());117118 <Balances as NamedReservableCurrency<AccountId>>::reserve_named(119 &id,120 &(sponsor.into()),121 weight,122 )123 }124125 fn pay_for_call(126 id: [u8; 16],127 sponsor: <T as frame_system::Config>::AccountId,128 call: <T as pallet_unique_scheduler::Config>::RuntimeCall,129 ) -> Result<u128, DispatchError> {130 let dispatch_info = call.get_dispatch_info();131 let weight: Balance =132 SponsorshipChargeTransactionPayment::traditional_fee(0, &dispatch_info, 0);133 Ok(134 <Balances as NamedReservableCurrency<AccountId>>::unreserve_named(135 &id,136 &(sponsor.into()),137 weight,138 ),139 )140 }141142 fn cancel_reserve(143 id: [u8; 16],144 sponsor: <T as frame_system::Config>::AccountId,145 ) -> Result<u128, DispatchError> {146 Ok(147 <Balances as NamedReservableCurrency<AccountId>>::unreserve_named(148 &id,149 &(sponsor.into()),150 u128::MAX,151 ),152 )153 }106}154}107108// impl<T: frame_system::Config + pallet_unique_scheduler::Config, SelfContainedSignedInfo>109// DispatchCall<T, SelfContainedSignedInfo> for SchedulerPaymentExecutor110// where111// <T as frame_system::Config>::Call: Member112// + Dispatchable<Origin = Origin, Info = DispatchInfo>113// + SelfContainedCall<SignedInfo = SelfContainedSignedInfo>114// + GetDispatchInfo115// + From<frame_system::Call<Runtime>>,116// SelfContainedSignedInfo: Send + Sync + 'static,117// Call: From<<T as frame_system::Config>::Call>118// + From<<T as pallet_unique_scheduler::Config>::Call>119// + SelfContainedCall<SignedInfo = SelfContainedSignedInfo>,120// sp_runtime::AccountId32: From<<T as frame_system::Config>::AccountId>,121// {122// fn dispatch_call(123// signer: Option<<T as frame_system::Config>::AccountId>,124// call: <T as pallet_unique_scheduler::Config>::Call,125// ) -> Result<126// Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>,127// TransactionValidityError,128// > {129// let dispatch_info = call.get_dispatch_info();130// let len = call.encoded_size();131132// let signed = match signer {133// Some(signer) => fp_self_contained::CheckedSignature::Signed(134// signer.clone().into(),135// get_signed_extras(signer.into()),136// ),137// None => fp_self_contained::CheckedSignature::Unsigned,138// };139140// let extrinsic = fp_self_contained::CheckedExtrinsic::<141// AccountId,142// Call,143// SignedExtraScheduler,144// SelfContainedSignedInfo,145// > {146// signed,147// function: call.into(),148// };149150// extrinsic.apply::<Runtime>(&dispatch_info, len)151// }152153// fn reserve_balance(154// id: [u8; 16],155// sponsor: <T as frame_system::Config>::AccountId,156// call: <T as pallet_unique_scheduler::Config>::Call,157// count: u32,158// ) -> Result<(), DispatchError> {159// let dispatch_info = call.get_dispatch_info();160// let weight: Balance =161// SponsorshipChargeTransactionPayment::traditional_fee(0, &dispatch_info, 0)162// .saturating_mul(count.into());163164// <Balances as NamedReservableCurrency<AccountId>>::reserve_named(165// &id,166// &(sponsor.into()),167// weight,168// )169// }170171// fn pay_for_call(172// id: [u8; 16],173// sponsor: <T as frame_system::Config>::AccountId,174// call: <T as pallet_unique_scheduler::Config>::Call,175// ) -> Result<u128, DispatchError> {176// let dispatch_info = call.get_dispatch_info();177// let weight: Balance =178// SponsorshipChargeTransactionPayment::traditional_fee(0, &dispatch_info, 0);179// Ok(180// <Balances as NamedReservableCurrency<AccountId>>::unreserve_named(181// &id,182// &(sponsor.into()),183// weight,184// ),185// )186// }187188// fn cancel_reserve(189// id: [u8; 16],190// sponsor: <T as frame_system::Config>::AccountId,191// ) -> Result<u128, DispatchError> {192// Ok(193// <Balances as NamedReservableCurrency<AccountId>>::unreserve_named(194// &id,195// &(sponsor.into()),196// u128::MAX,197// ),198// )199// }200// }201155runtime/opal/Cargo.tomldiffbeforeafterboth42 'pallet-inflation/runtime-benchmarks',42 'pallet-inflation/runtime-benchmarks',43 'pallet-app-promotion/runtime-benchmarks',43 'pallet-app-promotion/runtime-benchmarks',44 'pallet-unique-scheduler/runtime-benchmarks',44 'pallet-unique-scheduler/runtime-benchmarks',45 'pallet-unique-scheduler-v2/runtime-benchmarks',46 'pallet-xcm/runtime-benchmarks',45 'pallet-xcm/runtime-benchmarks',47 'sp-runtime/runtime-benchmarks',46 'sp-runtime/runtime-benchmarks',48 'xcm-builder/runtime-benchmarks',47 'xcm-builder/runtime-benchmarks',141 'pallet-proxy-rmrk-equip/std',140 'pallet-proxy-rmrk-equip/std',142 'pallet-unique/std',141 'pallet-unique/std',143 'pallet-unique-scheduler/std',142 'pallet-unique-scheduler/std',144 'pallet-unique-scheduler-v2/std',145 'pallet-charge-transaction/std',143 'pallet-charge-transaction/std',146 'up-data-structs/std',144 'up-data-structs/std',147 'sp-api/std',145 'sp-api/std',474pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }472pallet-proxy-rmrk-equip = { default-features = false, path = "../../pallets/proxy-rmrk-equip", package = "pallet-rmrk-equip" }475pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }473pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }476pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.30", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }474pallet-charge-transaction = { git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.30", package = "pallet-template-transaction-payment", default-features = false, version = "3.0.0" }477pallet-unique-scheduler-v2 = { path = '../../pallets/scheduler-v2', default-features = false }478pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }475pallet-evm-migration = { path = '../../pallets/evm-migration', default-features = false }479pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }476pallet-evm-contract-helpers = { path = '../../pallets/evm-contract-helpers', default-features = false }480pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }477pallet-evm-transaction-payment = { path = '../../pallets/evm-transaction-payment', default-features = false }test-pallets/utils/Cargo.tomldiffbeforeafterboth10scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }10scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }11frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }11frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }12frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }12frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" }13# pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }14pallet-unique-scheduler-v2 = { path = '../../pallets/scheduler-v2', default-features = false }13pallet-unique-scheduler = { path = '../../pallets/scheduler', default-features = false }151416[features]15[features]17default = ["std"]16default = ["std"]20 "scale-info/std",19 "scale-info/std",21 "frame-support/std",20 "frame-support/std",22 "frame-system/std",21 "frame-system/std",23 "pallet-unique-scheduler-v2/std",22 "pallet-unique-scheduler/std",24]23]2524test-pallets/utils/src/lib.rsdiffbeforeafterboth24pub mod pallet {24pub mod pallet {25 use frame_support::pallet_prelude::*;25 use frame_support::pallet_prelude::*;26 use frame_system::pallet_prelude::*;26 use frame_system::pallet_prelude::*;27 use pallet_unique_scheduler_v2::{TaskName, Pallet as SchedulerPallet};27 use pallet_unique_scheduler::{ScheduledId, Pallet as SchedulerPallet};282829 #[pallet::config]29 #[pallet::config]30 pub trait Config: frame_system::Config + pallet_unique_scheduler_v2::Config {30 pub trait Config: frame_system::Config + pallet_unique_scheduler::Config {31 type RuntimeEvent: From<Event<Self>> + IsType<<Self as frame_system::Config>::RuntimeEvent>;31 type RuntimeEvent: From<Event<Self>> + IsType<<Self as frame_system::Config>::RuntimeEvent>;32 }32 }333394 #[pallet::weight(10_000)]94 #[pallet::weight(10_000)]95 pub fn self_canceling_inc(95 pub fn self_canceling_inc(96 origin: OriginFor<T>,96 origin: OriginFor<T>,97 id: TaskName,97 id: ScheduledId,98 max_test_value: u32,98 max_test_value: u32,99 ) -> DispatchResult {99 ) -> DispatchResult {100 Self::ensure_origin_and_enabled(origin.clone())?;100 Self::ensure_origin_and_enabled(origin.clone())?;101 Self::inc_test_value(origin.clone())?;102101103 if <TestValue<T>>::get() == max_test_value {102 if <TestValue<T>>::get() < max_test_value {103 Self::inc_test_value(origin)?;104 } else {104 SchedulerPallet::<T>::cancel_named(origin, id)?;105 SchedulerPallet::<T>::cancel_named(origin, id)?;105 }106 }106107tests/src/util/playgrounds/unique.dev.tsdiffbeforeafterboth308 await this.helper.wait.noScheduledTasks();308 await this.helper.wait.noScheduledTasks();309309310 function makeId(slider: number) {310 function makeId(slider: number) {311 const scheduledIdSize = 64;311 const scheduledIdSize = 32;312 const hexId = slider.toString(16);312 const hexId = slider.toString(16);313 const prefixSize = scheduledIdSize - hexId.length;313 const prefixSize = scheduledIdSize - hexId.length;314314tests/src/util/playgrounds/unique.tsdiffbeforeafterboth2838 this.blocksNum,2838 this.blocksNum,2839 this.options.periodic ? [this.options.periodic.period, this.options.periodic.repetitions] : null,2839 this.options.periodic ? [this.options.periodic.period, this.options.periodic.repetitions] : null,2840 this.options.priority ?? null,2840 this.options.priority ?? null,2841 scheduledTx,2841 {Value: scheduledTx},2842 ],2842 ],2843 expectSuccess,2843 expectSuccess,2844 );2844 );