feat: Rebrand Polkadot/Substrate references to PezkuwiChain

This commit systematically rebrands various references from Parity Technologies'
Polkadot/Substrate ecosystem to PezkuwiChain within the kurdistan-sdk.

Key changes include:
- Updated external repository URLs (zombienet-sdk, parity-db, parity-scale-codec, wasm-instrument) to point to pezkuwichain forks.
- Modified internal documentation and code comments to reflect PezkuwiChain naming and structure.
- Replaced direct references to  with  or specific paths within the  for XCM, Pezkuwi, and other modules.
- Cleaned up deprecated  issue and PR references in various  and  files, particularly in  and  modules.
- Adjusted image and logo URLs in documentation to point to PezkuwiChain assets.
- Removed or rephrased comments related to external Polkadot/Substrate PRs and issues.

This is a significant step towards fully customizing the SDK for the PezkuwiChain ecosystem.
This commit is contained in:
2025-12-14 00:04:10 +03:00
parent 286de54384
commit 1c0e57d984
9084 changed files with 997839 additions and 997557 deletions
@@ -0,0 +1,40 @@
[package]
name = "people-pezkuwichain-integration-tests"
version = "0.1.0"
authors.workspace = true
edition.workspace = true
license = "Apache-2.0"
description = "People Pezkuwichain runtime integration tests with xcm-emulator"
publish = false
[lints]
workspace = true
[dependencies]
# Bizinikiwi
pezframe-support = { workspace = true }
pezpallet-balances = { workspace = true }
pezsp-runtime = { workspace = true }
# Pezkuwi
xcm = { workspace = true }
xcm-executor = { workspace = true }
# Pezcumulus
asset-test-utils = { workspace = true, default-features = true }
emulated-integration-tests-common = { workspace = true }
pezkuwichain-system-emulated-network = { workspace = true }
teyrchains-common = { workspace = true, default-features = true }
[features]
runtime-benchmarks = [
"asset-test-utils/runtime-benchmarks",
"emulated-integration-tests-common/runtime-benchmarks",
"pezframe-support/runtime-benchmarks",
"pezpallet-balances/runtime-benchmarks",
"pezkuwichain-system-emulated-network/runtime-benchmarks",
"pezsp-runtime/runtime-benchmarks",
"teyrchains-common/runtime-benchmarks",
"xcm-executor/runtime-benchmarks",
"xcm/runtime-benchmarks",
]
@@ -0,0 +1,54 @@
// Copyright (C) Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: Apache-2.0
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#[cfg(test)]
mod imports {
// Bizinikiwi
pub(crate) use pezframe_support::pezsp_runtime::DispatchResult;
// Pezkuwi
pub(crate) use xcm::{latest::PEZKUWICHAIN_GENESIS_HASH, prelude::*};
// Pezcumulus
pub(crate) use asset_test_utils::xcm_helpers;
pub(crate) use emulated_integration_tests_common::xcm_emulator::{
assert_expected_events, bx, Chain, Test, TestArgs, TestContext, TestExt, Teyrchain as Para,
};
pub(crate) use pezkuwichain_system_emulated_network::{
people_pezkuwichain_emulated_chain::{
people_pezkuwichain_runtime::{
xcm_config::XcmConfig as PeoplePezkuwichainXcmConfig,
ExistentialDeposit as PeoplePezkuwichainExistentialDeposit,
},
PeoplePezkuwichainParaPallet as PeoplePezkuwichainPallet,
},
pezkuwichain_emulated_chain::{
genesis::ED as PEZKUWICHAIN_ED, PezkuwichainRelayPallet as PezkuwichainPallet,
},
AssetHubPezkuwichainPara as AssetHubPezkuwichain,
AssetHubPezkuwichainParaReceiver as AssetHubPezkuwichainReceiver,
PeoplePezkuwichainPara as PeoplePezkuwichain,
PeoplePezkuwichainParaReceiver as PeoplePezkuwichainReceiver,
PeoplePezkuwichainParaSender as PeoplePezkuwichainSender,
PezkuwichainRelay as Pezkuwichain, PezkuwichainRelayReceiver as PezkuwichainReceiver,
PezkuwichainRelaySender as PezkuwichainSender,
};
pub(crate) use teyrchains_common::Balance;
pub(crate) type SystemParaToRelayTest = Test<PeoplePezkuwichain, Pezkuwichain>;
}
#[cfg(test)]
mod tests;
@@ -0,0 +1,34 @@
// Copyright (C) Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: Apache-2.0
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//! Tests related to claiming assets trapped during XCM execution.
use crate::imports::*;
use emulated_integration_tests_common::test_chain_can_claim_assets;
#[test]
fn assets_can_be_claimed() {
let amount = PeoplePezkuwichainExistentialDeposit::get();
let assets: Assets = (Parent, amount).into();
test_chain_can_claim_assets!(
PeoplePezkuwichain,
RuntimeCall,
NetworkId::ByGenesis(PEZKUWICHAIN_GENESIS_HASH),
assets,
amount
);
}
@@ -0,0 +1,17 @@
// Copyright (C) Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: Apache-2.0
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
mod claim_assets;
mod teleport;
@@ -0,0 +1,183 @@
// Copyright (C) Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: Apache-2.0
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
use crate::imports::*;
use emulated_integration_tests_common::{
test_relay_is_trusted_teleporter, test_teyrchain_is_trusted_teleporter,
test_teyrchain_is_trusted_teleporter_for_relay,
};
#[test]
fn teleport_via_limited_teleport_assets_from_and_to_relay() {
let amount = PEZKUWICHAIN_ED * 100;
test_relay_is_trusted_teleporter!(
Pezkuwichain,
vec![PeoplePezkuwichain],
amount,
limited_teleport_assets
);
test_teyrchain_is_trusted_teleporter_for_relay!(
PeoplePezkuwichain,
Pezkuwichain,
amount,
limited_teleport_assets
);
}
#[test]
fn teleport_via_transfer_assets_from_and_to_relay() {
let amount = PEZKUWICHAIN_ED * 100;
test_relay_is_trusted_teleporter!(
Pezkuwichain,
vec![PeoplePezkuwichain],
amount,
transfer_assets
);
test_teyrchain_is_trusted_teleporter_for_relay!(
PeoplePezkuwichain,
Pezkuwichain,
amount,
transfer_assets
);
}
#[test]
fn teleport_via_limited_teleport_assets_to_other_system_teyrchains_works() {
let amount = PEZKUWICHAIN_ED * 100;
let native_asset: Assets = (Parent, amount).into();
let fee_asset_id: AssetId = Parent.into();
test_teyrchain_is_trusted_teleporter!(
PeoplePezkuwichain, // Origin
vec![AssetHubPezkuwichain], // Destinations
(native_asset, amount),
fee_asset_id,
limited_teleport_assets
);
}
#[test]
fn teleport_via_transfer_assets_to_other_system_teyrchains_works() {
let amount = PEZKUWICHAIN_ED * 100;
let native_asset: Assets = (Parent, amount).into();
let fee_asset_id: AssetId = Parent.into();
test_teyrchain_is_trusted_teleporter!(
PeoplePezkuwichain, // Origin
vec![AssetHubPezkuwichain], // Destinations
(native_asset, amount),
fee_asset_id,
transfer_assets
);
}
fn relay_dest_assertions_fail(_t: SystemParaToRelayTest) {
Pezkuwichain::assert_ump_queue_processed(false, Some(PeoplePezkuwichain::para_id()), None);
}
fn para_origin_assertions(t: SystemParaToRelayTest) {
type RuntimeEvent = <PeoplePezkuwichain as Chain>::RuntimeEvent;
PeoplePezkuwichain::assert_xcm_pallet_attempted_complete(None);
PeoplePezkuwichain::assert_teyrchain_system_ump_sent();
assert_expected_events!(
PeoplePezkuwichain,
vec![
// Amount is withdrawn from Sender's account
RuntimeEvent::Balances(pezpallet_balances::Event::Burned { who, amount }) => {
who: *who == t.sender.account_id,
amount: *amount == t.args.amount,
},
]
);
}
fn system_para_limited_teleport_assets(t: SystemParaToRelayTest) -> DispatchResult {
<PeoplePezkuwichain as PeoplePezkuwichainPallet>::PezkuwiXcm::limited_teleport_assets(
t.signed_origin,
bx!(t.args.dest.into()),
bx!(t.args.beneficiary.into()),
bx!(t.args.assets.into()),
bx!(t.args.fee_asset_id.into()),
t.args.weight_limit,
)
}
/// Limited Teleport of native asset from System Teyrchain to Relay Chain
/// shouldn't work when there is not enough balance in Relay Chain's `CheckAccount`
#[test]
fn limited_teleport_native_assets_from_system_para_to_relay_fails() {
// Init values for Relay Chain
let amount_to_send: Balance = PEZKUWICHAIN_ED * 1000;
let destination = PeoplePezkuwichain::parent_location();
let beneficiary_id = PezkuwichainReceiver::get();
let assets = (Parent, amount_to_send).into();
let fee_asset_id: AssetId = Parent.into();
// Fund a sender
PeoplePezkuwichain::fund_accounts(vec![(
PeoplePezkuwichainSender::get(),
PEZKUWICHAIN_ED * 2_000u128,
)]);
let test_args = TestContext {
sender: PeoplePezkuwichainSender::get(),
receiver: PezkuwichainReceiver::get(),
args: TestArgs::new_para(
destination,
beneficiary_id,
amount_to_send,
assets,
None,
fee_asset_id,
),
};
let mut test = SystemParaToRelayTest::new(test_args);
let sender_balance_before = test.sender.balance;
let receiver_balance_before = test.receiver.balance;
test.set_assertion::<PeoplePezkuwichain>(para_origin_assertions);
test.set_assertion::<Pezkuwichain>(relay_dest_assertions_fail);
test.set_dispatchable::<PeoplePezkuwichain>(system_para_limited_teleport_assets);
test.assert();
let sender_balance_after = test.sender.balance;
let receiver_balance_after = test.receiver.balance;
let delivery_fees = PeoplePezkuwichain::execute_with(|| {
xcm_helpers::teleport_assets_delivery_fees::<
<PeoplePezkuwichainXcmConfig as xcm_executor::Config>::XcmSender,
>(
test.args.assets.clone(),
test.args.fee_asset_id,
test.args.weight_limit,
test.args.beneficiary,
test.args.dest,
)
});
// Sender's balance is reduced
assert_eq!(sender_balance_before - amount_to_send - delivery_fees, sender_balance_after);
// Receiver's balance does not change
assert_eq!(receiver_balance_after, receiver_balance_before);
}