无法使用板条箱写入密钥文件

时间:2019-07-25 12:13:09

标签: rust rust-cargo

我正在尝试使用此处的功能https://docs.rs/ethkey/0.2.5/ethkey/为以太坊写一个密钥文件:

let key = EthAccount::load_or_generate("Users/Documents/Code/Thor/thor/parity/keys", "passwd")
        .expect("should load or generate new eth key");

    println!("{:?}", key.address());

不幸的是,它不起作用,并出现以下错误:

thread 'main' panicked at 'should load or generate new eth key: Error(SerdeJsonError(Error("Is a directory (os error 21)", line: 0, column: 0)), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } })', src/libcore/result.rs:999:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

更新

load_or_generate在我输入~作为第一个参数而不是我实际需要键的文件路径即Users/Documents/Code/Thor/thor/parity/keys

时起作用

更新

我现在使用的是前面带有斜线的完整路径,但仍然可以完成工作。即

let key = EthAccount::load_or_generate("./Users/samueldare/Documents/Code/Thor/thor/parity/keys", "passwd")
        .expect("should load or generate new eth key");

    println!("{:?}", key.address());

我会为此赞赏指针

1 个答案:

答案 0 :(得分:0)

在文件路径的开头添加“ /”。

https://doc.rust-lang.org/std/path/struct.Path.html

例如:

let key = EthAccount::load_or_generate("/Users/Documents/Code/Thor/thor/parity/keys", "passwd")
        .expect("should load or generate new eth key");

在第一个问题中,这不是必需的,因为您使用“〜”作为路径,它本身就是有效路径。这次,您从'/ Users ...'开始,它需要一个初始斜杠'/'。