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,66 @@
// This file is part of Bizinikiwi.
// Copyright (C) Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//! System RPC module errors.
use crate::system::helpers::Health;
use jsonrpsee::types::{
error::{ErrorCode, ErrorObject},
ErrorObjectOwned,
};
/// System RPC Result type.
pub type Result<T> = std::result::Result<T, Error>;
/// System RPC errors.
#[derive(Debug, thiserror::Error)]
pub enum Error {
/// Provided block range couldn't be resolved to a list of blocks.
#[error("Node is not fully functional: {}", .0)]
NotHealthy(Health),
/// Peer argument is malformatted.
#[error("{0}")]
MalformattedPeerArg(String),
/// Call to an unsafe RPC was denied.
#[error(transparent)]
UnsafeRpcCalled(#[from] crate::policy::UnsafeRpcError),
/// Internal error.
#[error("{0}")]
Internal(String),
}
// Base code for all system errors.
const BASE_ERROR: i32 = crate::error::base::SYSTEM;
// Provided block range couldn't be resolved to a list of blocks.
const NOT_HEALTHY_ERROR: i32 = BASE_ERROR + 1;
// Peer argument is malformatted.
const MALFORMATTED_PEER_ARG_ERROR: i32 = BASE_ERROR + 2;
impl From<Error> for ErrorObjectOwned {
fn from(e: Error) -> ErrorObjectOwned {
match e {
Error::NotHealthy(ref h) =>
ErrorObject::owned(NOT_HEALTHY_ERROR, e.to_string(), Some(h)),
Error::MalformattedPeerArg(e) =>
ErrorObject::owned(MALFORMATTED_PEER_ARG_ERROR, e, None::<()>),
Error::UnsafeRpcCalled(e) => e.into(),
Error::Internal(e) =>
ErrorObjectOwned::owned(ErrorCode::InternalError.code(), e, None::<()>),
}
}
}
@@ -0,0 +1,148 @@
// This file is part of Bizinikiwi.
// Copyright (C) Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//! Bizinikiwi system API helpers.
use pezsc_chain_spec::{ChainType, Properties};
use serde::{Deserialize, Serialize};
use std::fmt;
/// Running node's static details.
#[derive(Clone, Debug)]
pub struct SystemInfo {
/// Implementation name.
pub impl_name: String,
/// Implementation version.
pub impl_version: String,
/// Chain name.
pub chain_name: String,
/// A custom set of properties defined in the chain spec.
pub properties: Properties,
/// The type of this chain.
pub chain_type: ChainType,
}
/// Health struct returned by the RPC
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Health {
/// Number of connected peers
pub peers: usize,
/// Is the node syncing
pub is_syncing: bool,
/// Should this node have any peers
///
/// Might be false for local chains or when running without discovery.
pub should_have_peers: bool,
}
impl fmt::Display for Health {
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
write!(fmt, "{} peers ({})", self.peers, if self.is_syncing { "syncing" } else { "idle" })
}
}
/// Network Peer information
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PeerInfo<Hash, Number> {
/// Peer ID
pub peer_id: String,
/// Roles
pub roles: String,
/// Peer best block hash
pub best_hash: Hash,
/// Peer best block number
pub best_number: Number,
}
/// The role the node is running as
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub enum NodeRole {
/// The node is a full node
Full,
/// The node is an authority
Authority,
}
/// The state of the syncing of the node.
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SyncState<Number> {
/// Height of the block at which syncing started.
pub starting_block: Number,
/// Height of the current best block of the node.
pub current_block: Number,
/// Height of the highest block in the network.
pub highest_block: Number,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn should_serialize_health() {
assert_eq!(
::serde_json::to_string(&Health {
peers: 1,
is_syncing: false,
should_have_peers: true,
})
.unwrap(),
r#"{"peers":1,"isSyncing":false,"shouldHavePeers":true}"#,
);
}
#[test]
fn should_serialize_peer_info() {
assert_eq!(
::serde_json::to_string(&PeerInfo {
peer_id: "2".into(),
roles: "a".into(),
best_hash: 5u32,
best_number: 6u32,
})
.unwrap(),
r#"{"peerId":"2","roles":"a","bestHash":5,"bestNumber":6}"#,
);
}
#[test]
fn should_serialize_sync_state() {
assert_eq!(
::serde_json::to_string(&SyncState {
starting_block: 12u32,
current_block: 50u32,
highest_block: 128u32,
})
.unwrap(),
r#"{"startingBlock":12,"currentBlock":50,"highestBlock":128}"#,
);
assert_eq!(
::serde_json::to_string(&SyncState {
starting_block: 12u32,
current_block: 50u32,
highest_block: 50u32,
})
.unwrap(),
r#"{"startingBlock":12,"currentBlock":50,"highestBlock":50}"#,
);
}
}
+121
View File
@@ -0,0 +1,121 @@
// This file is part of Bizinikiwi.
// Copyright (C) Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//! Bizinikiwi system API.
pub mod error;
pub mod helpers;
use jsonrpsee::{core::JsonValue, proc_macros::rpc};
pub use self::helpers::{Health, NodeRole, PeerInfo, SyncState, SystemInfo};
pub use error::Error;
/// Bizinikiwi system RPC API
#[rpc(client, server)]
pub trait SystemApi<Hash, Number> {
/// Get the node's implementation name. Plain old string.
#[method(name = "system_name")]
fn system_name(&self) -> Result<String, Error>;
/// Get the node implementation's version. Should be a semver string.
#[method(name = "system_version")]
fn system_version(&self) -> Result<String, Error>;
/// Get the chain's name. Given as a string identifier.
#[method(name = "system_chain")]
fn system_chain(&self) -> Result<String, Error>;
/// Get the chain's type.
#[method(name = "system_chainType")]
fn system_type(&self) -> Result<pezsc_chain_spec::ChainType, Error>;
/// Get a custom set of properties as a JSON object, defined in the chain spec.
#[method(name = "system_properties")]
fn system_properties(&self) -> Result<pezsc_chain_spec::Properties, Error>;
/// Return health status of the node.
///
/// Node is considered healthy if it is:
/// - connected to some peers (unless running in dev mode)
/// - not performing a major sync
#[method(name = "system_health")]
async fn system_health(&self) -> Result<Health, Error>;
/// Returns the base58-encoded PeerId of the node.
#[method(name = "system_localPeerId")]
async fn system_local_peer_id(&self) -> Result<String, Error>;
/// Returns the multi-addresses that the local node is listening on
///
/// The addresses include a trailing `/p2p/` with the local PeerId, and are thus suitable to
/// be passed to `addReservedPeer` or as a bootnode address for example.
#[method(name = "system_localListenAddresses")]
async fn system_local_listen_addresses(&self) -> Result<Vec<String>, Error>;
/// Returns currently connected peers
#[method(name = "system_peers", with_extensions)]
async fn system_peers(&self) -> Result<Vec<PeerInfo<Hash, Number>>, Error>;
/// Returns current state of the network.
///
/// **Warning**: This API is not stable. Please do not programmatically interpret its output,
/// as its format might change at any time.
// TODO: the future of this call is uncertain: https://github.com/pezkuwichain/kurdistan-sdk/issues/22
// https://github.com/pezkuwichain/kurdistan-sdk/issues/26
#[method(name = "system_unstable_networkState", with_extensions)]
async fn system_network_state(&self) -> Result<JsonValue, Error>;
/// Adds a reserved peer. Returns the empty string or an error. The string
/// parameter should encode a `p2p` multiaddr.
///
/// `/ip4/198.51.100.19/tcp/30333/p2p/QmSk5HQbn6LhUwDiNMseVUjuRYhEtYj4aUZ6WfWoGURpdV`
/// is an example of a valid, passing multiaddr with PeerId attached.
#[method(name = "system_addReservedPeer", with_extensions)]
async fn system_add_reserved_peer(&self, peer: String) -> Result<(), Error>;
/// Remove a reserved peer. Returns the empty string or an error. The string
/// should encode only the PeerId e.g. `QmSk5HQbn6LhUwDiNMseVUjuRYhEtYj4aUZ6WfWoGURpdV`.
#[method(name = "system_removeReservedPeer", with_extensions)]
async fn system_remove_reserved_peer(&self, peer_id: String) -> Result<(), Error>;
/// Returns the list of reserved peers
#[method(name = "system_reservedPeers")]
async fn system_reserved_peers(&self) -> Result<Vec<String>, Error>;
/// Returns the roles the node is running as.
#[method(name = "system_nodeRoles")]
async fn system_node_roles(&self) -> Result<Vec<NodeRole>, Error>;
/// Returns the state of the syncing of the node: starting block, current best block, highest
/// known block.
#[method(name = "system_syncState")]
async fn system_sync_state(&self) -> Result<SyncState<Number>, Error>;
/// Adds the supplied directives to the current log filter
///
/// The syntax is identical to the CLI `<target>=<level>`:
///
/// `sync=debug,state=trace`
#[method(name = "system_addLogFilter", with_extensions)]
fn system_add_log_filter(&self, directives: String) -> Result<(), Error>;
/// Resets the log filter to Bizinikiwi defaults
#[method(name = "system_resetLogFilter", with_extensions)]
fn system_reset_log_filter(&self) -> Result<(), Error>;
}