git.delta.rocks / unique-network / refs/commits / bfa69d53442e

difftreelog

source

node/src/chain_spec.rs5.7 KiBsourcehistory
1// use nft_runtime::{2//     AccountId, AuraConfig, BalancesConfig, GenesisConfig, GrandpaConfig, Signature, SudoConfig,3//     SystemConfig, WASM_BINARY,4// };5// use nft_runtime::{ContractsConfig, ContractsSchedule, NftConfig, CollectionType};6use nft_runtime::*;7use sc_service::ChainType;8use sp_consensus_aura::sr25519::AuthorityId as AuraId;9use sp_core::{sr25519, Pair, Public};10use sp_finality_grandpa::AuthorityId as GrandpaId;11use sp_runtime::traits::{IdentifyAccount, Verify};1213// Note this is the URL for the telemetry server14//const STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/";1516/// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type.17pub type ChainSpec = sc_service::GenericChainSpec<GenesisConfig>;1819/// Helper function to generate a crypto pair from seed20pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {21    TPublic::Pair::from_string(&format!("//{}", seed), None)22        .expect("static values are valid; qed")23        .public()24}2526type AccountPublic = <Signature as Verify>::Signer;2728/// Helper function to generate an account ID from seed29pub fn get_account_id_from_seed<TPublic: Public>(seed: &str) -> AccountId30where31    AccountPublic: From<<TPublic::Pair as Pair>::Public>,32{33    AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()34}3536/// Helper function to generate an authority key for Aura37pub fn authority_keys_from_seed(s: &str) -> (AuraId, GrandpaId) {38    (get_from_seed::<AuraId>(s), get_from_seed::<GrandpaId>(s))39}4041pub fn development_config() -> ChainSpec {42    ChainSpec::from_genesis(43        "Development",44        "dev",45        ChainType::Development,46        || {47            testnet_genesis(48                vec![authority_keys_from_seed("Alice")],49                get_account_id_from_seed::<sr25519::Public>("Alice"),50                vec![51                    get_account_id_from_seed::<sr25519::Public>("Alice"),52                    get_account_id_from_seed::<sr25519::Public>("Bob"),53                    get_account_id_from_seed::<sr25519::Public>("Alice//stash"),54                    get_account_id_from_seed::<sr25519::Public>("Bob//stash"),55                ],56                true,57            )58        },59        vec![],60        None,61        None,62        None,63        None,64    )65}6667pub fn local_testnet_config() -> ChainSpec {68    ChainSpec::from_genesis(69        "Local Testnet",70        "local_testnet",71        ChainType::Local,72        || {73            testnet_genesis(74                vec![75                    authority_keys_from_seed("Alice"),76                    authority_keys_from_seed("Bob"),77                ],78                get_account_id_from_seed::<sr25519::Public>("Alice"),79                vec![80                    get_account_id_from_seed::<sr25519::Public>("Alice"),81                    get_account_id_from_seed::<sr25519::Public>("Bob"),82                    get_account_id_from_seed::<sr25519::Public>("Charlie"),83                    get_account_id_from_seed::<sr25519::Public>("Dave"),84                    get_account_id_from_seed::<sr25519::Public>("Eve"),85                    get_account_id_from_seed::<sr25519::Public>("Ferdie"),86                    get_account_id_from_seed::<sr25519::Public>("Alice//stash"),87                    get_account_id_from_seed::<sr25519::Public>("Bob//stash"),88                    get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),89                    get_account_id_from_seed::<sr25519::Public>("Dave//stash"),90                    get_account_id_from_seed::<sr25519::Public>("Eve//stash"),91                    get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),92                ],93                true,94            )95        },96        vec![],97        None,98        None,99        None,100        None,101    )102}103104fn testnet_genesis(105    initial_authorities: Vec<(AuraId, GrandpaId)>,106    root_key: AccountId,107    endowed_accounts: Vec<AccountId>,108    enable_println: bool,109) -> GenesisConfig {110    GenesisConfig {111        system: Some(SystemConfig {112            code: WASM_BINARY.to_vec(),113            changes_trie_config: Default::default(),114        }),115        balances: Some(BalancesConfig {116            balances: endowed_accounts117                .iter()118                .cloned()119                .map(|k| (k, 1 << 100))120                .collect(),121        }),122        aura: Some(AuraConfig {123            authorities: initial_authorities.iter().map(|x| (x.0.clone())).collect(),124        }),125        grandpa: Some(GrandpaConfig {126            authorities: initial_authorities127                .iter()128                .map(|x| (x.1.clone(), 1))129                .collect(),130        }),131        sudo: Some(SudoConfig { key: root_key }),132        nft: Some(NftConfig {133            collection: vec![(1, CollectionType { 134                owner: get_account_id_from_seed::<sr25519::Public>("Alice"),135                mode: CollectionMode::NFT(50),136                access: AccessMode::Normal,137                decimal_points: 0,138                name: vec!(),139                description: vec!(),140                token_prefix: vec!(),141                custom_data_size: 50,142                mint_mode: false,143                offchain_schema: vec!(),144                sponsor: get_account_id_from_seed::<sr25519::Public>("Alice"),145                unconfirmed_sponsor: get_account_id_from_seed::<sr25519::Public>("Alice"),146            })],147            nft_item_id: vec!(),148            fungible_item_id: vec!(),149            refungible_item_id: vec!(),150        }),151        contracts: Some(ContractsConfig {152            current_schedule: ContractsSchedule {153                enable_println,154                ..Default::default()155            },156        }),157    }158}