mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-09 19:57:59 +00:00
a756baf3b2
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>
45 lines
1.5 KiB
Rust
45 lines
1.5 KiB
Rust
// This file is part of Substrate.
|
|
|
|
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
//! Support code for the runtime. A set of test accounts.
|
|
|
|
#![cfg_attr(not(feature = "std"), no_std)]
|
|
|
|
/// Test account crypto for sr25519.
|
|
pub mod sr25519;
|
|
|
|
/// Test account crypto for ed25519.
|
|
pub mod ed25519;
|
|
|
|
/// Test account crypto for bandersnatch.
|
|
#[cfg(feature = "bandersnatch-experimental")]
|
|
pub mod bandersnatch;
|
|
|
|
/// Convenience export: Sr25519's Keyring is exposed as `AccountKeyring`, since it tends to be
|
|
/// used for accounts (although it may also be used by authorities).
|
|
pub use sr25519::Keyring as AccountKeyring;
|
|
|
|
#[cfg(feature = "bandersnatch-experimental")]
|
|
pub use bandersnatch::Keyring as BandersnatchKeyring;
|
|
pub use ed25519::Keyring as Ed25519Keyring;
|
|
pub use sr25519::Keyring as Sr25519Keyring;
|
|
|
|
pub mod test {
|
|
/// The keyring for use with accounts when using the test runtime.
|
|
pub use super::ed25519::Keyring as AccountKeyring;
|
|
}
|