首页 文章

特征绑定不满意库中的错误[重复]

提问于
浏览
-1

这个问题在这里已有答案:

我正在尝试使用secp256k1库生成密钥对 .

在官方文档中我找到了这段代码:

use rand::OsRng;
use secp256k1::{Secp256k1, Message};

let secp = Secp256k1::new();
let mut rng = OsRng::new().expect("OsRng");
let (secret_key, public_key) = secp.generate_keypair(&mut rng);

我把它放在我的_13514中:

[dependencies]
rand = "0.6.1"

[dependencies.secp256k1]
features = ["rand"]
version = "0.12.0"

但是,我收到此编译错误:

secp.generate_keypair(&mut rng); | ^^^^^^^^^^^^^^^^ trait secp256k1 :: rand :: Rng未实现std :: result :: Result <rand :: rngs :: OsRng,rand :: Error>

我是Rust的新手,我正在努力理解它,但我发现它非常困难 . 请解释一下我的错误 . 谢谢!

1 回答

  • 2

    这似乎是一个箱子版本不匹配 . 最新版本的 rand 箱子是 0.6.1 ,但 secp256k1 0.12.0 取决于更旧的版本 - 0.4.3 .

    快速解决方法是使用旧版本的 rand

    [dependencies]
    rand = "0.4.3"
    

    并考虑要求 secp256k1 的作者更新其依赖项 .

    我发现这种方式的方法是搜索 Cargo.lock 文件,该文件包含应用程序使用的所有依赖项的实际版本 .

相关问题