You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solana链上查询代币铸币供应量的方法求助

链上查询铸币账户供应量的问题解决

问题分析与解决

  • 第一个错误:Mint::unpack_unchecked要求参数为&[u8]类型,但你传入的accounts.mint.data是Rc<RefCell<&mut [u8]>>,类型不匹配导致报错。
  • 第二个错误:borrow()返回的Ref是临时对象,直接链式调用as_ref()后该对象会被立即释放,后续使用时触发生命周期错误。

正确代码示例

// 先绑定borrow()的结果,延长其生命周期
let mint_data = accounts.mint.data.borrow();
// 转换为符合要求的&[u8]切片
let data_slice = mint_data.as_ref();
// 解析铸币账户数据为Mint结构体
let mint = Mint::unpack_unchecked(data_slice).unwrap();
// 获取铸币供应量
let supply = mint.supply;

补充说明

如果对数据安全性有要求,建议使用Mint::unpack替代unpack_unchecked,前者会做数据格式的合法性检查,避免因数据异常导致程序崩溃。

内容的提问来源于stack exchange,提问作者Dinaiscoding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 00:45:13