feat: add pezkuwichain mainnet configuration
Mainnet Configuration: - Add pezkuwichain_mainnet_config() in chain_spec.rs with HEZ token properties - Add "pezkuwichain-mainnet" CLI option in command.rs - Update relay chain name to "pezkuwichain-mainnet" in asset_hubs.rs Asset Hub Genesis (asset-hub-pezkuwichain): - Add wUSDT asset (ID: 1000, 6 decimals) for wrapped USDT - Update treasury, founder, presale accounts to secure mainnet wallets - Update collator addresses (Azad, Beritan, Civan, Dildar) People Chain Genesis (people-pezkuwichain): - Add PezkuwichainGenesis runtime type for mainnet - Update founder account to secure mainnet wallet - Update collator addresses (Erin, Firaz, Goran, Hevi) Token Configuration: - HEZ: 18 decimals, SS58 format 42 - PEZ: Asset ID 1, 12 decimals - wHEZ: Asset ID 2, 12 decimals - wUSDT: Asset ID 1000, 6 decimals
This commit is contained in:
Generated
+1
@@ -12013,6 +12013,7 @@ dependencies = [
|
|||||||
"pezsp-staking",
|
"pezsp-staking",
|
||||||
"pezsp-state-machine",
|
"pezsp-state-machine",
|
||||||
"pezsp-std",
|
"pezsp-std",
|
||||||
|
"pezsp-timestamp",
|
||||||
"pezsp-tracing",
|
"pezsp-tracing",
|
||||||
"pezsp-trie",
|
"pezsp-trie",
|
||||||
"pezsp-weights",
|
"pezsp-weights",
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ pub fn asset_hub_pezkuwichain_genesis_config() -> GenericChainSpec {
|
|||||||
GenericChainSpec::builder(
|
GenericChainSpec::builder(
|
||||||
asset_hub_pezkuwichain_runtime::WASM_BINARY
|
asset_hub_pezkuwichain_runtime::WASM_BINARY
|
||||||
.expect("WASM binary was not built, please build it!"),
|
.expect("WASM binary was not built, please build it!"),
|
||||||
Extensions::new_with_relay_chain("pezkuwichain".into()),
|
Extensions::new_with_relay_chain("pezkuwichain-mainnet".into()),
|
||||||
)
|
)
|
||||||
.with_name("Pezkuwichain Asset Hub")
|
.with_name("Pezkuwichain Asset Hub")
|
||||||
.with_id("asset-hub-pezkuwichain")
|
.with_id("asset-hub-pezkuwichain")
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ pub enum PeopleRuntimeType {
|
|||||||
Pezkuwi,
|
Pezkuwi,
|
||||||
PezkuwiLocal,
|
PezkuwiLocal,
|
||||||
Pezkuwichain,
|
Pezkuwichain,
|
||||||
|
PezkuwichainGenesis,
|
||||||
PezkuwichainLocal,
|
PezkuwichainLocal,
|
||||||
PezkuwichainDevelopment,
|
PezkuwichainDevelopment,
|
||||||
Zagros,
|
Zagros,
|
||||||
@@ -43,6 +44,7 @@ impl FromStr for PeopleRuntimeType {
|
|||||||
pezkuwi::PEOPLE_PEZKUWI => Ok(PeopleRuntimeType::Pezkuwi),
|
pezkuwi::PEOPLE_PEZKUWI => Ok(PeopleRuntimeType::Pezkuwi),
|
||||||
pezkuwi::PEOPLE_PEZKUWI_LOCAL => Ok(PeopleRuntimeType::PezkuwiLocal),
|
pezkuwi::PEOPLE_PEZKUWI_LOCAL => Ok(PeopleRuntimeType::PezkuwiLocal),
|
||||||
pezkuwichain::PEOPLE_PEZKUWICHAIN => Ok(PeopleRuntimeType::Pezkuwichain),
|
pezkuwichain::PEOPLE_PEZKUWICHAIN => Ok(PeopleRuntimeType::Pezkuwichain),
|
||||||
|
pezkuwichain::PEOPLE_PEZKUWICHAIN_GENESIS => Ok(PeopleRuntimeType::PezkuwichainGenesis),
|
||||||
pezkuwichain::PEOPLE_PEZKUWICHAIN_LOCAL => Ok(PeopleRuntimeType::PezkuwichainLocal),
|
pezkuwichain::PEOPLE_PEZKUWICHAIN_LOCAL => Ok(PeopleRuntimeType::PezkuwichainLocal),
|
||||||
pezkuwichain::PEOPLE_PEZKUWICHAIN_DEVELOPMENT => {
|
pezkuwichain::PEOPLE_PEZKUWICHAIN_DEVELOPMENT => {
|
||||||
Ok(PeopleRuntimeType::PezkuwichainDevelopment)
|
Ok(PeopleRuntimeType::PezkuwichainDevelopment)
|
||||||
@@ -69,6 +71,7 @@ impl PeopleRuntimeType {
|
|||||||
PeopleRuntimeType::Pezkuwichain => Ok(Box::new(GenericChainSpec::from_json_bytes(
|
PeopleRuntimeType::Pezkuwichain => Ok(Box::new(GenericChainSpec::from_json_bytes(
|
||||||
&include_bytes!("../../chain-specs/people-pezkuwichain.json")[..],
|
&include_bytes!("../../chain-specs/people-pezkuwichain.json")[..],
|
||||||
)?)),
|
)?)),
|
||||||
|
PeopleRuntimeType::PezkuwichainGenesis => Ok(Box::new(pezkuwichain::genesis_config())),
|
||||||
PeopleRuntimeType::PezkuwichainLocal => Ok(Box::new(pezkuwichain::local_config(
|
PeopleRuntimeType::PezkuwichainLocal => Ok(Box::new(pezkuwichain::local_config(
|
||||||
pezkuwichain::PEOPLE_PEZKUWICHAIN_LOCAL,
|
pezkuwichain::PEOPLE_PEZKUWICHAIN_LOCAL,
|
||||||
"Pezkuwichain People Local",
|
"Pezkuwichain People Local",
|
||||||
@@ -123,9 +126,30 @@ pub mod pezkuwichain {
|
|||||||
use pezsc_chain_spec::ChainType;
|
use pezsc_chain_spec::ChainType;
|
||||||
|
|
||||||
pub(crate) const PEOPLE_PEZKUWICHAIN: &str = "people-pezkuwichain";
|
pub(crate) const PEOPLE_PEZKUWICHAIN: &str = "people-pezkuwichain";
|
||||||
|
pub(crate) const PEOPLE_PEZKUWICHAIN_GENESIS: &str = "people-pezkuwichain-genesis";
|
||||||
pub(crate) const PEOPLE_PEZKUWICHAIN_LOCAL: &str = "people-pezkuwichain-local";
|
pub(crate) const PEOPLE_PEZKUWICHAIN_LOCAL: &str = "people-pezkuwichain-local";
|
||||||
pub(crate) const PEOPLE_PEZKUWICHAIN_DEVELOPMENT: &str = "people-pezkuwichain-dev";
|
pub(crate) const PEOPLE_PEZKUWICHAIN_DEVELOPMENT: &str = "people-pezkuwichain-dev";
|
||||||
|
|
||||||
|
/// Genesis config for People Pezkuwichain mainnet
|
||||||
|
pub fn genesis_config() -> GenericChainSpec {
|
||||||
|
let mut properties = pezsc_chain_spec::Properties::new();
|
||||||
|
properties.insert("ss58Format".into(), 42.into());
|
||||||
|
properties.insert("tokenSymbol".into(), "TYR".into());
|
||||||
|
properties.insert("tokenDecimals".into(), 12.into());
|
||||||
|
|
||||||
|
GenericChainSpec::builder(
|
||||||
|
people_pezkuwichain_runtime::WASM_BINARY
|
||||||
|
.expect("WASM binary was not built, please build it!"),
|
||||||
|
Extensions::new_with_relay_chain("pezkuwichain-mainnet".to_string()),
|
||||||
|
)
|
||||||
|
.with_name("Pezkuwichain People")
|
||||||
|
.with_id(super::ensure_id(PEOPLE_PEZKUWICHAIN_GENESIS).expect("invalid id"))
|
||||||
|
.with_chain_type(ChainType::Live)
|
||||||
|
.with_genesis_config_preset_name("genesis")
|
||||||
|
.with_properties(properties)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn local_config(
|
pub fn local_config(
|
||||||
spec_id: &str,
|
spec_id: &str,
|
||||||
chain_name: &str,
|
chain_name: &str,
|
||||||
|
|||||||
+35
-21
@@ -51,9 +51,16 @@ pub const PEZ_ASSET_ID: AssetIdForTrustBackedAssets = 1;
|
|||||||
/// Wrapped HEZ (wHEZ) Asset ID - Used by TokenWrapper pezpallet
|
/// Wrapped HEZ (wHEZ) Asset ID - Used by TokenWrapper pezpallet
|
||||||
pub const WHEZ_ASSET_ID: AssetIdForTrustBackedAssets = 2;
|
pub const WHEZ_ASSET_ID: AssetIdForTrustBackedAssets = 2;
|
||||||
|
|
||||||
|
/// wUSDT Asset ID - Wrapped USDT (1:1 backed by Polkadot USDT or TRC20 USDT)
|
||||||
|
/// Using 1000 to match chains.json configuration in pezWallet
|
||||||
|
pub const WUSDT_ASSET_ID: AssetIdForTrustBackedAssets = 1000;
|
||||||
|
|
||||||
/// PEZ Token decimals (same as HEZ)
|
/// PEZ Token decimals (same as HEZ)
|
||||||
pub const PEZ_DECIMALS: u8 = 12;
|
pub const PEZ_DECIMALS: u8 = 12;
|
||||||
|
|
||||||
|
/// wUSDT decimals (USDT standard: 6 decimals)
|
||||||
|
pub const WUSDT_DECIMALS: u8 = 6;
|
||||||
|
|
||||||
/// Treasury allocation: 20.25% = 1,012,500,000 PEZ
|
/// Treasury allocation: 20.25% = 1,012,500,000 PEZ
|
||||||
pub const PEZ_TREASURY_ALLOCATION: Balance = 1_012_500_000 * TYR;
|
pub const PEZ_TREASURY_ALLOCATION: Balance = 1_012_500_000 * TYR;
|
||||||
|
|
||||||
@@ -133,7 +140,7 @@ fn asset_hub_pezkuwichain_genesis(
|
|||||||
pezkuwi_xcm: PezkuwiXcmConfig { safe_xcm_version: Some(SAFE_XCM_VERSION) },
|
pezkuwi_xcm: PezkuwiXcmConfig { safe_xcm_version: Some(SAFE_XCM_VERSION) },
|
||||||
|
|
||||||
// ====================================================================
|
// ====================================================================
|
||||||
// TrustBackedAssets (Instance1) - PEZ and wHEZ tokens
|
// TrustBackedAssets (Instance1) - PEZ, wHEZ, and wUSDT tokens
|
||||||
// ====================================================================
|
// ====================================================================
|
||||||
assets: AssetsConfig {
|
assets: AssetsConfig {
|
||||||
// Asset definitions: (id, owner, is_sufficient, min_balance)
|
// Asset definitions: (id, owner, is_sufficient, min_balance)
|
||||||
@@ -142,11 +149,15 @@ fn asset_hub_pezkuwichain_genesis(
|
|||||||
(PEZ_ASSET_ID, treasury_account.clone(), true, 1),
|
(PEZ_ASSET_ID, treasury_account.clone(), true, 1),
|
||||||
// wHEZ Token - Wrapped HEZ for DeFi operations
|
// wHEZ Token - Wrapped HEZ for DeFi operations
|
||||||
(WHEZ_ASSET_ID, treasury_account.clone(), true, 1),
|
(WHEZ_ASSET_ID, treasury_account.clone(), true, 1),
|
||||||
|
// wUSDT - Wrapped USDT (1:1 backed by Polkadot USDT or TRC20 USDT)
|
||||||
|
// Min balance: 10_000 (0.01 USDT with 6 decimals)
|
||||||
|
(WUSDT_ASSET_ID, treasury_account.clone(), true, 10_000),
|
||||||
],
|
],
|
||||||
// Asset metadata: (id, name, symbol, decimals)
|
// Asset metadata: (id, name, symbol, decimals)
|
||||||
metadata: vec![
|
metadata: vec![
|
||||||
(PEZ_ASSET_ID, b"Pez Token".to_vec(), b"PEZ".to_vec(), PEZ_DECIMALS),
|
(PEZ_ASSET_ID, b"Pez Token".to_vec(), b"PEZ".to_vec(), PEZ_DECIMALS),
|
||||||
(WHEZ_ASSET_ID, b"Wrapped HEZ".to_vec(), b"wHEZ".to_vec(), PEZ_DECIMALS),
|
(WHEZ_ASSET_ID, b"Wrapped HEZ".to_vec(), b"wHEZ".to_vec(), PEZ_DECIMALS),
|
||||||
|
(WUSDT_ASSET_ID, b"Wrapped USDT".to_vec(), b"wUSDT".to_vec(), WUSDT_DECIMALS),
|
||||||
],
|
],
|
||||||
// Initial balances: (asset_id, account, balance)
|
// Initial balances: (asset_id, account, balance)
|
||||||
accounts: vec![
|
accounts: vec![
|
||||||
@@ -162,9 +173,10 @@ fn asset_hub_pezkuwichain_genesis(
|
|||||||
// Presale allocation: 1.875% = 93,750,000 PEZ
|
// Presale allocation: 1.875% = 93,750,000 PEZ
|
||||||
(PEZ_ASSET_ID, presale_account.clone(), PEZ_PRESALE_ALLOCATION),
|
(PEZ_ASSET_ID, presale_account.clone(), PEZ_PRESALE_ALLOCATION),
|
||||||
// wHEZ starts with 0 balance - only created via TokenWrapper
|
// wHEZ starts with 0 balance - only created via TokenWrapper
|
||||||
|
// wUSDT starts with 0 balance - minted via Custodial Bridge
|
||||||
],
|
],
|
||||||
// Next asset ID after PEZ and wHEZ
|
// Next asset ID after PEZ (1), wHEZ (2), and wUSDT (1000)
|
||||||
next_asset_id: Some(3),
|
next_asset_id: Some(1001),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -200,44 +212,46 @@ pub fn get_preset(id: &PresetId) -> Option<Vec<u8>> {
|
|||||||
// Treasury, Founder, Presale accounts should be replaced with real addresses
|
// Treasury, Founder, Presale accounts should be replaced with real addresses
|
||||||
// ====================================================================
|
// ====================================================================
|
||||||
PRESET_GENESIS => {
|
PRESET_GENESIS => {
|
||||||
// Placeholder accounts - MUST be replaced with real addresses from
|
// MAINNET ACCOUNTS - NEW SECURE WALLETS (2026-01-21)
|
||||||
// Founder_treasury_presale_wallets.json before mainnet launch
|
// Treasury: 5D7guUmrk2xap2xuCwDJgJB5JDtxy439Dx2vaQ5JkvgtNjb4
|
||||||
let treasury_account: AccountId =
|
let treasury_account: AccountId =
|
||||||
hex!("44cb62d1d6cdd2fff2a5ef3bb7ef827be5b3e117a394ecaa634d8dd9809d5608").into();
|
hex!("2e82c43a0a7edc05a179901d18bdfac86d52953c1b7ca5e8e3ceeb3a83044b4f").into();
|
||||||
|
// Founder: 5HN6sFM7TbPQazmfhJP1kU8itw7Tb2A9UML8TwSYRwiN9q5Z
|
||||||
let founder_account: AccountId =
|
let founder_account: AccountId =
|
||||||
hex!("44cb62d1d6cdd2fff2a5ef3bb7ef827be5b3e117a394ecaa634d8dd9809d5608").into();
|
hex!("ea71cc341e6790988692d8adcd08a26c75d8c813e45e0a25b24b707dc7846677").into();
|
||||||
|
// Presale: 5GsFKogGuxr9ToPuZ2XPxksZWTWdCGUnd8hmqSyssfsvprtA
|
||||||
let presale_account: AccountId =
|
let presale_account: AccountId =
|
||||||
hex!("44cb62d1d6cdd2fff2a5ef3bb7ef827be5b3e117a394ecaa634d8dd9809d5608").into();
|
hex!("d47027192dd48b2c48606012a8bb7410cd92fed091e4896e4dc4c67772974606").into();
|
||||||
|
|
||||||
asset_hub_pezkuwichain_genesis(
|
asset_hub_pezkuwichain_genesis(
|
||||||
// initial collators.
|
// initial collators - 4 Asset Hub collators from mainnet_collators
|
||||||
vec![
|
vec![
|
||||||
// E8XC6rTJRsioKCp6KMy6zd24ykj4gWsusZ3AkSeyavpVBAG
|
// Azad (5F4ErvW2gvD2jgtfSfypcDirgF78PQWTsz8GmhArZ8Jvg4c5)
|
||||||
(
|
(
|
||||||
hex!("44cb62d1d6cdd2fff2a5ef3bb7ef827be5b3e117a394ecaa634d8dd9809d5608")
|
hex!("8459d334fcb5432ccd6820b2677080c9dbefa127734eaa15551b62aaffb5ff57")
|
||||||
.into(),
|
.into(),
|
||||||
hex!("44cb62d1d6cdd2fff2a5ef3bb7ef827be5b3e117a394ecaa634d8dd9809d5608")
|
hex!("8459d334fcb5432ccd6820b2677080c9dbefa127734eaa15551b62aaffb5ff57")
|
||||||
.unchecked_into(),
|
.unchecked_into(),
|
||||||
),
|
),
|
||||||
// G28iWEybndgGRbhfx83t7Q42YhMPByHpyqWDUgeyoGF94ri
|
// Beritan (5DvQHQBDvYsigbdxdkhQfRb6cTXeDAEDvqeQHrcPfEE1z2yZ)
|
||||||
(
|
(
|
||||||
hex!("9864b85e23aa4506643db9879c3dbbeabaa94d269693a4447f537dd6b5893944")
|
hex!("5223587ee928ed8cc5e9fcff9f9d04ac5fca83a46d602193b265e4642a3a344d")
|
||||||
.into(),
|
.into(),
|
||||||
hex!("9864b85e23aa4506643db9879c3dbbeabaa94d269693a4447f537dd6b5893944")
|
hex!("5223587ee928ed8cc5e9fcff9f9d04ac5fca83a46d602193b265e4642a3a344d")
|
||||||
.unchecked_into(),
|
.unchecked_into(),
|
||||||
),
|
),
|
||||||
// G839e2eMiq7UXbConsY6DS1XDAYG2XnQxAmLuRLGGQ3Px9c
|
// Cuwan (5HB4o1Qmb883n7spYVnt5dcWXrY18SFD8iwH2ySg2nSGjyyT)
|
||||||
(
|
(
|
||||||
hex!("9ce5741ee2f1ac3bdedbde9f3339048f4da2cb88ddf33a0977fa0b4cf86e2948")
|
hex!("e2071e98ab4273169bf6a4cd9ade1f3f5d7e077ee849c06ff138faeb89f8187b")
|
||||||
.into(),
|
.into(),
|
||||||
hex!("9ce5741ee2f1ac3bdedbde9f3339048f4da2cb88ddf33a0977fa0b4cf86e2948")
|
hex!("e2071e98ab4273169bf6a4cd9ade1f3f5d7e077ee849c06ff138faeb89f8187b")
|
||||||
.unchecked_into(),
|
.unchecked_into(),
|
||||||
),
|
),
|
||||||
// GLao4ukFUW6qhexuZowdFrKa2NLCfnEjZMftSXXfvGv1vvt
|
// Delil (5Fk4FPr6BS3CiPyV38cYL5SnhgKdAGbzgVCL5K7eyvHp1g3z)
|
||||||
(
|
(
|
||||||
hex!("a676ed15f5a325eab49ed8d5f8c00f3f814b19bb58cda14ad10894c078dd337f")
|
hex!("a2b7ea8803b44586258d718123286558aa0a3da2971316c83b46e3962b95af18")
|
||||||
.into(),
|
.into(),
|
||||||
hex!("a676ed15f5a325eab49ed8d5f8c00f3f814b19bb58cda14ad10894c078dd337f")
|
hex!("a2b7ea8803b44586258d718123286558aa0a3da2971316c83b46e3962b95af18")
|
||||||
.unchecked_into(),
|
.unchecked_into(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
+16
-16
@@ -110,40 +110,40 @@ pub fn get_preset(id: &PresetId) -> Option<Vec<u8>> {
|
|||||||
// Founder account is the founding citizen
|
// Founder account is the founding citizen
|
||||||
// ====================================================================
|
// ====================================================================
|
||||||
PRESET_GENESIS => {
|
PRESET_GENESIS => {
|
||||||
// Founder account - MUST be replaced with real address from
|
// MAINNET FOUNDER ACCOUNT - NEW SECURE WALLET (2026-01-21)
|
||||||
// Founder_treasury_presale_wallets.json before mainnet launch
|
// Founder: 5HN6sFM7TbPQazmfhJP1kU8itw7Tb2A9UML8TwSYRwiN9q5Z
|
||||||
let founder_account: AccountId =
|
let founder_account: AccountId =
|
||||||
hex!("44cb62d1d6cdd2fff2a5ef3bb7ef827be5b3e117a394ecaa634d8dd9809d5608").into();
|
hex!("ea71cc341e6790988692d8adcd08a26c75d8c813e45e0a25b24b707dc7846677").into();
|
||||||
|
|
||||||
people_pezkuwichain_genesis(
|
people_pezkuwichain_genesis(
|
||||||
// initial collators.
|
// initial collators - 4 People Chain collators from mainnet_collators
|
||||||
vec![
|
vec![
|
||||||
// E8XC6rTJRsioKCp6KMy6zd24ykj4gWsusZ3AkSeyavpVBAG
|
// Erin (5GsXLpqXCsffdiEvsgRGBUnErpEotJt6GYou4fk1KfitqmJA)
|
||||||
(
|
(
|
||||||
hex!("44cb62d1d6cdd2fff2a5ef3bb7ef827be5b3e117a394ecaa634d8dd9809d5608")
|
hex!("d4a6129e5e8e5c148fec5e4fd542adc556a64f4693797383d8c709b7a9e26f55")
|
||||||
.into(),
|
.into(),
|
||||||
hex!("44cb62d1d6cdd2fff2a5ef3bb7ef827be5b3e117a394ecaa634d8dd9809d5608")
|
hex!("d4a6129e5e8e5c148fec5e4fd542adc556a64f4693797383d8c709b7a9e26f55")
|
||||||
.unchecked_into(),
|
.unchecked_into(),
|
||||||
),
|
),
|
||||||
// G28iWEybndgGRbhfx83t7Q42YhMPByHpyqWDUgeyoGF94ri
|
// Firaz (5FppJpr63gyHZ6RkgcZ4T39jpu9gepCdvQTDok1sUFDY24h6)
|
||||||
(
|
(
|
||||||
hex!("9864b85e23aa4506643db9879c3dbbeabaa94d269693a4447f537dd6b5893944")
|
hex!("a65936cee8f0a310728475960e506e44a53436a7332f0bd40d965517aa435041")
|
||||||
.into(),
|
.into(),
|
||||||
hex!("9864b85e23aa4506643db9879c3dbbeabaa94d269693a4447f537dd6b5893944")
|
hex!("a65936cee8f0a310728475960e506e44a53436a7332f0bd40d965517aa435041")
|
||||||
.unchecked_into(),
|
.unchecked_into(),
|
||||||
),
|
),
|
||||||
// G839e2eMiq7UXbConsY6DS1XDAYG2XnQxAmLuRLGGQ3Px9c
|
// Goran (5HKjdsQN1RmrmXCr72kR5cTBJVatvm56DxBhjJGGxFFiYptd)
|
||||||
(
|
(
|
||||||
hex!("9ce5741ee2f1ac3bdedbde9f3339048f4da2cb88ddf33a0977fa0b4cf86e2948")
|
hex!("e8a3d68cc51621451aec7f978601f1a200084bebc82ca1cb3abc021c311d5b7c")
|
||||||
.into(),
|
.into(),
|
||||||
hex!("9ce5741ee2f1ac3bdedbde9f3339048f4da2cb88ddf33a0977fa0b4cf86e2948")
|
hex!("e8a3d68cc51621451aec7f978601f1a200084bebc82ca1cb3abc021c311d5b7c")
|
||||||
.unchecked_into(),
|
.unchecked_into(),
|
||||||
),
|
),
|
||||||
// GLao4ukFUW6qhexuZowdFrKa2NLCfnEjZMftSXXfvGv1vvt
|
// Hevi (5CcYFisDG1jmwFRJSVYNSHKHxFWS69D4sfhebPNWc7kXvQhw)
|
||||||
(
|
(
|
||||||
hex!("a676ed15f5a325eab49ed8d5f8c00f3f814b19bb58cda14ad10894c078dd337f")
|
hex!("1847872999ff97fb137e09143bc2dbd2e8c1c3c93bc240cd25ef10dc26ba9b62")
|
||||||
.into(),
|
.into(),
|
||||||
hex!("a676ed15f5a325eab49ed8d5f8c00f3f814b19bb58cda14ad10894c078dd337f")
|
hex!("1847872999ff97fb137e09143bc2dbd2e8c1c3c93bc240cd25ef10dc26ba9b62")
|
||||||
.unchecked_into(),
|
.unchecked_into(),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -149,6 +149,8 @@ impl BizinikiwiCli for Cli {
|
|||||||
"paseo" => Box::new(pezkuwi_service::chain_spec::paseo_config()?),
|
"paseo" => Box::new(pezkuwi_service::chain_spec::paseo_config()?),
|
||||||
"pezkuwichain" => Box::new(pezkuwi_service::chain_spec::pezkuwichain_config()?),
|
"pezkuwichain" => Box::new(pezkuwi_service::chain_spec::pezkuwichain_config()?),
|
||||||
#[cfg(feature = "pezkuwichain-native")]
|
#[cfg(feature = "pezkuwichain-native")]
|
||||||
|
"pezkuwichain-mainnet" => Box::new(pezkuwi_service::chain_spec::pezkuwichain_mainnet_config()?),
|
||||||
|
#[cfg(feature = "pezkuwichain-native")]
|
||||||
"dev" | "pezkuwichain-dev" => Box::new(pezkuwi_service::chain_spec::pezkuwichain_development_config()?),
|
"dev" | "pezkuwichain-dev" => Box::new(pezkuwi_service::chain_spec::pezkuwichain_development_config()?),
|
||||||
#[cfg(feature = "pezkuwichain-native")]
|
#[cfg(feature = "pezkuwichain-native")]
|
||||||
"pezkuwichain-local" => Box::new(pezkuwi_service::chain_spec::pezkuwichain_local_testnet_config()?),
|
"pezkuwichain-local" => Box::new(pezkuwi_service::chain_spec::pezkuwichain_local_testnet_config()?),
|
||||||
|
|||||||
@@ -94,6 +94,26 @@ pub fn pezkuwichain_config() -> Result<PezkuwichainChainSpec, String> {
|
|||||||
PezkuwichainChainSpec::from_json_bytes(&include_bytes!("../chain-specs/pezkuwichain.json")[..])
|
PezkuwichainChainSpec::from_json_bytes(&include_bytes!("../chain-specs/pezkuwichain.json")[..])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// PezkuwiChain Mainnet config with real validators and HEZ token distribution
|
||||||
|
#[cfg(feature = "pezkuwichain-native")]
|
||||||
|
pub fn pezkuwichain_mainnet_config() -> Result<PezkuwichainChainSpec, String> {
|
||||||
|
Ok(PezkuwichainChainSpec::builder(
|
||||||
|
pezkuwichain::WASM_BINARY.ok_or("Pezkuwichain WASM not available")?,
|
||||||
|
Default::default(),
|
||||||
|
)
|
||||||
|
.with_name("PezkuwiChain Mainnet")
|
||||||
|
.with_id("pezkuwichain_mainnet")
|
||||||
|
.with_chain_type(ChainType::Live)
|
||||||
|
.with_genesis_config_preset_name("genesis")
|
||||||
|
.with_telemetry_endpoints(
|
||||||
|
TelemetryEndpoints::new(vec![(PEZKUWICHAIN_STAGING_TELEMETRY_URL.to_string(), 0)])
|
||||||
|
.expect("Pezkuwichain Mainnet telemetry url is valid; qed"),
|
||||||
|
)
|
||||||
|
.with_protocol_id(DEFAULT_PROTOCOL_ID)
|
||||||
|
.with_properties(pezkuwichain_chain_spec_properties())
|
||||||
|
.build())
|
||||||
|
}
|
||||||
|
|
||||||
/// Zagros staging testnet config.
|
/// Zagros staging testnet config.
|
||||||
#[cfg(feature = "zagros-native")]
|
#[cfg(feature = "zagros-native")]
|
||||||
pub fn zagros_staging_testnet_config() -> Result<ZagrosChainSpec, String> {
|
pub fn zagros_staging_testnet_config() -> Result<ZagrosChainSpec, String> {
|
||||||
@@ -143,6 +163,18 @@ pub fn versi_chain_spec_properties() -> serde_json::map::Map<String, serde_json:
|
|||||||
.clone()
|
.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// PezkuwiChain mainnet chain spec properties (HEZ token)
|
||||||
|
pub fn pezkuwichain_chain_spec_properties() -> serde_json::map::Map<String, serde_json::Value> {
|
||||||
|
serde_json::json!({
|
||||||
|
"ss58Format": 42,
|
||||||
|
"tokenDecimals": 18,
|
||||||
|
"tokenSymbol": "HEZ",
|
||||||
|
})
|
||||||
|
.as_object()
|
||||||
|
.expect("Map given; qed")
|
||||||
|
.clone()
|
||||||
|
}
|
||||||
|
|
||||||
/// Versi staging testnet config.
|
/// Versi staging testnet config.
|
||||||
#[cfg(feature = "pezkuwichain-native")]
|
#[cfg(feature = "pezkuwichain-native")]
|
||||||
pub fn versi_staging_testnet_config() -> Result<PezkuwichainChainSpec, String> {
|
pub fn versi_staging_testnet_config() -> Result<PezkuwichainChainSpec, String> {
|
||||||
|
|||||||
Reference in New Issue
Block a user