mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-14 05:11:09 +00:00
Support for keyring in runtimes (#2044)
This functionality is required for #1984. This PR enables [`sp-keyring`](https://github.com/paritytech/polkadot-sdk/blob/21d36b7b4229c4d5225944f197918cde23fda4ea/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/21d36b7b4229c4d5225944f197918cde23fda4ea/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/d6f15306282e3de848a09c9aa9cba6f95a7811f0/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>
This commit is contained in:
committed by
GitHub
parent
1ead59773e
commit
a756baf3b2
@@ -27,10 +27,11 @@ hash-db = { version = "0.16.0", default-features = false }
|
||||
hash256-std-hasher = { version = "0.15.2", default-features = false }
|
||||
bs58 = { version = "0.5.0", default-features = false, optional = true }
|
||||
rand = { version = "0.8.5", features = ["small_rng"], optional = true }
|
||||
substrate-bip39 = { path = "../../utils/substrate-bip39", optional = true }
|
||||
bip39 = { version = "2.0.0", default-features = false }
|
||||
substrate-bip39 = { path = "../../utils/substrate-bip39", default-features = false }
|
||||
# personal fork here as workaround for: https://github.com/rust-bitcoin/rust-bip39/pull/64
|
||||
bip39 = { package = "parity-bip39", version = "2.0.1", default-features = false, features = ["alloc"] }
|
||||
zeroize = { version = "1.4.3", default-features = false }
|
||||
secrecy = { version = "0.8.0", default-features = false }
|
||||
secrecy = { version = "0.8.0", default-features = false, features = ["alloc"] }
|
||||
parking_lot = { version = "0.12.1", optional = true }
|
||||
ss58-registry = { version = "1.34.0", default-features = false }
|
||||
sp-std = { path = "../std", default-features = false }
|
||||
@@ -46,13 +47,13 @@ paste = "1.0.7"
|
||||
itertools = { version = "0.10.3", optional = true }
|
||||
|
||||
# full crypto
|
||||
array-bytes = { version = "6.1", optional = true }
|
||||
ed25519-zebra = { version = "3.1.0", default-features = false, optional = true }
|
||||
array-bytes = { version = "6.1" }
|
||||
ed25519-zebra = { version = "3.1.0", default-features = false }
|
||||
blake2 = { version = "0.10.4", default-features = false, optional = true }
|
||||
libsecp256k1 = { version = "0.7", default-features = false, features = ["static-context"], optional = true }
|
||||
libsecp256k1 = { version = "0.7", default-features = false, features = ["static-context"] }
|
||||
schnorrkel = { version = "0.11.4", features = ["preaudit_deprecated"], default-features = false }
|
||||
merlin = { version = "3.0", default-features = false }
|
||||
sp-crypto-hashing = { path = "../crypto/hashing", default-features = false, optional = true }
|
||||
sp-crypto-hashing = { path = "../crypto/hashing", default-features = false }
|
||||
sp-runtime-interface = { path = "../runtime-interface", default-features = false }
|
||||
# k256 crate, better portability, intended to be used in substrate-runtimes (no-std)
|
||||
k256 = { version = "0.13.3", features = ["alloc", "ecdsa"], default-features = false }
|
||||
@@ -81,7 +82,6 @@ bench = false
|
||||
default = ["std"]
|
||||
|
||||
std = [
|
||||
"array-bytes",
|
||||
"bandersnatch_vrfs?/std",
|
||||
"bip39/rand",
|
||||
"bip39/std",
|
||||
@@ -112,7 +112,6 @@ std = [
|
||||
"schnorrkel/std",
|
||||
"secp256k1/global-context",
|
||||
"secp256k1/std",
|
||||
"secrecy/alloc",
|
||||
"serde/std",
|
||||
"sp-crypto-hashing/std",
|
||||
"sp-debug-derive/std",
|
||||
@@ -131,7 +130,6 @@ std = [
|
||||
|
||||
# Serde support without relying on std features.
|
||||
serde = [
|
||||
"array-bytes",
|
||||
"blake2",
|
||||
"bounded-collections/serde",
|
||||
"bs58/alloc",
|
||||
@@ -140,8 +138,6 @@ serde = [
|
||||
"k256/serde",
|
||||
"primitive-types/serde_no_std",
|
||||
"scale-info/serde",
|
||||
"secrecy/alloc",
|
||||
"sp-crypto-hashing",
|
||||
"sp-storage/serde",
|
||||
]
|
||||
|
||||
@@ -149,11 +145,7 @@ serde = [
|
||||
# or Intel SGX.
|
||||
# For the regular wasm runtime builds this should not be used.
|
||||
full_crypto = [
|
||||
"array-bytes",
|
||||
"blake2",
|
||||
"ed25519-zebra",
|
||||
"libsecp256k1",
|
||||
"sp-crypto-hashing",
|
||||
"sp-runtime-interface/disable_target_static_assertions",
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user