Skip to content

Commit 0431b56

Browse files
authored
update chain spec (#172)
* update chain spec * fix
1 parent a13aba6 commit 0431b56

3 files changed

Lines changed: 84 additions & 125 deletions

File tree

node/service/src/chain_spec/asgard.rs

Lines changed: 48 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
// You should have received a copy of the GNU General Public License
1717
// along with this program. If not, see <https://www.gnu.org/licenses/>.
1818

19-
use std::collections::BTreeMap;
20-
2119
use asgard_runtime::{
2220
constants::{currency::DOLLARS, time::DAYS},
2321
AccountId, AuraId, Balance, BalancesConfig, BancorConfig, BlockNumber, CollatorSelectionConfig,
@@ -34,9 +32,7 @@ use sp_core::{crypto::UncheckedInto, sr25519};
3432
use sp_runtime::{traits::Zero, Permill};
3533

3634
use super::TELEMETRY_URL;
37-
use crate::chain_spec::{
38-
get_account_id_from_seed, get_from_seed, testnet_accounts, RelayExtensions,
39-
};
35+
use crate::chain_spec::{get_account_id_from_seed, get_from_seed, RelayExtensions};
4036

4137
const DEFAULT_PROTOCOL_ID: &str = "asgard";
4238

@@ -143,7 +139,7 @@ fn development_config_genesis(id: ParaId) -> GenesisConfig {
143139
let endowed_accounts = vec![get_account_id_from_seed::<sr25519::Public>("Alice")];
144140
let balances = endowed_accounts
145141
.iter()
146-
.chain(super::faucet_accounts().iter())
142+
.chain(faucet_accounts().iter())
147143
.cloned()
148144
.map(|x| (x, ENDOWMENT))
149145
.collect();
@@ -154,7 +150,7 @@ fn development_config_genesis(id: ParaId) -> GenesisConfig {
154150
.collect();
155151
let tokens = endowed_accounts
156152
.iter()
157-
.chain(super::faucet_accounts().iter())
153+
.chain(faucet_accounts().iter())
158154
.flat_map(|x| {
159155
vec![
160156
(x.clone(), CurrencyId::Stable(TokenSymbol::AUSD), ENDOWMENT * 10_000),
@@ -193,10 +189,23 @@ pub fn development_config(id: ParaId) -> Result<ChainSpec, String> {
193189
}
194190

195191
fn local_config_genesis(id: ParaId) -> GenesisConfig {
196-
let endowed_accounts = testnet_accounts();
192+
let endowed_accounts = vec![
193+
get_account_id_from_seed::<sr25519::Public>("Alice"),
194+
get_account_id_from_seed::<sr25519::Public>("Bob"),
195+
get_account_id_from_seed::<sr25519::Public>("Charlie"),
196+
get_account_id_from_seed::<sr25519::Public>("Dave"),
197+
get_account_id_from_seed::<sr25519::Public>("Eve"),
198+
get_account_id_from_seed::<sr25519::Public>("Ferdie"),
199+
get_account_id_from_seed::<sr25519::Public>("Alice//stash"),
200+
get_account_id_from_seed::<sr25519::Public>("Bob//stash"),
201+
get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),
202+
get_account_id_from_seed::<sr25519::Public>("Dave//stash"),
203+
get_account_id_from_seed::<sr25519::Public>("Eve//stash"),
204+
get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),
205+
];
197206
let balances = endowed_accounts
198207
.iter()
199-
.chain(super::faucet_accounts().iter())
208+
.chain(faucet_accounts().iter())
200209
.cloned()
201210
.map(|x| (x, ENDOWMENT))
202211
.collect();
@@ -207,7 +216,7 @@ fn local_config_genesis(id: ParaId) -> GenesisConfig {
207216
.collect();
208217
let tokens = endowed_accounts
209218
.iter()
210-
.chain(super::faucet_accounts().iter())
219+
.chain(faucet_accounts().iter())
211220
.flat_map(|x| {
212221
vec![
213222
(x.clone(), CurrencyId::Stable(TokenSymbol::AUSD), ENDOWMENT * 10_000),
@@ -296,52 +305,19 @@ fn asgard_config_genesis(id: ParaId) -> GenesisConfig {
296305
]
297306
.into();
298307

299-
let exe_dir = {
300-
let mut exe_dir = std::env::current_exe().unwrap();
301-
exe_dir.pop();
302-
303-
exe_dir
304-
};
305-
306-
let balances_configs: Vec<BalancesConfig> =
307-
super::config_from_json_files(exe_dir.join("res/genesis_config/balances")).unwrap();
308-
309-
let mut total_issuance: Balance = Zero::zero();
310-
let balances = balances_configs
311-
.into_iter()
312-
.flat_map(|bc| bc.balances)
313-
.chain(
314-
super::faucet_accounts()
315-
.into_iter()
316-
.map(|x| (x, ENDOWMENT))
317-
.collect::<Vec<(AccountId, Balance)>>(),
318-
)
319-
.fold(BTreeMap::<AccountId, Balance>::new(), |mut acc, (account_id, amount)| {
320-
if let Some(balance) = acc.get_mut(&account_id) {
321-
*balance = balance
322-
.checked_add(amount)
323-
.expect("balance cannot overflow when building genesis");
324-
} else {
325-
acc.insert(account_id.clone(), amount);
326-
}
327-
328-
total_issuance = total_issuance
329-
.checked_add(amount)
330-
.expect("total insurance cannot overflow when building genesis");
331-
acc
332-
})
308+
let balances = faucet_accounts()
333309
.into_iter()
334-
.collect();
335-
336-
// assert_eq!(total_issuance, 32_000_000 * DOLLARS, "total issuance must be equal to 320
337-
// million");}
310+
.map(|x| (x, ENDOWMENT))
311+
.collect::<Vec<(AccountId, Balance)>>();
338312

339-
let vesting_configs: Vec<VestingConfig> =
340-
super::config_from_json_files(exe_dir.join("res/genesis_config/vesting")).unwrap();
341-
let endowed_accounts = vec![get_account_id_from_seed::<sr25519::Public>("Alice")];
313+
let vesting_configs: Vec<VestingConfig> = vec![];
314+
let endowed_accounts = vec![
315+
get_account_id_from_seed::<sr25519::Public>("Alice"),
316+
get_account_id_from_seed::<sr25519::Public>("Bob"),
317+
];
342318
let tokens = endowed_accounts
343319
.iter()
344-
.chain(super::faucet_accounts().iter())
320+
.chain(faucet_accounts().iter())
345321
.flat_map(|x| {
346322
vec![
347323
(x.clone(), CurrencyId::Stable(TokenSymbol::AUSD), ENDOWMENT * 10_000),
@@ -361,3 +337,23 @@ fn asgard_config_genesis(id: ParaId) -> GenesisConfig {
361337
tokens,
362338
)
363339
}
340+
341+
pub fn faucet_accounts() -> Vec<AccountId> {
342+
vec![
343+
hex!["ce6072037670ca8e974fd571eae4f215a58d0bf823b998f619c3f87a911c3541"].into(), /* asgard sudo account */
344+
hex!["a2d57b8e781327bd2853b36e6f290bd8beeaa850971c9b0789ec4969f8beb01b"].into(), /* bifrost-faucet */
345+
hex!["a272fa6e2282767b61a299e81023d44ef583c640fef99b0bafe216399775cd17"].into(),
346+
hex!["56f6e7bb0826cd128672ad3a03016533834123c319adc635c6db595c6f72272e"].into(),
347+
hex!["7e9005c247601a0d0e967f68b03f6e39e402a735ec65c20e4965c6d94a22e42f"].into(),
348+
hex!["f2449dfbb431a5f9e8dc7468e5f3521baff4c0125edcda746f38df5295d5fb28"].into(),
349+
hex!["aaa565b52ea12bf3c8d7abb79411976bccd8054c5581922acc0165ad88640f09"].into(),
350+
hex!["8afadc065940f22f73b745aab694b1b20cafea3d4e52adad844f581614fbdd00"].into(),
351+
hex!["0831325e2b4953f247db9df3f6452becbf23d8f7f806c0396ad853cb3c284d06"].into(),
352+
hex!["7ea84934a575487fb02c44e01f4488c2f242cdbf48052630780dcd8ac567950c"].into(),
353+
hex!["ee05492a82cb982392aad78f7e6f6fff56eaee4988fd9961ebb84e177dd6526d"].into(), /* bifrost-faucet */
354+
hex!["7435653321694ee115e8cea8c8e117c0b6703b6fb91298b6df5adeef7679a46f"].into(), /* danny testing account */
355+
hex!["263c78393f33b23cd23f3211726b2316e950910749d20c1552ea6972091a645e"].into(), /* jianbo testing account */
356+
hex!["803feefeab8e5c81c3d268038b6c494d3018714fc8c5d08cf027111fd8114b06"].into(), /* tieqiao testing account */
357+
hex!["8898ffd2cb04fb751655ede7bc0081b6b6ebe13cd0bdee5bbb9273e6dcc9b91c"].into(), /* tyrone testing account */
358+
]
359+
}

node/service/src/chain_spec/bifrost.rs

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,23 @@
1616
// You should have received a copy of the GNU General Public License
1717
// along with this program. If not, see <https://www.gnu.org/licenses/>.
1818

19+
use std::{
20+
fs::{read_dir, File},
21+
path::PathBuf,
22+
};
23+
1924
use bifrost_runtime::{
2025
constants::currency::DOLLARS, AccountId, AuraId, Balance, BalancesConfig, BlockNumber,
2126
CollatorSelectionConfig, GenesisConfig, IndicesConfig, ParachainInfoConfig, SessionConfig,
2227
SudoConfig, SystemConfig, VestingConfig, WASM_BINARY,
2328
};
2429
use cumulus_primitives_core::ParaId;
2530
use hex_literal::hex;
31+
use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};
2632
use sc_service::ChainType;
2733
use sc_telemetry::TelemetryEndpoints;
34+
use serde::{de::DeserializeOwned, Deserialize, Serialize};
35+
use serde_json as json;
2836
use sp_core::{crypto::UncheckedInto, sr25519};
2937
use sp_runtime::traits::Zero;
3038

@@ -212,7 +220,7 @@ fn bifrost_config_genesis(id: ParaId) -> GenesisConfig {
212220
};
213221

214222
let balances_configs: Vec<BalancesConfig> =
215-
super::config_from_json_files(exe_dir.join("res/genesis_config/balances")).unwrap();
223+
config_from_json_files(exe_dir.join("res/genesis_config/balances")).unwrap();
216224

217225
let mut total_issuance: Balance = Zero::zero();
218226
let balances = balances_configs
@@ -238,7 +246,7 @@ fn bifrost_config_genesis(id: ParaId) -> GenesisConfig {
238246
assert_eq!(total_issuance, 32_000_000 * DOLLARS, "total issuance must be equal to 320 million");
239247

240248
let vesting_configs: Vec<VestingConfig> =
241-
super::config_from_json_files(exe_dir.join("res/genesis_config/vesting")).unwrap();
249+
config_from_json_files(exe_dir.join("res/genesis_config/vesting")).unwrap();
242250

243251
use sp_core::sp_std::collections::btree_map::BTreeMap;
244252
bifrost_genesis(
@@ -249,3 +257,27 @@ fn bifrost_config_genesis(id: ParaId) -> GenesisConfig {
249257
id,
250258
)
251259
}
260+
261+
fn config_from_json_file<T: DeserializeOwned>(path: PathBuf) -> Result<T, String> {
262+
let file = File::open(&path).map_err(|e| format!("Error opening genesis config: {}", e))?;
263+
264+
let config =
265+
json::from_reader(file).map_err(|e| format!("Error parsing config file: {}", e))?;
266+
267+
Ok(config)
268+
}
269+
270+
fn config_from_json_files<T: DeserializeOwned>(dir: PathBuf) -> Result<Vec<T>, String> {
271+
let mut configs = vec![];
272+
273+
let iter = read_dir(&dir).map_err(|e| format!("Error opening directory: {}", e))?;
274+
for entry in iter {
275+
let path = entry.map_err(|e| format!("{}", e))?.path();
276+
277+
if !path.is_dir() {
278+
configs.push(config_from_json_file(path)?);
279+
}
280+
}
281+
282+
Ok(configs)
283+
}

node/service/src/chain_spec/mod.rs

Lines changed: 2 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,10 @@ pub mod asgard;
2121
#[cfg(feature = "with-bifrost-runtime")]
2222
pub mod bifrost;
2323

24-
use std::{
25-
fs::{read_dir, File},
26-
path::PathBuf,
27-
};
28-
29-
use hex_literal::hex;
3024
pub use node_primitives::{AccountId, Block, Signature};
3125
use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};
32-
use serde::{de::DeserializeOwned, Deserialize, Serialize};
33-
use serde_json as json;
34-
use sp_core::{sr25519, Pair, Public};
26+
use serde::{Deserialize, Serialize};
27+
use sp_core::{Pair, Public};
3528
use sp_runtime::traits::{IdentifyAccount, Verify};
3629

3730
pub const TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/";
@@ -82,65 +75,3 @@ where
8275
{
8376
AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()
8477
}
85-
86-
#[allow(dead_code)]
87-
fn testnet_accounts() -> Vec<AccountId> {
88-
vec![
89-
get_account_id_from_seed::<sr25519::Public>("Alice"),
90-
get_account_id_from_seed::<sr25519::Public>("Bob"),
91-
get_account_id_from_seed::<sr25519::Public>("Charlie"),
92-
get_account_id_from_seed::<sr25519::Public>("Dave"),
93-
get_account_id_from_seed::<sr25519::Public>("Eve"),
94-
get_account_id_from_seed::<sr25519::Public>("Ferdie"),
95-
get_account_id_from_seed::<sr25519::Public>("Alice//stash"),
96-
get_account_id_from_seed::<sr25519::Public>("Bob//stash"),
97-
get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),
98-
get_account_id_from_seed::<sr25519::Public>("Dave//stash"),
99-
get_account_id_from_seed::<sr25519::Public>("Eve//stash"),
100-
get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),
101-
]
102-
}
103-
104-
pub fn faucet_accounts() -> Vec<AccountId> {
105-
vec![
106-
hex!["ce6072037670ca8e974fd571eae4f215a58d0bf823b998f619c3f87a911c3541"].into(), /* asgard sudo account */
107-
hex!["a2d57b8e781327bd2853b36e6f290bd8beeaa850971c9b0789ec4969f8beb01b"].into(), /* bifrost-faucet */
108-
hex!["a272fa6e2282767b61a299e81023d44ef583c640fef99b0bafe216399775cd17"].into(),
109-
hex!["56f6e7bb0826cd128672ad3a03016533834123c319adc635c6db595c6f72272e"].into(),
110-
hex!["7e9005c247601a0d0e967f68b03f6e39e402a735ec65c20e4965c6d94a22e42f"].into(),
111-
hex!["f2449dfbb431a5f9e8dc7468e5f3521baff4c0125edcda746f38df5295d5fb28"].into(),
112-
hex!["aaa565b52ea12bf3c8d7abb79411976bccd8054c5581922acc0165ad88640f09"].into(),
113-
hex!["8afadc065940f22f73b745aab694b1b20cafea3d4e52adad844f581614fbdd00"].into(),
114-
hex!["0831325e2b4953f247db9df3f6452becbf23d8f7f806c0396ad853cb3c284d06"].into(),
115-
hex!["7ea84934a575487fb02c44e01f4488c2f242cdbf48052630780dcd8ac567950c"].into(),
116-
hex!["ee05492a82cb982392aad78f7e6f6fff56eaee4988fd9961ebb84e177dd6526d"].into(), /* bifrost-faucet */
117-
hex!["7435653321694ee115e8cea8c8e117c0b6703b6fb91298b6df5adeef7679a46f"].into(), /* danny testing account */
118-
hex!["263c78393f33b23cd23f3211726b2316e950910749d20c1552ea6972091a645e"].into(), /* jianbo testing account */
119-
hex!["803feefeab8e5c81c3d268038b6c494d3018714fc8c5d08cf027111fd8114b06"].into(), /* tieqiao testing account */
120-
hex!["8898ffd2cb04fb751655ede7bc0081b6b6ebe13cd0bdee5bbb9273e6dcc9b91c"].into(), /* tyrone testing account */
121-
]
122-
}
123-
124-
fn config_from_json_file<T: DeserializeOwned>(path: PathBuf) -> Result<T, String> {
125-
let file = File::open(&path).map_err(|e| format!("Error opening genesis config: {}", e))?;
126-
127-
let config =
128-
json::from_reader(file).map_err(|e| format!("Error parsing config file: {}", e))?;
129-
130-
Ok(config)
131-
}
132-
133-
fn config_from_json_files<T: DeserializeOwned>(dir: PathBuf) -> Result<Vec<T>, String> {
134-
let mut configs = vec![];
135-
136-
let iter = read_dir(&dir).map_err(|e| format!("Error opening directory: {}", e))?;
137-
for entry in iter {
138-
let path = entry.map_err(|e| format!("{}", e))?.path();
139-
140-
if !path.is_dir() {
141-
configs.push(config_from_json_file(path)?);
142-
}
143-
}
144-
145-
Ok(configs)
146-
}

0 commit comments

Comments
 (0)