mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 14:37:57 +00:00
6963272451
* draft * revert * WIP * all that remains is tests * update Cargo.lock * tests WIP * WIP refactor node-template-runtime and node-runtime * implments sc_cli::RuntimeAdapter for node_template_runtime::Runtime * final draft * fix update_config for subcommands * proper AccountId decoding * test-runtime tests * revert * move RuntimeAdapter to cli-utils * use &'static str for TryFrom::<&'a str>::Error for Ss58AddressFormat * tests * add frame-system to sc-cli dev-dependencies * add frame-system to sc-cli dev-dependencies * fix ui test * wip * fixed inspect test * bump impl version * bump impl version, fixx spaces remove todos * pallet-balances-cli, rustc for some reason cannot resolve pallet_balances_cli in node-cli 😩 * wip * Subcommand::run takes &self * can't believe i missed that 🤦🏾♂️ * bump wasm-bindgen for some reason * adds key subcommand, rename generate-node-key to generate-node-id * cargo update and crossed fingers 🤞🏽 * update ui test * update more ui tests * should be all good now * revert subkey change * revert subkey change * adds frame-utilities-cli * Apply suggestions from code review Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org> * removes frame from sc-cli, fix license * my editor and ci disagrees on line width * bump spec version * turn off default features for parity-scale-codec * enable full_crypto feature for sp-core in cli-utils * merge frame-utilities-cli with pallet-balances-cli * remove full_crypto feature from sp_core in cli-utils * bump Cargo.lock * cli-utils -> frame-utils * rename BlockNumber to GenericNumber, fix spaces * fix spaces * construct additional_signed manually * sign test * remove unused vars * implement subkey with frame-utilities-cli and sc_cli * fix moduleid test * CI and clion disagree on line widths * adds associated Params type to SignedExtensionProvider * Apply suggestions from code review Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org> * move some code around * removes unneccesary generic params * moves module_id back to frame_utilities_cli * Apply suggestions from code review Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> * remove print_ext * remove MaybeDisplay from pallet_balances::Trait::Balance * a lot of stuff tbh * adds ExtrasParamsBuilder * remove tests for ModuleIdCmd * address comments from PR * bump Cargo.lock * manually insert key into keystore * remove unnecessary SharedParams * add validation to vanity pattern, remove unused arg * remove SharedParams from Sign, Vanity, Verify * remove SharedParams from ModuleIdCmd, remove expect from Verify, new line to Cargo.toml * remove SharedParams from InsertCmd * 🤦🏾♂️ * deleted prometheus.yml * move a few things around * fix vanity test Co-authored-by: Benjamin Kampmann <ben@gnunicorn.org> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Benjamin Kampmann <ben@parity.io>
83 lines
2.5 KiB
Plaintext
83 lines
2.5 KiB
Plaintext
= Subkey
|
|
|
|
Subkey is a commandline utility included with Substrate that generates or restores Substrate keys.
|
|
|
|
`subkey` will use the http://wiki.polkadot.network/en/latest/polkadot/learn/cryptography/#keypairs-and-signing[sr25519] cryptography by default. If you need to use the older ed25519 cryptography to generate or restore your key pass the `--ed25519` flag to any of the commands.
|
|
|
|
== Usage
|
|
|
|
=== Generate a random account
|
|
|
|
```bash
|
|
subkey generate
|
|
```
|
|
|
|
Will output a mnemonic phrase and give you the seed, public key, and address of a new account. DO NOT SHARE your mnemonic or seed with ANYONE it will give them access to your funds. If someone is making a transfer to you they will only need your **Address**.
|
|
|
|
=== Inspecting a key
|
|
|
|
You can inspect a given URI (mnemonic, seed, public key, or address) and recover the public key and the address.
|
|
|
|
```bash
|
|
subkey inspect <mnemonic,seed,pubkey,address>
|
|
|
|
OUTPUT:
|
|
Public key (hex): 0x461edcf1ba99e43f50dec4bdeb3d1a2cf521ad7c3cd0eeee5cd3314e50fd424c
|
|
Address (SS58): 5DeeNqcAcaHDSed2HYnqMDK7JHcvxZ5QUE9EKmjc5snvU6wF
|
|
```
|
|
|
|
=== Signing
|
|
|
|
`subkey` expects a message to come in on STDIN, one way to sign a message would look like this:
|
|
|
|
```bash
|
|
echo -n <msg> | subkey sign --suri <seed,mnemonic>
|
|
|
|
OUTPUT:
|
|
a69da4a6ccbf81dbbbfad235fa12cf8528c18012b991ae89214de8d20d29c1280576ced6eb38b7406d1b7e03231df6dd4a5257546ddad13259356e1c3adfb509
|
|
```
|
|
|
|
=== Verifying a signature
|
|
|
|
```bash
|
|
echo -n <msg> | subkey verify <sig> <address>
|
|
|
|
OUTPUT:
|
|
Signature verifies correctly.
|
|
```
|
|
|
|
=== Using the vanity generator
|
|
|
|
You can use the included vanity generator to find a seed that provides an address which includes the desired pattern. Be warned, depending on your hardware this may take a while.
|
|
|
|
```bash
|
|
subkey vanity 1337
|
|
```
|
|
|
|
=== Signing a transaction
|
|
|
|
Sign a transaction from an encoded `Call`.
|
|
|
|
```bash
|
|
subkey sign-transaction \
|
|
--call <call-as-hex> \
|
|
--nonce 0 \
|
|
--suri <secret-uri> \
|
|
--password <password> \
|
|
--prior-block-hash <prior-block-hash-as-hex>
|
|
```
|
|
|
|
Will output a signed and encoded `UncheckedMortalCompactExtrinsic` as hex.
|
|
|
|
=== Inspecting a module ID
|
|
|
|
```bash
|
|
subkey module-id "py/trsry" --network kusama
|
|
|
|
OUTPUT:
|
|
Public Key URI `F3opxRbN5ZbjJNU511Kj2TLuzFcDq9BGduA9TgiECafpg29` is account:
|
|
Network ID/version: kusama
|
|
Public key (hex): 0x6d6f646c70792f74727372790000000000000000000000000000000000000000
|
|
Account ID: 0x6d6f646c70792f74727372790000000000000000000000000000000000000000
|
|
SS58 Address: F3opxRbN5ZbjJNU511Kj2TLuzFcDq9BGduA9TgiECafpg29
|
|
``` |