rust - 不能用箱子写 key 文件

标签 rust rust-cargo

我正在尝试使用这里的功能 https://docs.rs/ethkey/0.2.5/ethkey/为以太坊写一个 key 文件:

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 当我输入 ~ 作为第一个参数但不是我真正想要我的 key 的文件路径时工作,即 Users/Documents/Code/Thor/雷神/奇偶校验/键

更新

我现在使用前面带有斜线的完整路径,但仍然有效。即

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());

我会对此提出建议

最佳答案

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

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...”开始,这需要一个初始斜线“/”。

关于rust - 不能用箱子写 key 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57201720/

相关文章:

rust - 是否可以让 Cargo 从私有(private)远程 git 获取依赖项?

rust - 如何在 Rust 中构建多工作区 cargo 项目

rust - 什么是例子,它们有什么用?

rust - Rust 中的 "()"类型是什么?

rust - 为什么会出现错误 : error[E0614]: type `str` cannot be dereferenced

pattern-matching - Rust 中无法访问的模式匹配

rust - 为什么在堆栈中分配的值不会导致双自由指针?

rust - 我可以阻止 cargo 在每个新项目中重建库吗?

rust - const 数组是如何内联的?

rust - 如何在 Rust 的 for 循环中使用多个变量?