我正在尝试使用近json-rpc,当我构建RpcQueryRequest
时,我得到了以下与近基元类型相关的错误:
expected enum near_primitives::types::BlockReference, found enum BlockReference
expected enum near_primitives::views::QueryRequest, found enum QueryRequest
将导入BlockReference
和QueryRequest
枚举。以下是构建请求的代码:
use near_primitives::types::Finality::DoomSlug;
use near_primitives::types::BlockReference::Finality;
use near_primitives::views::QueryRequest::ViewAccount;
...
let request = ViewAccount {
account_id: "address.near".parse().unwrap()
};
let block_reference = Finality(DoomSlug);
let status_request = RpcQueryRequest {
block_reference,
request
};
使用block_reference
和request
变量创建status_request
时,在最后3行中生成错误。
以下是我在Cargo.toml:中的依赖项
[dependencies]
near-jsonrpc-client = "0.3.0"
futures = "0.3.24"
tokio = { version = "1.21.1", features = ["full"] }
near-primitives = "0.15.0"
关于如何解决这个问题有什么想法吗?
您使用的是near-primitives版本0.15,但near-jsonrpc客户端版本0.3依赖于near-prinitives版本0.12。这两个版本不兼容,因此使用一个版本的类型来代替另一个版本是不起作用的。
您应该降低对近基元的依赖以匹配:
near-primitives = "0.12.0"