Skip to content

Commit

Permalink
chore: PR #189 is backported
Browse files Browse the repository at this point in the history
  • Loading branch information
Raid5594 authored and yahortsaryk committed Dec 19, 2023
1 parent 6bfaf9e commit f859474
Show file tree
Hide file tree
Showing 5 changed files with 126 additions and 25 deletions.
6 changes: 6 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

27 changes: 14 additions & 13 deletions runtime/cere-dev/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,6 @@ sp-transaction-pool = { default-features = false, git = "https://github.com/pari
sp-version = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }

# frame dependencies
cere-dev-runtime-constants = { path = "./constants", default-features = false }
cere-runtime-common = { path = "../common", default-features = false }
ddc-traits = { version = "0.1.0", default-features = false, path = "../../traits" }
frame-benchmarking = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30", optional = true }
frame-election-provider-support = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
frame-executive = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
Expand All @@ -54,25 +51,16 @@ pallet-babe = { default-features = false, git = "https://github.com/paritytech/s
pallet-bags-list = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-bounties = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-cere-ddc = { version = "4.8.1", default-features = false, path = "../../pallets/ddc" }
pallet-chainbridge = { version = "4.8.1", default-features = false, path = "../../pallets/chainbridge" }
pallet-child-bounties = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-collective = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-contracts = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-contracts-primitives = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-contracts-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-ddc-clusters = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-clusters" }
pallet-ddc-customers = { version = "0.1.0", default-features = false, path = "../../pallets/ddc-customers" }
pallet-ddc-metrics-offchain-worker = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-metrics-offchain-worker" }
pallet-ddc-nodes = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-nodes" }
pallet-ddc-payouts = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-payouts" }
pallet-ddc-staking = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-staking" }
pallet-democracy = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-election-provider-multi-phase = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-election-provider-support-benchmarking = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30", optional = true }
pallet-elections-phragmen = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-erc20 = { version = "4.8.1", default-features = false, path = "../../pallets/erc20" }
pallet-erc721 = { version = "4.8.1", default-features = false, path = "../../pallets/erc721" }
pallet-fast-unstake = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.30" }
pallet-grandpa = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-identity = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
Expand Down Expand Up @@ -103,6 +91,20 @@ pallet-treasury = { default-features = false, git = "https://github.com/parityte
pallet-utility = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-vesting = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }

# cere dependencies
cere-dev-runtime-constants = { path = "./constants", default-features = false }
cere-runtime-common = { path = "../common", default-features = false }
ddc-traits = { version = "0.1.0", default-features = false, path = "../../traits" }
pallet-cere-ddc = { version = "4.8.1", default-features = false, path = "../../pallets/ddc" }
pallet-ddc-clusters = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-clusters" }
pallet-ddc-customers = { version = "0.1.0", default-features = false, path = "../../pallets/ddc-customers" }
pallet-ddc-metrics-offchain-worker = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-metrics-offchain-worker" }
pallet-ddc-nodes = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-nodes" }
pallet-ddc-payouts = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-payouts" }
pallet-ddc-staking = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-staking" }
pallet-erc20 = { version = "4.8.1", default-features = false, path = "../../pallets/erc20" }
pallet-erc721 = { version = "4.8.1", default-features = false, path = "../../pallets/erc721" }

[build-dependencies]
substrate-wasm-builder = { git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }

Expand Down Expand Up @@ -182,7 +184,6 @@ std = [
"cere-runtime-common/std",
"cere-dev-runtime-constants/std",
"pallet-ddc-customers/std",
"pallet-ddc-nodes/std",
"pallet-ddc-clusters/std",
"pallet-ddc-payouts/std",
]
Expand Down
8 changes: 4 additions & 4 deletions runtime/cere-dev/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1330,7 +1330,7 @@ impl pallet_ddc_staking::Config for Runtime {

parameter_types! {
pub const DdcCustomersPalletId: PalletId = PalletId(*b"accounts"); // DDC maintainer's stake
pub const UnlockingDelay: BlockNumber = 5256000u32; // 1 hour * 24 * 365 = 1 day; (1 hour is 600 blocks)
pub const UnlockingDelay: BlockNumber = 100800_u32; // 1 hour * 24 * 7 = 7 days; (1 hour is 600 blocks)
}

impl pallet_ddc_customers::Config for Runtime {
Expand Down Expand Up @@ -1362,8 +1362,8 @@ parameter_types! {
pub const PayoutsPalletId: PalletId = PalletId(*b"payouts_");
}

pub struct TreasureWrapper;
impl<T: frame_system::Config> PalletVisitor<T> for TreasureWrapper {
pub struct TreasuryWrapper;
impl<T: frame_system::Config> PalletVisitor<T> for TreasuryWrapper {
fn get_account_id() -> T::AccountId {
TreasuryPalletId::get().into_account_truncating()
}
Expand All @@ -1376,7 +1376,7 @@ impl pallet_ddc_payouts::Config for Runtime {
type CustomerCharger = DdcCustomers;
type CustomerDepositor = DdcCustomers;
type ClusterVisitor = DdcClusters;
type TreasuryVisitor = TreasureWrapper;
type TreasuryVisitor = TreasuryWrapper;
type ValidatorList = pallet_staking::UseValidatorsMap<Self>;
type ClusterCreator = DdcClusters;
type WeightInfo = pallet_ddc_payouts::weights::SubstrateWeight<Runtime>;
Expand Down
30 changes: 24 additions & 6 deletions runtime/cere/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@ sp-transaction-pool = { default-features = false, git = "https://github.com/pari
sp-version = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }

# frame dependencies
cere-runtime-common = { path = "../common", default-features = false }
cere-runtime-constants = { path = "./constants", default-features = false }
frame-benchmarking = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30", optional = true }
frame-election-provider-support = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
frame-executive = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
Expand All @@ -53,20 +51,16 @@ pallet-babe = { default-features = false, git = "https://github.com/paritytech/s
pallet-bags-list = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-balances = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-bounties = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-cere-ddc = { version = "4.8.1", default-features = false, path = "../../pallets/ddc" }
pallet-chainbridge = { version = "4.8.1", default-features = false, path = "../../pallets/chainbridge" }
pallet-child-bounties = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-collective = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-contracts = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-contracts-primitives = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-contracts-rpc-runtime-api = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-ddc-metrics-offchain-worker = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-metrics-offchain-worker" }
pallet-democracy = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-election-provider-multi-phase = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-election-provider-support-benchmarking = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30", optional = true }
pallet-elections-phragmen = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-erc20 = { version = "4.8.1", default-features = false, path = "../../pallets/erc20" }
pallet-erc721 = { version = "4.8.1", default-features = false, path = "../../pallets/erc721" }
pallet-fast-unstake = { git = "https://github.com/paritytech/substrate.git", default-features = false, branch = "polkadot-v0.9.30" }
pallet-grandpa = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-identity = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
Expand Down Expand Up @@ -97,6 +91,20 @@ pallet-treasury = { default-features = false, git = "https://github.com/parityte
pallet-utility = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }
pallet-vesting = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }

# cere dependencies
cere-runtime-common = { path = "../common", default-features = false }
cere-runtime-constants = { path = "./constants", default-features = false }
ddc-traits = { version = "0.1.0", default-features = false, path = "../../traits" }
pallet-cere-ddc = { version = "4.8.1", default-features = false, path = "../../pallets/ddc" }
pallet-ddc-clusters = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-clusters" }
pallet-ddc-customers = { version = "0.1.0", default-features = false, path = "../../pallets/ddc-customers" }
pallet-ddc-metrics-offchain-worker = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-metrics-offchain-worker" }
pallet-ddc-nodes = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-nodes" }
pallet-ddc-payouts = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-payouts" }
pallet-ddc-staking = { version = "4.8.1", default-features = false, path = "../../pallets/ddc-staking" }
pallet-erc20 = { version = "4.8.1", default-features = false, path = "../../pallets/erc20" }
pallet-erc721 = { version = "4.8.1", default-features = false, path = "../../pallets/erc721" }

[build-dependencies]
substrate-wasm-builder = { git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.30" }

Expand Down Expand Up @@ -172,6 +180,11 @@ std = [
"sp-io/std",
"pallet-child-bounties/std",
"pallet-ddc-metrics-offchain-worker/std",
"pallet-ddc-clusters/std",
"pallet-ddc-customers/std",
"pallet-ddc-nodes/std",
"pallet-ddc-payouts/std",
"pallet-ddc-staking/std",
"cere-runtime-common/std",
"cere-runtime-constants/std",
]
Expand All @@ -187,6 +200,11 @@ runtime-benchmarks = [
"pallet-child-bounties/runtime-benchmarks",
"pallet-collective/runtime-benchmarks",
"pallet-contracts/runtime-benchmarks",
"pallet-ddc-customers/runtime-benchmarks",
"pallet-ddc-clusters/runtime-benchmarks",
"pallet-ddc-nodes/runtime-benchmarks",
"pallet-ddc-staking/runtime-benchmarks",
"pallet-ddc-payouts/runtime-benchmarks",
"pallet-democracy/runtime-benchmarks",
"pallet-election-provider-multi-phase/runtime-benchmarks",
"pallet-election-provider-support-benchmarking/runtime-benchmarks",
Expand Down
80 changes: 78 additions & 2 deletions runtime/cere/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#![recursion_limit = "256"]

use codec::{Decode, Encode, MaxEncodedLen};
use ddc_traits::pallet::PalletVisitor;
use frame_election_provider_support::{onchain, BalancingConfig, SequentialPhragmen, VoteWeight};
use frame_support::{
construct_runtime,
Expand Down Expand Up @@ -67,8 +68,8 @@ use sp_runtime::{
curve::PiecewiseLinear,
generic, impl_opaque_keys,
traits::{
self, BlakeTwo256, Block as BlockT, ConvertInto, NumberFor, OpaqueKeys,
SaturatedConversion, StaticLookup,
self, AccountIdConversion, BlakeTwo256, Block as BlockT, ConvertInto, NumberFor,
OpaqueKeys, SaturatedConversion, StaticLookup,
},
transaction_validity::{TransactionPriority, TransactionSource, TransactionValidity},
ApplyExtrinsicResult, FixedPointNumber, FixedU128, Perbill, Percent, Permill, Perquintill,
Expand Down Expand Up @@ -1312,6 +1313,71 @@ impl pallet_ddc_metrics_offchain_worker::Config for Runtime {
type RuntimeCall = RuntimeCall;
}

parameter_types! {
pub const DdcCustomersPalletId: PalletId = PalletId(*b"accounts"); // DDC maintainer's stake
pub const UnlockingDelay: BlockNumber = 100800_u32; // 1 hour * 24 * 7 = 7 days; (1 hour is 600 blocks)
}

impl pallet_ddc_customers::Config for Runtime {
type UnlockingDelay = UnlockingDelay;
type Currency = Balances;
type PalletId = DdcCustomersPalletId;
type RuntimeEvent = RuntimeEvent;
type ClusterVisitor = pallet_ddc_clusters::Pallet<Runtime>;
type ClusterCreator = pallet_ddc_clusters::Pallet<Runtime>;
type WeightInfo = pallet_ddc_customers::weights::SubstrateWeight<Runtime>;
}

impl pallet_ddc_clusters::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type NodeRepository = pallet_ddc_nodes::Pallet<Runtime>;
type StakingVisitor = pallet_ddc_staking::Pallet<Runtime>;
type StakerCreator = pallet_ddc_staking::Pallet<Runtime>;
type Currency = Balances;
type WeightInfo = pallet_ddc_clusters::weights::SubstrateWeight<Runtime>;
}

impl pallet_ddc_nodes::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type StakingVisitor = pallet_ddc_staking::Pallet<Runtime>;
type WeightInfo = pallet_ddc_nodes::weights::SubstrateWeight<Runtime>;
}

parameter_types! {
pub const PayoutsPalletId: PalletId = PalletId(*b"payouts_");
}

pub struct TreasuryWrapper;
impl<T: frame_system::Config> PalletVisitor<T> for TreasuryWrapper {
fn get_account_id() -> T::AccountId {
TreasuryPalletId::get().into_account_truncating()
}
}

impl pallet_ddc_payouts::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type PalletId = PayoutsPalletId;
type Currency = Balances;
type CustomerCharger = DdcCustomers;
type CustomerDepositor = DdcCustomers;
type ClusterVisitor = DdcClusters;
type TreasuryVisitor = TreasuryWrapper;
type ValidatorList = pallet_staking::UseValidatorsMap<Self>;
type ClusterCreator = DdcClusters;
type WeightInfo = pallet_ddc_payouts::weights::SubstrateWeight<Runtime>;
}

impl pallet_ddc_staking::Config for Runtime {
type Currency = Balances;
type RuntimeEvent = RuntimeEvent;
type WeightInfo = pallet_ddc_staking::weights::SubstrateWeight<Runtime>;
type ClusterVisitor = pallet_ddc_clusters::Pallet<Runtime>;
type ClusterCreator = pallet_ddc_clusters::Pallet<Runtime>;
type ClusterManager = pallet_ddc_clusters::Pallet<Runtime>;
type NodeVisitor = pallet_ddc_nodes::Pallet<Runtime>;
type NodeCreator = pallet_ddc_nodes::Pallet<Runtime>;
}

construct_runtime!(
pub enum Runtime where
Block = Block,
Expand Down Expand Up @@ -1363,6 +1429,11 @@ construct_runtime!(
Erc721: pallet_erc721::{Pallet, Call, Storage, Event<T>},
Erc20: pallet_erc20::{Pallet, Call, Storage, Event<T>},
DdcMetricsOffchainWorker: pallet_ddc_metrics_offchain_worker::{Pallet, Call, Storage, Event<T>},
DdcStaking: pallet_ddc_staking,
DdcCustomers: pallet_ddc_customers,
DdcNodes: pallet_ddc_nodes,
DdcClusters: pallet_ddc_clusters,
DdcPayouts: pallet_ddc_payouts
}
);

Expand Down Expand Up @@ -1439,6 +1510,11 @@ mod benches {
[pallet_child_bounties, ChildBounties]
[pallet_collective, Council]
[pallet_contracts, Contracts]
[pallet_ddc_customers, DdcCustomers]
[pallet_ddc_clusters, DdcClusters]
[pallet_ddc_staking, DdcStaking]
[pallet_ddc_nodes, DdcNodes]
[pallet_ddc_payouts, DdcPayouts]
[pallet_democracy, Democracy]
[pallet_election_provider_multi_phase, ElectionProviderMultiPhase]
[pallet_election_provider_support_benchmarking, EPSBench::<Runtime>]
Expand Down

0 comments on commit f859474

Please sign in to comment.