Skip to content
  • Michal Kucharczyk's avatar
    Support for `keyring` in runtimes (#2044) · a756baf3
    Michal Kucharczyk authored
    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: default avatarDavide Galassi <[email protected]>
    a756baf3