mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 22:51:13 +00:00
Keystore overhaul (iter 2) (#13634)
* Remove bloat about remote keystore * Update docs and remove unused 'KeystoreRef' trait * Use wherever possible, MemoryKeystore for testing * Remove unrequired fully qualified method syntax for Keystore
This commit is contained in:
@@ -243,17 +243,14 @@ where
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use sc_keystore::LocalKeystore;
|
||||
use sc_network_test::Block;
|
||||
use sp_keystore::{Keystore, KeystorePtr};
|
||||
|
||||
use super::*;
|
||||
use crate::keystore::BeefyKeystore;
|
||||
use sc_network_test::Block;
|
||||
use sp_consensus_beefy::{
|
||||
crypto::Signature, known_payloads, Commitment, Keyring, MmrRootHash, Payload, VoteMessage,
|
||||
KEY_TYPE,
|
||||
};
|
||||
|
||||
use super::*;
|
||||
use sp_keystore::{testing::MemoryKeystore, Keystore};
|
||||
|
||||
#[test]
|
||||
fn known_votes_insert_remove() {
|
||||
@@ -306,10 +303,9 @@ mod tests {
|
||||
}
|
||||
|
||||
fn sign_commitment<BN: Encode>(who: &Keyring, commitment: &Commitment<BN>) -> Signature {
|
||||
let store: KeystorePtr = std::sync::Arc::new(LocalKeystore::in_memory());
|
||||
Keystore::ecdsa_generate_new(&*store, KEY_TYPE, Some(&who.to_seed())).unwrap();
|
||||
let beefy_keystore: BeefyKeystore = Some(store).into();
|
||||
|
||||
let store = MemoryKeystore::new();
|
||||
store.ecdsa_generate_new(KEY_TYPE, Some(&who.to_seed())).unwrap();
|
||||
let beefy_keystore: BeefyKeystore = Some(store.into()).into();
|
||||
beefy_keystore.sign(&who.public(), &commitment.encode()).unwrap()
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
use sp_application_crypto::RuntimeAppPublic;
|
||||
use sp_core::keccak_256;
|
||||
use sp_keystore::{Keystore, KeystorePtr};
|
||||
use sp_keystore::KeystorePtr;
|
||||
|
||||
use log::warn;
|
||||
|
||||
@@ -50,7 +50,7 @@ impl BeefyKeystore {
|
||||
// we do check for multiple private keys as a key store sanity check.
|
||||
let public: Vec<Public> = keys
|
||||
.iter()
|
||||
.filter(|k| Keystore::has_keys(&*store, &[(k.to_raw_vec(), KEY_TYPE)]))
|
||||
.filter(|k| store.has_keys(&[(k.to_raw_vec(), KEY_TYPE)]))
|
||||
.cloned()
|
||||
.collect();
|
||||
|
||||
@@ -77,7 +77,8 @@ impl BeefyKeystore {
|
||||
let msg = keccak_256(message);
|
||||
let public = public.as_ref();
|
||||
|
||||
let sig = Keystore::ecdsa_sign_prehashed(&*store, KEY_TYPE, public, &msg)
|
||||
let sig = store
|
||||
.ecdsa_sign_prehashed(KEY_TYPE, public, &msg)
|
||||
.map_err(|e| error::Error::Keystore(e.to_string()))?
|
||||
.ok_or_else(|| error::Error::Signature("ecdsa_sign_prehashed() failed".to_string()))?;
|
||||
|
||||
@@ -94,10 +95,8 @@ impl BeefyKeystore {
|
||||
pub fn public_keys(&self) -> Result<Vec<Public>, error::Error> {
|
||||
let store = self.0.clone().ok_or_else(|| error::Error::Keystore("no Keystore".into()))?;
|
||||
|
||||
let pk: Vec<Public> = Keystore::ecdsa_public_keys(&*store, KEY_TYPE)
|
||||
.drain(..)
|
||||
.map(Public::from)
|
||||
.collect();
|
||||
let pk: Vec<Public> =
|
||||
store.ecdsa_public_keys(KEY_TYPE).drain(..).map(Public::from).collect();
|
||||
|
||||
Ok(pk)
|
||||
}
|
||||
@@ -118,18 +117,15 @@ impl From<Option<KeystorePtr>> for BeefyKeystore {
|
||||
|
||||
#[cfg(test)]
|
||||
pub mod tests {
|
||||
use std::sync::Arc;
|
||||
|
||||
use sc_keystore::LocalKeystore;
|
||||
use sp_core::{ecdsa, Pair};
|
||||
|
||||
use sp_consensus_beefy::{crypto, Keyring};
|
||||
use sp_core::{ecdsa, Pair};
|
||||
use sp_keystore::testing::MemoryKeystore;
|
||||
|
||||
use super::*;
|
||||
use crate::error::Error;
|
||||
|
||||
fn keystore() -> KeystorePtr {
|
||||
Arc::new(LocalKeystore::in_memory())
|
||||
MemoryKeystore::new().into()
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -197,11 +193,11 @@ pub mod tests {
|
||||
fn authority_id_works() {
|
||||
let store = keystore();
|
||||
|
||||
let alice: crypto::Public =
|
||||
Keystore::ecdsa_generate_new(&*store, KEY_TYPE, Some(&Keyring::Alice.to_seed()))
|
||||
.ok()
|
||||
.unwrap()
|
||||
.into();
|
||||
let alice: crypto::Public = store
|
||||
.ecdsa_generate_new(KEY_TYPE, Some(&Keyring::Alice.to_seed()))
|
||||
.ok()
|
||||
.unwrap()
|
||||
.into();
|
||||
|
||||
let bob = Keyring::Bob.public();
|
||||
let charlie = Keyring::Charlie.public();
|
||||
@@ -223,11 +219,11 @@ pub mod tests {
|
||||
fn sign_works() {
|
||||
let store = keystore();
|
||||
|
||||
let alice: crypto::Public =
|
||||
Keystore::ecdsa_generate_new(&*store, KEY_TYPE, Some(&Keyring::Alice.to_seed()))
|
||||
.ok()
|
||||
.unwrap()
|
||||
.into();
|
||||
let alice: crypto::Public = store
|
||||
.ecdsa_generate_new(KEY_TYPE, Some(&Keyring::Alice.to_seed()))
|
||||
.ok()
|
||||
.unwrap()
|
||||
.into();
|
||||
|
||||
let store: BeefyKeystore = Some(store).into();
|
||||
|
||||
@@ -243,9 +239,7 @@ pub mod tests {
|
||||
fn sign_error() {
|
||||
let store = keystore();
|
||||
|
||||
let _ = Keystore::ecdsa_generate_new(&*store, KEY_TYPE, Some(&Keyring::Bob.to_seed()))
|
||||
.ok()
|
||||
.unwrap();
|
||||
store.ecdsa_generate_new(KEY_TYPE, Some(&Keyring::Bob.to_seed())).ok().unwrap();
|
||||
|
||||
let store: BeefyKeystore = Some(store).into();
|
||||
|
||||
@@ -274,11 +268,11 @@ pub mod tests {
|
||||
fn verify_works() {
|
||||
let store = keystore();
|
||||
|
||||
let alice: crypto::Public =
|
||||
Keystore::ecdsa_generate_new(&*store, KEY_TYPE, Some(&Keyring::Alice.to_seed()))
|
||||
.ok()
|
||||
.unwrap()
|
||||
.into();
|
||||
let alice: crypto::Public = store
|
||||
.ecdsa_generate_new(KEY_TYPE, Some(&Keyring::Alice.to_seed()))
|
||||
.ok()
|
||||
.unwrap()
|
||||
.into();
|
||||
|
||||
let store: BeefyKeystore = Some(store).into();
|
||||
|
||||
@@ -300,9 +294,8 @@ pub mod tests {
|
||||
|
||||
let store = keystore();
|
||||
|
||||
let add_key = |key_type, seed: Option<&str>| {
|
||||
Keystore::ecdsa_generate_new(&*store, key_type, seed).unwrap()
|
||||
};
|
||||
let add_key =
|
||||
|key_type, seed: Option<&str>| store.ecdsa_generate_new(key_type, seed).unwrap();
|
||||
|
||||
// test keys
|
||||
let _ = add_key(TEST_TYPE, Some(Keyring::Alice.to_seed().as_str()));
|
||||
|
||||
@@ -340,10 +340,11 @@ pub(crate) fn make_beefy_ids(keys: &[BeefyKeyring]) -> Vec<AuthorityId> {
|
||||
}
|
||||
|
||||
pub(crate) fn create_beefy_keystore(authority: BeefyKeyring) -> KeystorePtr {
|
||||
let keystore = Arc::new(MemoryKeystore::new());
|
||||
Keystore::ecdsa_generate_new(&*keystore, BeefyKeyType, Some(&authority.to_seed()))
|
||||
.expect("Creates authority key");
|
||||
let keystore = MemoryKeystore::new();
|
||||
keystore
|
||||
.ecdsa_generate_new(BeefyKeyType, Some(&authority.to_seed()))
|
||||
.expect("Creates authority key");
|
||||
keystore.into()
|
||||
}
|
||||
|
||||
async fn voter_init_setup(
|
||||
|
||||
Reference in New Issue
Block a user