使用 Rust 获取 Solana 事务状态

get Solana transaction status using Rust

我正在尝试使用 Rust 获取 Solana 事务状态。您可以使用explorer.solana.com获取交易状态,但我想通过代码获取。

Rust SDK中有get_signature_status函数:https://github.com/solana-labs/solana/blob/master/client/src/rpc_client.rs#L1119

上面的函数需要一个签名对象:https://docs.rs/solana-sdk/0.16.2/src/solana_sdk/signature.rs.html#25

所以我尝试使用它:

let sig_s = String::from("...");
let sig: Signature = Signature(sig_s.as_bytes());
let stat = self.client.get_signature_status(&sig);
println!("{:?}", stat);

但我收到以下错误:“由于私有字段,构造函数在此处不可见”

我正在尝试了解是否有另一种创建 Signature 对象的方法,我想应该有一种方法可以创建 Signature 对象并获取其状态。

首先,您链接到一个非常过时的文档版本(v0.16.2,最新的是 v1.9.6)。请参阅 https://docs.rs/solana-sdk 了解最新版本。

在最新版本中,Signature implements FromStr因此您可以执行以下操作:

let sig = Signature::from_str(sig_s).unwrap();

这会给你一个 Signature 你可以使用。