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

如何在Archway获取智能合约余额?需将BankQuery转为String/u128

在Archway链中将BankQuery余额结果转为String/u128类型

首先要明确:BankQuery::Balance只是查询的构造结构体,你需要先执行这个查询拿到实际的响应结果,再提取余额数值。在Archway基于的CosmWasm框架中,执行该查询后会返回BalanceResponse类型,从中可以提取出需要的String或u128类型余额。

步骤示例

  1. 构造并执行查询
use cosmwasm_std::{BankQuery, QueryRequest, BalanceResponse};

// 构造余额查询
let balance_query = QueryRequest::Bank(BankQuery::Balance {
    denom: "uarch".to_string(), // 替换为目标资产的最小单位
    address: "你的合约或账户地址".to_string(),
});

// 在合约的query函数中执行查询,获取响应
let balance_response: BalanceResponse = deps.querier.query(&balance_query)?;
  1. 提取String类型余额
    BalanceResponse中的amount是Coin结构体,其amount字段本身就是String类型:
let balance_string: String = balance_response.amount.amount;
  1. 转换为u128类型余额
    通过parse方法将String转为u128,注意处理可能的解析错误:
let balance_u128: u128 = balance_response.amount.amount.parse()?;

注意事项

  • 确保使用的denom是资产的最小单位(比如Archway主网的uarch,1 ARCH等于1,000,000 uarch)
  • parse方法可能返回错误,但CosmWasm返回的余额数值都是合法的数字字符串,一般不会出现解析失败的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 06:15:54