Skip to content

Commit 8b2f753

Browse files
rphmeierpepyakin
authored andcommitted
add key management module to shim
1 parent 8b7228a commit 8b2f753

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

sugondat-shim/src/key.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
//! Key management: sr25519 account key used for signing blob submission
2+
//! transactions.
3+
4+
use subxt_signer::sr25519::{Seed, Keypair};
5+
use std::path::Path;
6+
7+
/// Load a key from the provided file path.
8+
///
9+
/// The file should contain a hex-encoded 32-byte seed used to generate
10+
/// the underlying schnorrkel private key.
11+
pub fn load_key_from_file<P: AsRef<Path>>(path: P) -> anyhow::Result<Keypair> {
12+
let raw = hex::decode(std::fs::read(path)?)?;
13+
let mut seed: Seed = Seed::default();
14+
if raw.len() <= seed.len() {
15+
anyhow::bail!("Keyfile length invalid")
16+
}
17+
seed.copy_from_slice(&raw[..]);
18+
Ok(Keypair::from_seed(seed)?)
19+
}
20+
21+
/// The default dev key.
22+
pub fn alice() -> Keypair {
23+
subxt_signer::sr25519::dev::alice()
24+
}

sugondat-shim/src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
mod adapters;
22
mod cli;
33
mod cmd;
4+
mod key;
45
mod sugondat_rpc;
56

67
#[tokio::main]

0 commit comments

Comments
 (0)