diff --git a/node/service/src/chain_spec/bifrost.rs b/node/service/src/chain_spec/bifrost.rs index cfb3a6a7b..70f687138 100644 --- a/node/service/src/chain_spec/bifrost.rs +++ b/node/service/src/chain_spec/bifrost.rs @@ -25,9 +25,10 @@ use bifrost_runtime::{ constants::currency::DOLLARS, AccountId, AuraId, Balance, BalancesConfig, BancorConfig, BlockNumber, CollatorSelectionConfig, CouncilConfig, DemocracyConfig, GenesisConfig, IndicesConfig, ParachainInfoConfig, SessionConfig, SudoConfig, SystemConfig, - TechnicalCommitteeConfig, VestingConfig, WASM_BINARY, + TechnicalCommitteeConfig, TokensConfig, VestingConfig, WASM_BINARY, }; use cumulus_primitives_core::ParaId; +use frame_benchmarking::{account, whitelisted_caller}; use hex_literal::hex; use node_primitives::{CurrencyId, TokenSymbol}; use sc_service::ChainType; @@ -45,12 +46,15 @@ const DEFAULT_PROTOCOL_ID: &str = "bifrost"; /// Specialized `ChainSpec` for the bifrost runtime. pub type ChainSpec = sc_service::GenericChainSpec; +const ENDOWMENT: u128 = 1_000_000 * DOLLARS; + pub fn bifrost_genesis( invulnerables: Vec<(AccountId, AuraId)>, root_key: AccountId, balances: Vec<(AccountId, Balance)>, vestings: Vec<(AccountId, BlockNumber, BlockNumber, Balance)>, id: ParaId, + tokens: Vec<(AccountId, CurrencyId, Balance)>, ) -> GenesisConfig { GenesisConfig { system: SystemConfig { @@ -93,19 +97,33 @@ pub fn bifrost_genesis( aura_ext: Default::default(), parachain_system: Default::default(), vesting: VestingConfig { vesting: vestings }, + tokens: TokensConfig { balances: tokens }, bancor: BancorConfig { - bancor_pools: vec![ - (CurrencyId::Token(TokenSymbol::DOT), 10_000 * DOLLARS), - (CurrencyId::Token(TokenSymbol::KSM), 1_000_000 * DOLLARS), - ], + bancor_pools: vec![(CurrencyId::Token(TokenSymbol::KSM), 1_000_000 * DOLLARS)], }, } } fn development_config_genesis(id: ParaId) -> GenesisConfig { - let endowed_accounts: Vec = - vec![get_account_id_from_seed::("Alice")]; - const ENDOWMENT: u128 = 1_000_000 * DOLLARS; + let endowed_accounts = vec![ + get_account_id_from_seed::("Alice"), + whitelisted_caller(), // Benchmarking whitelist_account + ]; + let balances = endowed_accounts.iter().cloned().map(|x| (x, ENDOWMENT)).collect(); + let vestings = endowed_accounts + .iter() + .cloned() + .map(|x| (x.clone(), 0u32, 100u32, ENDOWMENT / 4)) + .collect(); + let tokens = endowed_accounts + .iter() + .flat_map(|x| { + vec![ + (x.clone(), CurrencyId::Stable(TokenSymbol::KUSD), ENDOWMENT * 10_000), + (x.clone(), CurrencyId::Token(TokenSymbol::KSM), ENDOWMENT), + ] + }) + .collect(); bifrost_genesis( vec![( @@ -113,13 +131,10 @@ fn development_config_genesis(id: ParaId) -> GenesisConfig { get_from_seed::("Alice"), )], get_account_id_from_seed::("Alice"), - endowed_accounts.iter().cloned().map(|x| (x, ENDOWMENT)).collect(), - endowed_accounts - .iter() - .cloned() - .map(|x| (x.clone(), 0u32, 100u32, ENDOWMENT / 4)) - .collect(), + balances, + vestings, id, + tokens, ) } @@ -138,11 +153,44 @@ pub fn development_config(id: ParaId) -> Result { } fn local_config_genesis(id: ParaId) -> GenesisConfig { - let endowed_accounts: Vec = vec![ + let endowed_accounts = vec![ get_account_id_from_seed::("Alice"), get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + whitelisted_caller(), // Benchmarking whitelist_account + account("bechmarking_account_1", 0, 0), /* Benchmarking account_1, used for interacting + * with whitelistted_caller */ ]; - const ENDOWMENT: u128 = 1_000_000 * DOLLARS; + let balances = endowed_accounts.iter().cloned().map(|x| (x, ENDOWMENT)).collect(); + let vestings = endowed_accounts + .iter() + .cloned() + .map(|x| (x.clone(), 0u32, 100u32, ENDOWMENT / 4)) + .collect(); + let tokens = endowed_accounts + .iter() + .flat_map(|x| { + vec![ + (x.clone(), CurrencyId::Stable(TokenSymbol::KUSD), ENDOWMENT * 10_000), + (x.clone(), CurrencyId::Token(TokenSymbol::KSM), ENDOWMENT * 4_000_000), + (x.clone(), CurrencyId::Token(TokenSymbol::BNC), ENDOWMENT * 4_000_000), + ( + x.clone(), + CurrencyId::VSBond(TokenSymbol::KSM, 3000, 13, 20), + ENDOWMENT * 4_000_000, + ), + ] + }) + .collect(); bifrost_genesis( vec![ @@ -153,13 +201,10 @@ fn local_config_genesis(id: ParaId) -> GenesisConfig { (get_account_id_from_seed::("Bob"), get_from_seed::("Bob")), ], get_account_id_from_seed::("Alice"), - endowed_accounts.iter().cloned().map(|x| (x, ENDOWMENT)).collect(), - endowed_accounts - .iter() - .cloned() - .map(|x| (x, 0u32, 100u32, ENDOWMENT / 4)) - .collect(), + balances, + vestings, id, + tokens, ) } @@ -272,6 +317,7 @@ fn bifrost_config_genesis(id: ParaId) -> GenesisConfig { balances, vesting_configs.into_iter().flat_map(|vc| vc.vesting).collect(), id, + vec![], ) } diff --git a/runtime/bifrost/src/lib.rs b/runtime/bifrost/src/lib.rs index 5ffd435c0..acb4fe441 100644 --- a/runtime/bifrost/src/lib.rs +++ b/runtime/bifrost/src/lib.rs @@ -1065,7 +1065,7 @@ construct_runtime! { Tips: pallet_tips::{Pallet, Call, Storage, Event} = 63, XTokens: orml_xtokens::{Pallet, Call, Event} = 70, - Tokens: orml_tokens::{Pallet, Call, Storage, Event} = 71, + Tokens: orml_tokens::{Pallet, Call, Storage, Event, Config} = 71, Currencies: orml_currencies::{Pallet, Call, Event} = 72, UnknownTokens: orml_unknown_tokens::{Pallet, Storage, Event} = 73, OrmlXcm: orml_xcm::{Pallet, Call, Event} = 74,