rust 使用ether.rs将私钥转换为字符串

tp5buhyn  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(87)

我是rust的新手,目前正在探索ethers.rs库。我想在控制台上打印钱包的私钥,首先我正在使用构建助记符。
let mnemonic = Mnemonic::<English>::new(&mut rand::thread_rng());
现在我想用这个助记符来提取私钥。我知道助记符可以有多个私钥,但我想提取第一个。为此我做了这样的事情。
let key = mnemonic.derive_key("m/44'/60'/0'/0/0", None).unwrap()
这将给出XPriv类型的输出。我无法理解我如何使用这种类型,因为它不包含任何函数来以字符串形式给予我私钥,以便我可以将其打印到控制台。如果你能帮忙的话,我将不胜感激。
这是我全部功能

async fn test() {
    let mnemonic = Mnemonic::<English>::new(&mut rand::thread_rng());

    println!("mnemonic: {}", mnemonic.to_phrase());

    let key = mnemonic
        .derive_key("m/44'/60'/0'/0/0", None)
        .expect("Failed to derive pkey");
}

字符串
这是我货,汤姆

name = "rust-basics"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
ethers="2.0.7"
tokio = { version = "1", features = ["full"] }
bip39 = "2.0"
rand = "0.8"
dialoguer = "0.10.4"
serde = "1.0.164"
serde_json = "1.0.97"
password-hash = "0.5.0"
bcrypt = "0.14.0"

lstz6jyr

lstz6jyr1#

我没有找到Mnemonic,但有MnemonicBuilderhttps://github.com/gakonst/ethers-rs/blob/master/examples/wallets/examples/mnemonic.rs
在你得到wallet之后,你可以使用下面的代码得到私钥。

let private_key = wallet
    .signer()
    .to_bytes()
    .iter()
    .map(|&i|format!("{:X}", i))
    .collect::<Vec<String>>()
    .join("");

字符串
希望对你有帮助。

相关问题