← 返回
未分类 中文

Ts Sdk View And Query

How to read on-chain data in @aptos-labs/ts-sdk: view(), getBalance(), getAccountInfo(), getAccountResources(), getAccountModules(), getResource(). Triggers...
如何在 @aptos-labs/ts-sdk 中读取链上数据:view()、getBalance()、getAccountInfo()、getAccountResources()、getAccountModules()、getResource() 等方法的使用。触发...
iskysun96 iskysun96 来源
未分类 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 400
下载
💾 0
安装
1
版本
#latest

概述

TypeScript SDK: View and Query

Purpose

Guide read-only access to chain data in @aptos-labs/ts-sdk: view functions, balance, account info, resources, and

modules.

ALWAYS

  1. Use aptos.getBalance({ accountAddress }) for APT balance – not deprecated getAccountCoinAmount /

getAccountAPTAmount.

  1. Use aptos.view() for Move view functions – pass function, functionArguments, and optional typeArguments.
  2. Use bigint for u128/u256 view return values – cast result[0] to BigInt(...) when the Move function returns

u128/u256.

  1. Pass address as string or AccountAddress – SDK accepts AccountAddressInput (string or AccountAddress).

NEVER

  1. Do not use deprecated getAccountCoinAmount or getAccountAPTAmount – use getBalance().
  2. Do not use number for u128/u256 – precision loss; use bigint.
  3. Do not assume view returns are always strings – types vary (number, bigint, string, boolean, array).

getBalance (APT)

const balance = await aptos.getBalance({
  accountAddress: account.accountAddress
});
// balance is bigint in octas (1 APT = 100_000_000 octas)
const apt = balance / 100_000_000n;
const remainder = balance % 100_000_000n;
console.log(`${apt}.${remainder.toString().padStart(8, "0")} APT`);

getAccountInfo

const accountInfo = await aptos.getAccountInfo({
  accountAddress: "0x1"
});
// accountInfo: { sequence_number, authentication_key, ... }

view() – Move view functions

// No type arguments
const result = await aptos.view({
  payload: {
    function: `${MODULE_ADDRESS}::counter::get_count`,
    functionArguments: [accountAddress]
  }
});
const count = Number(result[0]);

// With type arguments (e.g. coin type)
const balanceResult = await aptos.view({
  payload: {
    function: "0x1::coin::balance",
    typeArguments: ["0x1::aptos_coin::AptosCoin"],
    functionArguments: [accountAddress]
  }
});
const coinBalance = BigInt(balanceResult[0] as string);

// Multiple return values
// Move: public fun get_listing(addr): (address, u64, bool)
const [seller, price, isActive] = await aptos.view({
  payload: {
    function: `${MODULE_ADDRESS}::marketplace::get_listing`,
    functionArguments: [listingAddress]
  }
});
const listing = {
  seller: seller as string,
  price: BigInt(price as string),
  isActive: isActive as boolean
};

getAccountResources

const resources = await aptos.getAccountResources({
  accountAddress: account.accountAddress
});
// resources: Array<MoveResource>
const counterResource = resources.find((r) => r.type === `${MODULE_ADDRESS}::counter::Counter`);

getAccountResource (single type)

const resource = await aptos.getAccountResource({
  accountAddress: account.accountAddress,
  resourceType: `${MODULE_ADDRESS}::counter::Counter`
});
// resource.data has the struct fields
const value = (resource?.data as { value: number })?.value;

getAccountModules

const modules = await aptos.getAccountModules({
  accountAddress: modulePublisherAddress
});
// modules: MoveModuleBytecode[] (ABI, bytecode)

getModule (single module by name)

const module = await aptos.getModule({
  accountAddress: modulePublisherAddress,
  moduleName: "counter"
});

Pagination (resources / modules)

Use cursor-based options when available:

const { resources, cursor } = await aptos.getAccountResourcesPage({
  accountAddress: account.accountAddress,
  options: { limit: 10, cursor: nextCursor }
});

Type handling for view results

Move return typeTypeScriptExample
--------------------------------------------------------------------------
u8..u64number or bigintNumber(result[0]) or BigInt(result[0])
u128, u256bigintBigInt(result[0] as string)
addressstringresult[0] as string
boolbooleanresult[0] as boolean
vectorarrayresult[0] as T[]

Common mistakes

MistakeCorrect approach
------------------------------------------------------------------------------------------------------
Using getAccountCoinAmountUse aptos.getBalance({ accountAddress })
Using number for u128Use BigInt(result[0] as string)
Forgetting typeArguments for generic viewAdd typeArguments: [coinType] when Move function is generic

References

use-ts-sdk

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-03-30 22:05 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

dev-programming

YouTube

byungkyu
使用托管OAuth集成YouTube Data API,支持搜索视频、管理播放列表、获取频道数据及评论互动,适用于用户需要时使用此技能。
★ 142 📥 42,393
it-ops-security

Security Audit

iskysun96
在部署前使用7类安全清单对Move合约进行安全漏洞审计。触发词:'审计合约'、'安全检查'、'安全审查'等。
★ 0 📥 638
dev-programming

Mcporter

steipete
使用 mcporter CLI 直接列出、配置、认证及调用 MCP 服务器/工具(支持 HTTP 或 stdio),涵盖临时服务器、配置编辑及 CLI/类型生成功能。
★ 200 📥 68,565