rebrand: kusama → dicle

- Replace all kusama/Kusama references with dicle/Dicle
- Rename weight files from ksm_size to dcl_size
- Update papi-tests files from ksm to dcl
- Remove chain-specs/kusama.json files
- cargo check --workspace successful (Finished output)
- Update MAINNET_ROADMAP.md: FAZ 8 completed
This commit is contained in:
2026-01-07 09:40:42 +03:00
parent 1d055178a3
commit c343223ccd
194 changed files with 918 additions and 11068 deletions
@@ -1,14 +1,14 @@
# Assets Teyrchain
Implementation of Asset Hub, a blockchain to support generic assets in the PezkuwiChain and Kusama
Implementation of Asset Hub, a blockchain to support generic assets in the PezkuwiChain and Dicle
networks. Asset Hub was formerly known as "Statemint".
Asset Hub allows users to:
- Deploy promise-backed assets, both fungible and non-fungible, with a HEZ/KSM deposit.
- Deploy promise-backed assets, both fungible and non-fungible, with a HEZ/DCL deposit.
- Set admin roles to manage assets and asset classes.
- Register assets as "self-sufficient" if the Relay Chain agrees, i.e. gain the ability for an
asset to justify the existence of accounts sans HEZ/KSM.
asset to justify the existence of accounts sans HEZ/DCL.
- Pay transaction fees using sufficient assets.
- Transfer (and approve transfer) assets.
- Interact with the chain via its transactional API or XCM.
@@ -15,7 +15,7 @@
//! # Asset Hub Pezkuwichain Runtime
//!
//! Asset Hub Pezkuwichain, formerly known as "Rockmine", is the test network for its Kusama cousin.
//! Asset Hub Pezkuwichain, formerly known as "Rockmine", is the test network for its Dicle cousin.
#![cfg_attr(not(feature = "std"), no_std)]
#![recursion_limit = "512"]
@@ -614,7 +614,7 @@ pub mod bridging {
/// User fee for ERC20 token transfer back to Ethereum.
/// (initially was calculated by test `OutboundQueue::calculate_fees` - ETH/TYR 1/400 and fee_per_gas 20 GWEI = 2200698000000 + *25%)
/// Needs to be more than fee calculated from DefaultFeeConfig FeeConfigRecord in snowbridge:teyrchain/pallets/outbound-queue/src/lib.rs
/// Pezkuwi uses 10 decimals, Kusama and Pezkuwichain 12 decimals.
/// Pezkuwi uses 10 decimals, Dicle and Pezkuwichain 12 decimals.
pub const DefaultBridgeHubEthereumBaseFee: Balance = 3_833_568_200_000;
pub storage BridgeHubEthereumBaseFee: Balance = DefaultBridgeHubEthereumBaseFee::get();
pub SiblingBridgeHubWithEthereumInboundQueueInstance: Location = Location::new(
@@ -20,13 +20,13 @@
//! DATE: 2023-06-19, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-e8ezs4ez-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 1024
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dicle-dev"), DB CACHE: 1024
// Executed Command:
// ./target/production/pezkuwi
// benchmark
// pezpallet
// --chain=kusama-dev
// --chain=dicle-dev
// --steps=50
// --repeat=20
// --no-storage-info
@@ -37,7 +37,7 @@
// --execution=wasm
// --wasm-execution=compiled
// --header=./file_header.txt
// --output=./runtime/kusama/src/weights/
// --output=./runtime/dicle/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)]
@@ -711,7 +711,7 @@ pub mod bridging {
/// User fee for ERC20 token transfer back to Ethereum.
/// (initially was calculated by test `OutboundQueue::calculate_fees` - ETH/ZGR 1/400 and fee_per_gas 20 GWEI = 2200698000000 + *25%)
/// Needs to be more than fee calculated from DefaultFeeConfig FeeConfigRecord in snowbridge:teyrchain/pallets/outbound-queue/src/lib.rs
/// Pezkuwi uses 10 decimals, Kusama,Pezkuwichain,Zagros 12 decimals.
/// Pezkuwi uses 10 decimals, Dicle,Pezkuwichain,Zagros 12 decimals.
pub const DefaultBridgeHubEthereumBaseFee: Balance = 3_833_568_200_000;
pub const DefaultBridgeHubEthereumBaseFeeV2: Balance = 100_000_000_000;
pub storage BridgeHubEthereumBaseFee: Balance = DefaultBridgeHubEthereumBaseFee::get();
@@ -793,7 +793,7 @@ pub fn asset_transactor_transfer_with_local_consensus_currency_works<Runtime, Xc
interior: [AccountId32 { network: None, id: target_account.clone().into() }]
.into(),
},
// local_consensus_currency_asset, e.g.: relaychain token (KSM, HEZ, ...)
// local_consensus_currency_asset, e.g.: relaychain token (DCL, HEZ, ...)
(
Location { parents: 1, interior: Here },
(BalanceOf::<Runtime>::from(1_u128) * unit).into(),
@@ -9,18 +9,18 @@
- [Send messages - transfer asset over bridge (TYRs/WNDs)](#send-messages---transfer-asset-over-bridge-rocswnds)
- [Claim relayer's rewards on BridgeHubpezkuwichain and
BridgeHubzagros](#claim-relayers-rewards-on-bridgehubpezkuwichain-and-bridgehubzagros)
- [How to test local BridgeHubKusama/BridgeHubPezkuwiChain](#how-to-test-local-bridgehubkusamabridgehubpezkuwi)
- [How to test local BridgeHubDicle/BridgeHubPezkuwiChain](#how-to-test-local-bridgehubdiclebridgehubpezkuwi)
# Bridge-hub Teyrchains
_BridgeHub(s)_ are **_system teyrchains_** that will house trustless bridges from the local ecosystem to others. The
current trustless bridges planned for the BridgeHub(s) are:
- `BridgeHubPezkuwiChain` system teyrchain:
1. PezkuwiChain <-> Kusama bridge
1. PezkuwiChain <-> Dicle bridge
2. PezkuwiChain <-> Ethereum bridge (Snowbridge)
- `BridgeHubKusama` system teyrchain:
1. Kusama <-> PezkuwiChain bridge
2. Kusama <-> Ethereum bridge The high-level
- `BridgeHubDicle` system teyrchain:
1. Dicle <-> PezkuwiChain bridge
2. Dicle <-> Ethereum bridge The high-level
responsibilities of each bridge living on BridgeHub:
- sync finality proofs between relay chains (or equivalent)
- sync finality proofs between BridgeHub teyrchains
@@ -88,7 +88,7 @@ cp target/release/pezkuwi-teyrchain ~/local_bridge_testing/bin/pezkuwi-teyrchain
```
cd <pezkuwi-sdk-git-repo-dir>
# pezkuwichain + BridgeHubpezkuwichain + AssetHub for pezkuwichain (mirroring Kusama)
# pezkuwichain + BridgeHubpezkuwichain + AssetHub for pezkuwichain (mirroring Dicle)
PEZKUWI_BINARY=~/local_bridge_testing/bin/pezkuwi \
PEZKUWI_TEYRCHAIN_BINARY=~/local_bridge_testing/bin/pezkuwi-teyrchain \
~/local_bridge_testing/bin/zombienet-linux --provider native spawn ./bridges/testing/environments/pezkuwichain-zagros/bridge_hub_pezkuwichain_local_network.toml
@@ -198,6 +198,6 @@ cd <pezkuwi-sdk-git-repo-dir>
- BridgeHubpezkuwichain (see 2x `bridgeRelayers.RewardPaid`) https://pezkuwichain.io/?rpc=ws://127.0.0.1:8943#/explorer
- BridgeHubzagros (see 2x `bridgeRelayers.RewardPaid`) https://pezkuwichain.io/?rpc=ws://127.0.0.1:8945#/explorer
## How to test local BridgeHubKusama/BridgeHubPezkuwiChain
## How to test local BridgeHubDicle/BridgeHubPezkuwiChain
TODO: see `# !!! READ HERE` above
@@ -123,9 +123,9 @@ impl pezpallet_bridge_grandpa::Config<BridgeGrandpaPezkuwichainBulletinInstance>
type HeadersToKeep = RelayChainHeadersToKeep;
// Technically this is incorrect - we have two pezpallet instances and ideally we shall
// benchmark every instance separately. But the benchmarking engine has a flaw - it
// messes with components. E.g. in Kusama maximal validators count is 1024 and in
// messes with components. E.g. in Dicle maximal validators count is 1024 and in
// Bulletin chain it is 100. But benchmarking engine runs Bulletin benchmarks using
// components range, computed for Kusama => it causes an error.
// components range, computed for Dicle => it causes an error.
//
// In practice, however, GRANDPA pezpallet works the same way for all bridged chains, so
// weights are also the same for both bridges.
@@ -605,13 +605,13 @@ where
destination: [Teyrchain(1000)].into(),
xcm: Xcm(vec![
ReserveAssetDeposited(Assets::from(vec![Asset {
id: AssetId(Location::new(2, [GlobalConsensus(Kusama)])),
id: AssetId(Location::new(2, [GlobalConsensus(Dicle)])),
fun: Fungible(1000000000000),
}])),
ClearOrigin,
BuyExecution {
fees: Asset {
id: AssetId(Location::new(2, [GlobalConsensus(Kusama)])),
id: AssetId(Location::new(2, [GlobalConsensus(Dicle)])),
fun: Fungible(1000000000000),
},
weight_limit: Unlimited,
@@ -15,9 +15,9 @@
//! # Glutton Zagros Runtime
//!
//! The purpose of the Glutton teyrchain is to do stress testing on the Kusama
//! The purpose of the Glutton teyrchain is to do stress testing on the Dicle
//! network. This runtime targets the Zagros runtime to allow development
//! separate to the Kusama runtime.
//! separate to the Dicle runtime.
//!
//! There may be multiple instances of the Glutton teyrchain deployed and
//! connected to its parent relay chain.
@@ -28,7 +28,7 @@
//! ### Governance
//!
//! Glutton defers its governance (namely, its `Root` origin), to its Relay
//! Chain parent, Kusama (or Zagros for development purposes).
//! Chain parent, Dicle (or Zagros for development purposes).
//!
//! ### XCM
//!
@@ -23,7 +23,7 @@ use pezsp_genesis_builder::PresetId;
use pezsp_keyring::Sr25519Keyring;
use teyrchains_common::{AccountId, AuraId};
const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION;
const SAFE_XCM_VERSION: u32 = pezstaging_xcm::prelude::XCM_VERSION;
const DEFAULT_PARA_ID: ParaId = ParaId::new(1000);
const ENDOWMENT: u128 = 1 << 60;
@@ -28,7 +28,7 @@ mod xcm_config;
use crate::xcm_config::{RelayLocation, XcmOriginToTransactDispatchOrigin};
pub use pezkuwi_sdk::{teyrchain_info, *};
pub use pezkuwi_sdk::{pezstaging_teyrchain_info as teyrchain_info, *};
use pezpallet_xcm::{EnsureXcm, IsVoiceOfBody};
use pezcumulus_primitives_core::ParaId;
@@ -80,7 +80,7 @@ pub use pezsp_runtime::{Perbill, Permill};
use pezcumulus_primitives_core::AggregateMessageOrigin; //, ClaimQueueOffset, CoreSelector};
use teyrchains_common::{AccountId, Signature};
use xcm::latest::prelude::BodyId;
use pezstaging_xcm::latest::prelude::BodyId;
pub type SessionHandlers = ();
@@ -369,9 +369,9 @@ impl pezcumulus_pezpallet_teyrchain_system::Config for Runtime {
impl pezpallet_message_queue::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
type WeightInfo = ();
type MessageProcessor = xcm_builder::ProcessXcmMessage<
type MessageProcessor = pezstaging_xcm_builder::ProcessXcmMessage<
AggregateMessageOrigin,
xcm_executor::XcmExecutor<xcm_config::XcmConfig>,
pezstaging_xcm_executor::XcmExecutor<xcm_config::XcmConfig>,
RuntimeCall,
>;
type Size = u32;
@@ -471,68 +471,35 @@ impl pezpallet_verify_signature::Config for Runtime {
type BenchmarkHelper = VerifySignatureBenchmarkHelper;
}
#[pezframe_support::runtime]
mod runtime {
#[runtime::runtime]
#[runtime::derive(
RuntimeCall,
RuntimeEvent,
RuntimeError,
RuntimeOrigin,
RuntimeFreezeReason,
RuntimeHoldReason,
RuntimeSlashReason,
RuntimeLockId,
RuntimeTask,
RuntimeViewFunction
)]
pub struct Runtime;
construct_runtime!(
pub struct Runtime {
System: pezframe_system = 0,
Timestamp: pezpallet_timestamp = 1,
Sudo: pezpallet_sudo = 2,
TransactionPayment: pezpallet_transaction_payment = 3,
WeightReclaim: pezcumulus_pezpallet_weight_reclaim = 4,
#[runtime::pezpallet_index(0)]
pub type System = pezframe_system;
#[runtime::pezpallet_index(1)]
pub type Timestamp = pezpallet_timestamp;
#[runtime::pezpallet_index(2)]
pub type Sudo = pezpallet_sudo;
#[runtime::pezpallet_index(3)]
pub type TransactionPayment = pezpallet_transaction_payment;
#[runtime::pezpallet_index(4)]
pub type WeightReclaim = pezcumulus_pezpallet_weight_reclaim;
TeyrchainSystem: pezcumulus_pezpallet_teyrchain_system = 20,
TeyrchainInfo: teyrchain_info = 21,
#[runtime::pezpallet_index(20)]
pub type TeyrchainSystem = pezcumulus_pezpallet_teyrchain_system;
#[runtime::pezpallet_index(21)]
pub type TeyrchainInfo = teyrchain_info;
Authorship: pezpallet_authorship = 25,
CollatorSelection: pezpallet_collator_selection = 26,
Session: pezpallet_session = 27,
#[runtime::pezpallet_index(25)]
pub type Authorship = pezpallet_authorship;
#[runtime::pezpallet_index(26)]
pub type CollatorSelection = pezpallet_collator_selection;
#[runtime::pezpallet_index(27)]
pub type Session = pezpallet_session;
Balances: pezpallet_balances = 30,
#[runtime::pezpallet_index(30)]
pub type Balances = pezpallet_balances;
Aura: pezpallet_aura = 31,
AuraExt: pezcumulus_pezpallet_aura_ext = 32,
#[runtime::pezpallet_index(31)]
pub type Aura = pezpallet_aura;
#[runtime::pezpallet_index(32)]
pub type AuraExt = pezcumulus_pezpallet_aura_ext;
Utility: pezpallet_utility = 40,
VerifySignature: pezpallet_verify_signature = 41,
#[runtime::pezpallet_index(40)]
pub type Utility = pezpallet_utility;
#[runtime::pezpallet_index(41)]
pub type VerifySignature = pezpallet_verify_signature;
#[runtime::pezpallet_index(51)]
pub type XcmpQueue = pezcumulus_pezpallet_xcmp_queue;
#[runtime::pezpallet_index(52)]
pub type PezkuwiXcm = pezpallet_xcm;
#[runtime::pezpallet_index(53)]
pub type CumulusXcm = pezcumulus_pezpallet_xcm;
#[runtime::pezpallet_index(54)]
pub type MessageQueue = pezpallet_message_queue;
}
XcmpQueue: pezcumulus_pezpallet_xcmp_queue = 51,
PezkuwiXcm: pezpallet_xcm = 52,
CumulusXcm: pezcumulus_pezpallet_xcm = 53,
MessageQueue: pezpallet_message_queue = 54,
}
);
/// Balance of an account.
pub type Balance = u128;
@@ -19,7 +19,7 @@ use super::{
RuntimeOrigin, TeyrchainInfo, TeyrchainSystem, WeightToFee, XcmpQueue,
};
use pezkuwi_sdk::{xcm, xcm_builder, xcm_executor, *};
use pezkuwi_sdk::{pezstaging_xcm as xcm, pezstaging_xcm_builder as xcm_builder, pezstaging_xcm_executor as xcm_executor, *};
use pezframe_support::{
parameter_types,