Solana/Anchor error: (yanked dependencies) Failed to obtain package metadata: `cargo metadata` exited with an error: Updating crates.io index

Solana/Anchor error: (yanked dependencies) Failed to obtain package metadata: `cargo metadata` exited with an error: Updating crates.io index

我昨天刚搭建了一个新的锚点项目,每个命令运行都很顺利。

今天我安装了一个新的锚点项目。我运行anchor test看看项目是否设置正确。我收到此错误:

Failed to obtain package metadata: `cargo metadata` exited with an error:     Updating crates.io index
error: failed to select a version for the requirement `anchor-lang = "^0.23.0"`
candidate versions found which didn't match: 0.24.2
location searched: crates.io index
required by package `myAnchorProject v0.1.0 (.../programs/myAnchorProject)`

不清楚候选版本是什么意思。我删除了 node_modules 并使用 "@project-serum/anchor": "^0.24.2" 安装它,仍然是同样的错误。

我清除 lib.rs 和测试文件以查看不同的内容,但它仍然给出相同的错误。

执行 cargo update 给出同样的错误

这不是你 package.json 中的依赖问题,而是由于使用了 yanked rust crate anchor-lang

所有其他版本 0.24.2 已被抽出,因此您无法构建任何已抽出依赖项的货运项目。

参考这里https://crates.io/crates/anchor-lang/versions

你需要做的是
转到 <your-project-root>/programs/myAnchorProject/cargo.toml.
我假设您的程序名称是 myAnchorProject 或将其替换为您的程序名称。

您当前的 cargo.toml 必须类似于

...
<other content goes here>
...

[dependencies]
anchor-lang = "^0.23.0"

您需要将 anchor-lang 版本升级到 0.24.2 或任何其他未被抽取的可用版本。

所以你的最终 cargo.toml 应该看起来像

...
<other content goes here>
...

[dependencies]
anchor-lang = "^0.24.2"