mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-29 10:17:57 +00:00
94bb119ef9
There is no reason for subkey to import the default Substrate node to support a feature that would only be usable for the Substrate node. Subkey itself should be more the default key management binary for Substrate related chains. If certain chains require some special functionality, they can easily stick together their own "my-chain-key".
67 lines
2.2 KiB
Rust
67 lines
2.2 KiB
Rust
// This file is part of Substrate.
|
|
|
|
// Copyright (C) 2018-2021 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/>.
|
|
|
|
use structopt::StructOpt;
|
|
use sc_cli::{
|
|
Error, VanityCmd, SignCmd, VerifyCmd, GenerateNodeKeyCmd, GenerateCmd, InspectKeyCmd,
|
|
InspectNodeKeyCmd
|
|
};
|
|
|
|
#[derive(Debug, StructOpt)]
|
|
#[structopt(
|
|
name = "subkey",
|
|
author = "Parity Team <admin@parity.io>",
|
|
about = "Utility for generating and restoring with Substrate keys",
|
|
)]
|
|
pub enum Subkey {
|
|
/// Generate a random node libp2p key, save it to file or print it to stdout
|
|
/// and print its peer ID to stderr.
|
|
GenerateNodeKey(GenerateNodeKeyCmd),
|
|
|
|
/// Generate a random account
|
|
Generate(GenerateCmd),
|
|
|
|
/// Gets a public key and a SS58 address from the provided Secret URI
|
|
Inspect(InspectKeyCmd),
|
|
|
|
/// Print the peer ID corresponding to the node key in the given file
|
|
InspectNodeKey(InspectNodeKeyCmd),
|
|
|
|
/// Sign a message, with a given (secret) key.
|
|
Sign(SignCmd),
|
|
|
|
/// Generate a seed that provides a vanity address.
|
|
Vanity(VanityCmd),
|
|
|
|
/// Verify a signature for a message, provided on STDIN, with a given (public or secret) key.
|
|
Verify(VerifyCmd),
|
|
}
|
|
|
|
/// Run the subkey command, given the apropriate runtime.
|
|
pub fn run() -> Result<(), Error> {
|
|
match Subkey::from_args() {
|
|
Subkey::GenerateNodeKey(cmd) => cmd.run(),
|
|
Subkey::Generate(cmd) => cmd.run(),
|
|
Subkey::Inspect(cmd) => cmd.run(),
|
|
Subkey::InspectNodeKey(cmd) => cmd.run(),
|
|
Subkey::Vanity(cmd) => cmd.run(),
|
|
Subkey::Verify(cmd) => cmd.run(),
|
|
Subkey::Sign(cmd) => cmd.run(),
|
|
}
|
|
}
|