mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-23 11:55:42 +00:00
5f248e9b94
* rpc/chain_spec: Add traits for `chainSpec` API Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * rpc/chain_spec: Implement `chainSpec` RPC methods Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * rpc/chain_spec: Add tests Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * bin/node: Enable `chainSpec` API Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * rpc/chain_spec: Assume `genesis_hash` as non-empty Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Update client/rpc-spec/Cargo.toml Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com> * Update client/rpc-spec/src/lib.rs Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com> * client/rpc_spec: Rename crate to `rpc_spec_v2` Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * rpc-servers: Remove the `version` field from `rpc_methods` Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * rpc/chain_spec: Fix copyright years Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
61 lines
1.8 KiB
Rust
61 lines
1.8 KiB
Rust
// This file is part of Substrate.
|
|
|
|
// Copyright (C) 2022 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/>.
|
|
|
|
//! API implementation for the specification of a chain.
|
|
|
|
use crate::chain_spec::api::ChainSpecApiServer;
|
|
use jsonrpsee::core::RpcResult;
|
|
use sc_chain_spec::Properties;
|
|
|
|
/// An API for chain spec RPC calls.
|
|
pub struct ChainSpec {
|
|
/// The name of the chain.
|
|
name: String,
|
|
/// The hexadecimal encoded hash of the genesis block.
|
|
genesis_hash: String,
|
|
/// Chain properties.
|
|
properties: Properties,
|
|
}
|
|
|
|
impl ChainSpec {
|
|
/// Creates a new [`ChainSpec`].
|
|
pub fn new<Hash: AsRef<[u8]>>(
|
|
name: String,
|
|
genesis_hash: Hash,
|
|
properties: Properties,
|
|
) -> Self {
|
|
let genesis_hash = format!("0x{}", hex::encode(genesis_hash));
|
|
|
|
Self { name, properties, genesis_hash }
|
|
}
|
|
}
|
|
|
|
impl ChainSpecApiServer for ChainSpec {
|
|
fn chain_spec_unstable_chain_name(&self) -> RpcResult<String> {
|
|
Ok(self.name.clone())
|
|
}
|
|
|
|
fn chain_spec_unstable_genesis_hash(&self) -> RpcResult<String> {
|
|
Ok(self.genesis_hash.clone())
|
|
}
|
|
|
|
fn chain_spec_unstable_properties(&self) -> RpcResult<Properties> {
|
|
Ok(self.properties.clone())
|
|
}
|
|
}
|