How to read on-chain data in @aptos-labs/ts-sdk: view(), getBalance(), getAccountInfo(), getAccountResources(),
指导对 @aptos-labs/ts-sdk 中链上数据的只读访问:视图函数、余额、账户信息、资源和模块。
typescript
const balance = await aptos.getBalance({
accountAddress: account.accountAddress
});
// balance 是 bigint 类型,单位为 octas(1 APT = 100000000 octas)
const apt = balance / 100000000n;
const remainder = balance % 100000000n;
console.log(${apt}.${remainder.toString().padStart(8, 0)} APT);
typescript
const accountInfo = await aptos.getAccountInfo({
accountAddress: 0x1
});
// accountInfo: { sequencenumber, authenticationkey, ... }
typescript
// 无类型参数
const result = await aptos.view({
payload: {
function: ${MODULEADDRESS}::counter::getcount,
functionArguments: [accountAddress]
}
});
const count = Number(result[0]);
// 带类型参数(例如 coin 类型)
const balanceResult = await aptos.view({
payload: {
function: 0x1::coin::balance,
typeArguments: [0x1::aptos_coin::AptosCoin],
functionArguments: [accountAddress]
}
});
const coinBalance = BigInt(balanceResult[0] as string);
// 多个返回值
// Move: public fun get_listing(addr): (address, u64, bool)
const [seller, price, isActive] = await aptos.view({
payload: {
function: ${MODULEADDRESS}::marketplace::getlisting,
functionArguments: [listingAddress]
}
});
const listing = {
seller: seller as string,
price: BigInt(price as string),
isActive: isActive as boolean
};
typescript
const resources = await aptos.getAccountResources({
accountAddress: account.accountAddress
});
// resources: Array
const counterResource = resources.find((r) => r.type === ${MODULE_ADDRESS}::counter::Counter);
getAccountResource(单一类型)
typescript
const resource = await aptos.getAccountResource({
accountAddress: account.accountAddress,
resourceType: ${MODULE_ADDRESS}::counter::Counter
});
// resource.data 包含结构体字段
const value = (resource?.data as { value: number })?.value;
typescript
const modules = await aptos.getAccountModules({
accountAddress: modulePublisherAddress
});
// modules: MoveModuleBytecode[](ABI、字节码)
typescript
const module = await aptos.getModule({
accountAddress: modulePublisherAddress,
moduleName: counter
});
在可用时使用基于游标的选项:
typescript
const { resources, cursor } = await aptos.getAccountResourcesPage({
accountAddress: account.accountAddress,
options: { limit: 10, cursor: nextCursor }
});
| Move 返回类型 | TypeScript | 示例 |
|---|---|---|
| u8..u64 | number 或 bigint | Number(result[0]) 或 BigInt(result[0]) |
| u128, u256 |
| 错误 | 正确做法 |
|---|---|
| 使用 getAccountCoinAmount | 使用 aptos.getBalance({ accountAddress }) |
| 对 u128 使用 number |
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 ts-sdk-view-and-query-1776168181 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 ts-sdk-view-and-query-1776168181 技能
skillhub install ts-sdk-view-and-query-1776168181
文件大小: 2.58 KB | 发布时间: 2026-4-17 16:24