Support for `keyring` in runtimes (#2044)
This functionality is required for #1984. This PR enables [`sp-keyring`](https://github.com/paritytech/polkadot-sdk/blob/21d36b7b/substrate/primitives/keyring/src/sr25519.rs#L31-L40) in `no-std` environments, allowing to generate the public key (e.g. `AccountKeyring::Alice.public().to_ss58check()`), which can be later used in the any of built-in [_runtime-genesis-config_ variant](https://github.com/paritytech/polkadot-sdk/blob/21d36b7b/polkadot/node/service/src/chain_spec.rs#L1066-L1073). The proposal is as follows: - expose [`core::Pair` trait](https://github.com/paritytech/polkadot-sdk/blob/d6f15306 /substrate/primitives/core/src/crypto.rs#L832) in `no-std`, - `full_crypto` feature enables `sign` method, - `std` feature enables `generate_with_phrase` and `generate` methods (randomness is required), - All other functionality, currently gated by `full_crypto` will be available unconditionally (`no-std`): -- `from_string` -- `from_string_with_seed` -- `from seed` -- `from_seed_slice` -- `from_phrase` -- `derive` -- `verify` --- Depends on https://github.com/rust-bitcoin/rust-bip39/pull/57 --------- Co-authored-by: command-bot <> Co-authored-by:Davide Galassi <davxy@datawok.net>
parent
1ead5977
Showing
- .gitlab/pipeline/check.yml 16 additions, 0 deletions.gitlab/pipeline/check.yml
- Cargo.lock 38 additions, 5 deletionsCargo.lock
- substrate/client/cli/Cargo.toml 2 additions, 1 deletionsubstrate/client/cli/Cargo.toml
- substrate/client/cli/src/commands/generate.rs 1 addition, 1 deletionsubstrate/client/cli/src/commands/generate.rs
- substrate/primitives/application-crypto/check-features-variants.sh 12 additions, 0 deletions.../primitives/application-crypto/check-features-variants.sh
- substrate/primitives/application-crypto/src/bls377.rs 2 additions, 3 deletionssubstrate/primitives/application-crypto/src/bls377.rs
- substrate/primitives/application-crypto/src/ecdsa.rs 1 addition, 3 deletionssubstrate/primitives/application-crypto/src/ecdsa.rs
- substrate/primitives/application-crypto/src/ecdsa_bls377.rs 1 addition, 0 deletionssubstrate/primitives/application-crypto/src/ecdsa_bls377.rs
- substrate/primitives/application-crypto/src/ed25519.rs 1 addition, 3 deletionssubstrate/primitives/application-crypto/src/ed25519.rs
- substrate/primitives/application-crypto/src/lib.rs 40 additions, 19 deletionssubstrate/primitives/application-crypto/src/lib.rs
- substrate/primitives/application-crypto/src/sr25519.rs 1 addition, 3 deletionssubstrate/primitives/application-crypto/src/sr25519.rs
- substrate/primitives/application-crypto/src/traits.rs 1 addition, 13 deletionssubstrate/primitives/application-crypto/src/traits.rs
- substrate/primitives/core/Cargo.toml 8 additions, 16 deletionssubstrate/primitives/core/Cargo.toml
- substrate/primitives/core/check-features-variants.sh 13 additions, 0 deletionssubstrate/primitives/core/check-features-variants.sh
- substrate/primitives/core/src/address_uri.rs 1 addition, 1 deletionsubstrate/primitives/core/src/address_uri.rs
- substrate/primitives/core/src/bandersnatch.rs 10 additions, 18 deletionssubstrate/primitives/core/src/bandersnatch.rs
- substrate/primitives/core/src/bls.rs 9 additions, 22 deletionssubstrate/primitives/core/src/bls.rs
- substrate/primitives/core/src/crypto.rs 3 additions, 21 deletionssubstrate/primitives/core/src/crypto.rs
- substrate/primitives/core/src/ecdsa.rs 11 additions, 23 deletionssubstrate/primitives/core/src/ecdsa.rs
- substrate/primitives/core/src/ed25519.rs 5 additions, 16 deletionssubstrate/primitives/core/src/ed25519.rs
Please register or sign in to comment