Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add try-runtime and update to polkadot-sdk 1.7.2 #73

Merged
merged 7 commits into from
Mar 7, 2024
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,464 changes: 1,746 additions & 718 deletions Cargo.lock

Large diffs are not rendered by default.

31 changes: 16 additions & 15 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,22 @@ version = '0.6.0'
description = "Reward citizens who participated in a crowdloan to acquire a parachain slot o nthe backing relay chain."

[dependencies]
parity-scale-codec = { version = "3.1.5", default-features = false}
serde = { version = "1.0.101", optional = true, features = ["derive"], default-features = false }
log = { version = "0.4", default-features = false }
scale-info = { version = "2.0", default-features = false, features = ["derive"] }

frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" }
frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" }
sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" }
sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" }
sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" }
sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" }
pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" }
pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" }
frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.43" }
ed25519-dalek = { version = "1.0.1", default-features = false, features = ["u64_backend", "alloc"], optional = true }
sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.43" }
log = { version = "0.4.20", default-features = false }
parity-scale-codec = { version = "3.6.5", default-features = false}
scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
serde = { version = "1.0.188", optional = true, features = ["derive"], default-features = false }

frame-support = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-polkadot-v1.7.2" }
frame-system = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-polkadot-v1.7.2" }
sp-core = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-polkadot-v1.7.2" }
sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-polkadot-v1.7.2" }
sp-std = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-polkadot-v1.7.2" }
sp-io = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-polkadot-v1.7.2" }
pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-polkadot-v1.7.2" }
pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, branch = "release-polkadot-v1.7.2" }
frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, optional = true , branch = "release-polkadot-v1.7.2" }
sp-trie = { git = "https://github.com/paritytech/polkadot-sdk", default-features = false, optional = true , branch = "release-polkadot-v1.7.2" }

[features]
default = ["std"]
Expand All @@ -46,3 +46,4 @@ runtime-benchmarks = [
"ed25519-dalek",
"sp-runtime/runtime-benchmarks"
]
try-runtime = ["frame-support/try-runtime"]
2 changes: 1 addition & 1 deletion rust-toolchain
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[toolchain]
channel = "nightly-2022-11-14"
channel = "1.74.0"
components = [ "rustfmt", "clippy" ]
targets = [ "wasm32-unknown-unknown" ]
profile = "minimal"
16 changes: 9 additions & 7 deletions src/benchmarks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ use crate::{BalanceOf, Call, Pallet, WRAPPED_BYTES_POSTFIX, WRAPPED_BYTES_PREFIX
use ed25519_dalek::Signer;
use frame_benchmarking::{account, benchmarks, impl_benchmark_test_suite};
use frame_support::traits::{Currency, Get, OnFinalize};
use frame_system::pallet_prelude::*;
use frame_system::RawOrigin;
use parity_scale_codec::Encode;
use sp_core::{
Expand Down Expand Up @@ -159,7 +160,7 @@ benchmarks! {

// We need to create the first block inherent, to initialize the initRelayBlock
T::VestingBlockProvider::set_block_number(1u32.into());
Pallet::<T>::on_finalize(T::BlockNumber::one());
Pallet::<T>::on_finalize(BlockNumberFor::<T>::one());

}: _(RawOrigin::Root, 10u32.into())
verify {
Expand Down Expand Up @@ -187,7 +188,7 @@ benchmarks! {

// First inherent
T::VestingBlockProvider::set_block_number(1u32.into());
Pallet::<T>::on_finalize(T::BlockNumber::one());
Pallet::<T>::on_finalize(BlockNumberFor::<T>::one());

// Create 4th relay block, by now the user should have vested some amount
T::VestingBlockProvider::set_block_number(4u32.into());
Expand Down Expand Up @@ -218,7 +219,7 @@ benchmarks! {

// First inherent
T::VestingBlockProvider::set_block_number(1u32.into());
Pallet::<T>::on_finalize(T::BlockNumber::one());
Pallet::<T>::on_finalize(BlockNumberFor::<T>::one());


// Let's advance the relay so that the vested amount get transferred
Expand Down Expand Up @@ -263,7 +264,7 @@ benchmarks! {

// First inherent
T::VestingBlockProvider::set_block_number(1u32.into());
Pallet::<T>::on_finalize(T::BlockNumber::one());
Pallet::<T>::on_finalize(BlockNumberFor::<T>::one());

}: _(RawOrigin::Signed(caller.clone()), caller.clone(), relay_account.into(), signature)
verify {
Expand Down Expand Up @@ -317,7 +318,7 @@ benchmarks! {

// First inherent
T::VestingBlockProvider::set_block_number(1u32.into());
Pallet::<T>::on_finalize(T::BlockNumber::one());
Pallet::<T>::on_finalize(BlockNumberFor::<T>::one());

}: _(RawOrigin::Signed(first_reward_account.clone()), second_reward_account.clone(), first_reward_account.clone(), proofs)
verify {
Expand All @@ -332,10 +333,11 @@ benchmarks! {
mod tests {
use crate::mock::Test;
use sp_io::TestExternalities;
use sp_runtime::BuildStorage;

pub fn new_test_ext() -> TestExternalities {
let t = frame_system::GenesisConfig::default()
.build_storage::<Test>()
let t = frame_system::GenesisConfig::<Test>::default()
.build_storage()
.unwrap();
TestExternalities::new(t)
}
Expand Down
9 changes: 5 additions & 4 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,10 @@

#![cfg_attr(not(feature = "std"), no_std)]

pub use crate::weights::WeightInfo;
use frame_support::pallet;
pub use pallet::*;

#[cfg(any(test, feature = "runtime-benchmarks"))]
mod benchmarks;
#[cfg(test)]
Expand All @@ -72,8 +74,7 @@ pub mod weights;

#[pallet]
pub mod pallet {

use crate::weights::WeightInfo;
use super::*;
use frame_support::traits::WithdrawReasons;
use frame_support::{
pallet_prelude::*,
Expand Down Expand Up @@ -167,7 +168,7 @@ pub mod pallet {
// This hook is in charge of initializing the vesting height at the first block of the parachain
#[pallet::hooks]
impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
fn on_finalize(n: <T as frame_system::Config>::BlockNumber) {
fn on_finalize(n: BlockNumberFor<T>) {
// In the first block of the parachain we need to introduce the vesting block related info
if n == 1u32.into() {
<InitVestingBlock<T>>::put(T::VestingBlockProvider::current_block_number());
Expand Down Expand Up @@ -705,7 +706,7 @@ pub mod pallet {
}

#[pallet::genesis_build]
impl<T: Config> GenesisBuild<T> for GenesisConfig<T> {
impl<T: Config> BuildGenesisConfig for GenesisConfig<T> {
// This sets the funds of the crowdloan pallet
fn build(&self) {
T::RewardCurrency::deposit_creating(&Pallet::<T>::account_id(), self.funded_amount);
Expand Down
33 changes: 14 additions & 19 deletions src/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,33 +18,28 @@
use crate::{self as pallet_crowdloan_rewards, Config};
use frame_support::{
construct_runtime, parameter_types,
traits::{ConstU32, GenesisBuild, Nothing, OnFinalize, OnInitialize},
traits::{ConstU32, Nothing, OnFinalize, OnInitialize},
};
use frame_system::EnsureSigned;
use sp_core::{ed25519, Pair, H256};
use sp_io;
use sp_runtime::{
testing::Header,
traits::{BlakeTwo256, IdentityLookup},
Perbill,
BuildStorage, Perbill,
};
use sp_std::convert::{From, TryInto};

pub type Balance = u128;

type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;
type Block = frame_system::mocking::MockBlock<Test>;

construct_runtime!(
pub enum Test where
Block = Block,
NodeBlock = Block,
UncheckedExtrinsic = UncheckedExtrinsic,
pub enum Test
{
System: frame_system::{Pallet, Call, Config, Storage, Event<T>},
Balances: pallet_balances::{Pallet, Call, Storage, Config<T>, Event<T>},
Crowdloan: pallet_crowdloan_rewards::{Pallet, Call, Storage, Event<T>},
Utility: pallet_utility::{Pallet, Call, Storage, Event},
System: frame_system,
Balances: pallet_balances,
Crowdloan: pallet_crowdloan_rewards,
Utility: pallet_utility,
}
);

Expand All @@ -57,14 +52,14 @@ impl frame_system::Config for Test {
type BlockWeights = ();
type BlockLength = ();
type RuntimeOrigin = RuntimeOrigin;
type Index = u64;
type RuntimeTask = RuntimeTask;
type Nonce = u64;
type RuntimeCall = RuntimeCall;
type BlockNumber = u64;
type Block = Block;
type Hash = H256;
type Hashing = BlakeTwo256;
type AccountId = u64;
type Lookup = IdentityLookup<Self::AccountId>;
type Header = Header;
type RuntimeEvent = RuntimeEvent;
type BlockHashCount = BlockHashCount;
type DbWeight = ();
Expand Down Expand Up @@ -93,10 +88,10 @@ impl pallet_balances::Config for Test {
type ExistentialDeposit = ExistentialDeposit;
type AccountStore = System;
type WeightInfo = ();
type HoldIdentifier = ();
type RuntimeHoldReason = ();
type FreezeIdentifier = ();
type MaxHolds = ();
type MaxFreezes = ();
type RuntimeFreezeReason = ();
}

pub struct MockedBlockProvider;
Expand Down Expand Up @@ -148,8 +143,8 @@ impl pallet_utility::Config for Test {
}

fn genesis(funded_amount: Balance) -> sp_io::TestExternalities {
let mut storage = frame_system::GenesisConfig::default()
.build_storage::<Test>()
let mut storage = frame_system::GenesisConfig::<Test>::default()
.build_storage()
.unwrap();
pallet_crowdloan_rewards::GenesisConfig::<Test> { funded_amount }
.assimilate_storage(&mut storage)
Expand Down
3 changes: 1 addition & 2 deletions src/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,11 @@
//! Unit testing

use crate::*;
use frame_support::dispatch::{DispatchError, Dispatchable};
use frame_support::{assert_noop, assert_ok};
use mock::*;
use parity_scale_codec::Encode;
use sp_core::Pair;
use sp_runtime::{ModuleError, MultiSignature};
use sp_runtime::{traits::Dispatchable, DispatchError, ModuleError, MultiSignature};

// Constant that reflects the desired vesting period for the tests
// Most tests complete initialization passing initRelayBlock + VESTING as the endRelayBlock
Expand Down
40 changes: 16 additions & 24 deletions src/weights.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,42 +63,38 @@ pub trait WeightInfo {
pub struct SubstrateWeight<T>(PhantomData<T>);
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
fn initialize_reward_vec(x: u32) -> Weight {
Weight::from_ref_time(143_109_000)
Weight::from_all(143_109_000)
// Standard Error: 21_000
.saturating_add(Weight::from_ref_time(
72_298_000_u64.saturating_mul(x as u64),
))
.saturating_add(Weight::from_all(72_298_000_u64.saturating_mul(x as u64)))
.saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().reads(x as u64))
.saturating_add(T::DbWeight::get().writes(5))
.saturating_add(T::DbWeight::get().writes(3 as u64))
}
fn complete_initialization() -> Weight {
Weight::from_ref_time(51_047_000)
Weight::from_all(51_047_000)
.saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(3))
}
fn claim() -> Weight {
Weight::from_ref_time(101_484_000)
Weight::from_all(101_484_000)
.saturating_add(T::DbWeight::get().reads(11))
.saturating_add(T::DbWeight::get().writes(5))
}
fn update_reward_address() -> Weight {
Weight::from_ref_time(59_051_000)
Weight::from_all(59_051_000)
.saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(4))
}
fn associate_native_identity() -> Weight {
Weight::from_ref_time(152_997_000)
Weight::from_all(152_997_000)
.saturating_add(T::DbWeight::get().reads(9))
.saturating_add(T::DbWeight::get().writes(7))
}
fn change_association_with_relay_keys(x: u32) -> Weight {
Weight::from_ref_time(0)
Weight::from_all(0)
// Standard Error: 7_000
.saturating_add(Weight::from_ref_time(
47_373_000_u64.saturating_mul(x as u64),
))
.saturating_add(Weight::from_all(47_373_000_u64.saturating_mul(x as u64)))
.saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(4))
}
Expand All @@ -107,42 +103,38 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// For backwards compatibility and tests
impl WeightInfo for () {
fn initialize_reward_vec(x: u32) -> Weight {
Weight::from_ref_time(143_109_000)
Weight::from_all(143_109_000)
// Standard Error: 21_000
.saturating_add(Weight::from_ref_time(
72_298_000_u64.saturating_mul(x as u64),
))
.saturating_add(Weight::from_all(72_298_000_u64.saturating_mul(x as u64)))
.saturating_add(RocksDbWeight::get().reads(8))
.saturating_add(RocksDbWeight::get().reads(x as u64))
.saturating_add(RocksDbWeight::get().writes(5))
.saturating_add(RocksDbWeight::get().writes(x as u64))
}
fn complete_initialization() -> Weight {
Weight::from_ref_time(51_047_000)
Weight::from_all(51_047_000)
.saturating_add(RocksDbWeight::get().reads(6))
.saturating_add(RocksDbWeight::get().writes(3))
}
fn claim() -> Weight {
Weight::from_ref_time(101_484_000)
Weight::from_all(101_484_000)
.saturating_add(RocksDbWeight::get().reads(11))
.saturating_add(RocksDbWeight::get().writes(5))
}
fn update_reward_address() -> Weight {
Weight::from_ref_time(59_051_000)
Weight::from_all(59_051_000)
.saturating_add(RocksDbWeight::get().reads(6))
.saturating_add(RocksDbWeight::get().writes(4))
}
fn associate_native_identity() -> Weight {
Weight::from_ref_time(152_997_000)
Weight::from_all(152_997_000)
.saturating_add(RocksDbWeight::get().reads(9))
.saturating_add(RocksDbWeight::get().writes(7))
}
fn change_association_with_relay_keys(x: u32) -> Weight {
Weight::from_ref_time(0)
Weight::from_all(0)
// Standard Error: 7_000
.saturating_add(Weight::from_ref_time(
47_373_000_u64.saturating_mul(x as u64),
))
.saturating_add(Weight::from_all(47_373_000_u64.saturating_mul(x as u64)))
.saturating_add(RocksDbWeight::get().reads(6))
.saturating_add(RocksDbWeight::get().writes(4))
}
Expand Down
Loading