@anywalletkit/wallet-tron

中文文档
0.6.2发布于 2026/11/03Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 2508

Any Walet Kit的Tron钱包:BIP-32m/44'/195'/0'/0/i帐号,TRX和TRC-20根据全节点HTTP API进行转帐,没有tronweb.

中文使用文档
文档目录6 节
  1. 安装
  2. 签名前会发生什么
  3. 收费
  4. 备忘录 raw_data.data (中文(简体) )
  5. 签名人
  6. 活动历史

@ anywalletkit/wallet-tron (英语)

npm

Tron 账户 m/44'/195'/0'/0/i (BIP-44 — TronLink 默认值),由金色来支撑 向量在 @anywalletkit/conformance。没有子网:全节点的 HTTP API 构建 raw_data账户检查,模拟,标志 txID 与高贵的秒256k1 和广播.

安装

npm install @anywalletkit/wallet-tron
# or: pnpm add @anywalletkit/wallet-tron  ·  yarn add @anywalletkit/wallet-tron

时间: @ anywalletkit/wallet-tron (英语)发表于 发布工作流程 与出处.

import WalletManagerTron from '@anywalletkit/wallet-tron'

const wallet = new WalletManagerTron(seedPhrase, { provider: ['https://api.trongrid.io', 'https://tron-rpc.example'], headers: { 'TRON-PRO-API-KEY': key } })
const account = await wallet.getAccount(0)
await account.transfer({ recipient: 'T…', amount: 1_000_000n })                    // 1 TRX (sun)
await account.transfer({ token: USDT_TRC20, recipient: 'T…', amount: 1_000_000n }) // TRC-20
await account.sendTransaction({ contractAddress, functionSelector: 'approve(address,uint256)', parameters: [...] })
const sig = await account.sign('hello')                                            // TIP-191, 0x + r||s||v (27/28)
wallet.dispose()

provider 是一个或多个全节点urls(或自定义的运输);列表按顺序失效,以及 之后每个 url 请求时间 timeoutMs (违约15 000)。 一个没有回答的广播 重排为同一签名字节( 1) txID,接受过一次)到下一个提供者 DUP_TRANSACTION_ERROR 计数为已接受; 当节点回答时, 它会扔出 BroadcastUnknownError 与 txID ——看好,不要再建设和签署. 太阳是 从 url 提供者中读取,而不进行四舍五入(高于 2^53 的提示要精确); 自定义运输 拒绝转移超过 2^53 - 1 太阳 节点建立它.

签名前会发生什么

每个 signTransaction 编号 : sendTransaction 编号 : transfer 穿过同一个大门:

  1. 硬检查 (单位:千美元)UnsafeTransactionError,带有 code- 一份合同; owner_address 是这个账户; ref_block_bytes 编号 : ref_block_hash 提供方的参考文献 屏蔽所配置网络的块(ref-block-mismatch; Tron 签名约束于其 ——离线,除非 allowOfflineTestnetSigning: true (单位:千美元)offline-network(三); raw_data.data 最多512个字节(memo(三); expiration 未来的未来和 最多24小时; 没有 TRX / TRC-20 转到零地址, 除非 allowBurn: true· ; fee_limit 加紧执行 transactionMaxFee 财务报告和审定财务报表 WriteOptions.maxFee,以及 fee_limit 加减 带宽/备忘/激活费不在上限内(fee-limit(无) AccountPermissionUpdateContract (掌声) 账户的密钥结束),除非 allowPermissionChanges: true (单位:千美元)permission-change; 无合同类型 钱包无法解码, 除非 allowUndecodedContracts: true (单位:千美元)undecoded-contract· ; VoteWitnessContract 仅重新分配选票并签字)。 同样的检查运行在 signRaw,哪个 带 WriteOptions 并保存交易上的签名( 多相码联合签名) : 收费上限 它通过提供商定价字节 并拒绝合同呼叫 fee_limit, (中文(简体) ), 或在没有供应商的情况下进行的任何交易。 合同呼叫参数必须与 functionSelector 签名和编码每个ABI字(encodeCall) (中文(简体) ).
  2. 模拟 (单位:千美元)SimulationError关闭 simulate: false:合同电话通过 /wallet/triggerconstantcontract 且还原理由为ABI-解码(Error(string), (中文(简体) ), Panic);TRX转账检查余额是否包括金额+费用.
  3. 费用估计 编辑 transferMaxFee 编号 : transactionMaxFee 盖.

describeTransaction(tx) 告诉你交易是做什么的,离线: trx-transfer, (中文(简体) ), trc20-transfer, (中文(简体) ), trc20-approve, (中文(简体) ), contract-call, (中文(简体) ), freeze, (中文(简体) ), unfreeze ——已解码 收款人/金额/支出人和警告(unlimited-approve, (中文(简体) ), zero-address, (中文(简体) ), memo-fee, (中文(简体) ), expired) (中文(简体) ). account.describeTransactionOnline(tx) 添加 unactivated-recipient。 。 。 .

收费

account.estimateFee(tx) → { bandwidth, energy, trxBurn, breakdown }时 trxBurn 实值 寄件者在输入/ 免费资源后实际支付的( 日) :

  • 带宽 点=序列大小(raw_data + protobuf 信封 + 65字节签名)
    • 64字节结果储备——268个TRX转让,~345个TRC-20转让. 被绑住 带宽首先使用,然后是免费的每日津贴,否则 getTransactionFee 每分太阳.
  • 能源 =: energy_used 常有的呼唤;没有遮住的能量被烧毁 时间 getEnergyFee。 。 。 . fee_limit 默认为能×价格×1.2(封顶于 transactionMaxFee 和电话 maxFee) (中文(简体) ).
  • 账户创建 (TRX转到一个隐形地址): getCreateNewAccountFeeInSystemContract (1 TRX)加 getCreateAccountFee (0.1 TRX) 除非悬浮带宽覆盖字节—— 创建时不接受免费带宽.
  • 备忘 (单位:千美元)raw_data.data: getMemoFee (1 TRX) (中文(简体) ).

quoteSendTransaction 编号 : quoteTransfer 返回时 { fee: trxBurn, activationFee, estimate }。 。 。 .

备忘录raw_data.data(中文(简体) )

transfer({ …, memo }), (中文(简体) ), { to, value, memo } 和与 memo 附 录 文本作为节点所构建的 protobuf 字段 10 raw_data。记录在 其犬类位置(在 expiration,在 contract)所以说 txID 我们签了 等于从它自己的再序列化中重排的 Java-tron ; JSON 广播 带有与 raw_data.data (hex) (英语). 备忘录费getMemoFee, 1 TRX) (中文(简体) ) 带宽显示在 estimateFee,以及 describeTransaction 报告 备忘 memo-fee 警告 警告他们 备忘录被封为 512 UTF-8 字节; 附加 一到已经包含的交易 raw_data.data 被拒绝.

签名人

通过一秒256k1的账号 Signer 从 @anywalletkit/core: 种子路径 使用a LocalSigner (零时 dispose()(三); new WalletManagerTron(signer) 包装 一个外部的(硬件、MPC、后端)。 交易请求 ecdsa-recoverable 结束 sha256(raw_data) 内容 tron-tx, TIP-191 信息与 tron-message。 。 。 . 一个衍生 SeedSigner 时间 m/44'/195'/0'/0 产量 getAccount(i) 儿童;任何 其他签名符是 getAccount(0) 只有这个. WalletAccountTron.fromPrivateKey(…) 留着 生键形.

活动历史

createTronHistory 是链子 HistorySource (单位:千美元)@anywalletkit/core在特龙格里德上空.

import { createTronHistory } from '@anywalletkit/wallet-tron/history'

const history = createTronHistory({ apiKey: process.env.TRONGRID_KEY })
const page = await history.listActivity('TVSz6xJL2M53HDZyFTeDcGCmEDdwmU4zbv', { limit: 25 })
const older = await history.listActivity(address, { cursor: page.cursor })
const one = await history.getTransaction(page.items[0].hash, address)
history.explorerTxUrl(one.hash) // https://tronscan.org/#/transaction/…
选项默认说明
apiUrlhttps://api.trongrid.io (树根/ 无根由 network(中文(简体) )任意TronGrid相容的主机.
apiKey无TRON-PRO-API-KEY。无密钥 TronGrid 允许 每个终点1个请求/s (答复) request rate exceeded the allowed_rps(1)) (中文(简体) ).
networkmainnettron:0x2b6653dc /shasta/无.
rateLimit1 rps 无密钥, 10 有密钥
fetch, (中文(简体) ), timeoutMs全球,15 000

名单. GET /v1/accounts/{a}/transactions 财务报告和审定财务报表 GET /v1/accounts/{a}/transactions/trc20,两者 limit, (中文(简体) ), order_by=block_timestamp,desc, (中文(简体) ), fingerprint 继续并 min_timestamp 何时 since 由 txID: a 合并而成 TriggerSmartContract 加上它的TRC-20是一行 ChainTx 其标志性腿出自TRC-20排行token =合同, standard: 'trc20', (中文(简体) ), symbol, (中文(简体) ), decimals 从 token_info) (中文(简体) ). 仅从TRC-20列表中得知的转会(有人的电话将信使移到地址)是自己的一行: confirmed,没有 fee,没有 call,没有 block。 。 。 . TransferContract ——本地转移和 nativeValue· ; TransferAssetContract * 与TRC-10 id的转会 token· ; TriggerSmartContract → call.to =合同(基数58), call.selector = 前4个字节 data, (中文(简体) ), call.data =: 0x + 数据, call.method = 'transfer' 页:1 a9059cbb, (中文(简体) ), nativeValue =: call_value其他系统合同(冻结、表决、代表.) call.method =合同类型, call.to =接受者或拥有者. internal_transactions 与TRX调用值成为本土转移. fee =: ret[0].fee (倒计时) net_fee + energy_fee, (中文(简体) ), status 从 contractRet, (中文(简体) ), block =: blockNumber。 。 。 .

咒语. 每个名单都按自己的内容阅读 meta.fingerprint。一个交易的行共享块时间戳,所以一个页面从两个列表中取下个时间戳的行,通过txID将其合并并按txID顺序发出;当它们不适合时 limit,页面结束在时间戳内。 光标是基数64 JSON { v: 2, n, s: { tx, trc20 }, t?, g? }: 每个 API 请求的行 n 采取的立场(适用于整个清单,不论 limit 之后的几页询问),每个列表中,各页所持未读行的指纹,以及其中被消耗的指纹数量(cnull 加上——仅部分散发的时间戳——其价值 t 及其已发行的交易 g。没有丢失或重复,但许多行都共享时间戳;一个指纹的API不会推进(一个网关丢弃参数)结束列表,而不是循环,一个呼叫中一个列表的500多页无法通过 HistoryUnavailableError (光标仍然可用)而不是剪去列表; a v: 1 拒绝使用早先版本的光标(再次开始列表).

单笔交易. POST /wallet/gettransactionbyid + 键 POST /wallet/gettransactioninfobyid (两项请求):准确 fee, (中文(简体) ), status 从 receipt.result,从信息中阻断/时间,解码为 TRC-20 从 Transfer 日志(符号 / 小数未知)。 信息端点是 没有 在列表时被调用——仅限TRC-20行的收费保持不变(由对方支付),地址自身交易的收费已经在列表行中.

装入 test/fixtures/history/ 2026年10月14日从 api.trongrid.io (无键,有节奏):测试钱包的 /transactions 页面(TRX入/出,TRC-10空投)及其空出 /trc20 由于测试钱包没有TRC-20或合同活动 TCanhfMgr9RsFRoxkJ8YkJD8Faha85a14p (钱包对应方:USDT) transfer 通过 TriggerSmartContract)和全节点 gettransactionbyid 编号 : gettransactioninfobyid 那笔UDT的转帐 目前还没有协议模块确认Tron交易,所以没有识别器交叉检查.

版本与发布记录

@anywalletkit/wallet-tron 共发布 13 个版本,首次发布于 2026/10/25;过去 12 个月发布了 13 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.6.2latest2026/11/034 天前
0.6.12026/10/308 天前
0.6.02026/10/309 天前
0.5.02026/10/2810 天前
0.4.12026/10/2811 天前
0.4.02026/10/2711 天前

关于 @anywalletkit/wallet-tron 的常见问题

@anywalletkit/wallet-tron 是什么?

Any Walet Kit的Tron钱包:BIP-32m/44'/195'/0'/0/i帐号,TRX和TRC-20根据全节点HTTP API进行转帐,没有tronweb.

如何安装 @anywalletkit/wallet-tron?

在项目目录运行 npm install @anywalletkit/wallet-tron,或使用 pnpm add / yarn add / bun add。

@anywalletkit/wallet-tron 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@anywalletkit/wallet-tron 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@anywalletkit/wallet-tron 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@anywalletkit/wallet-tron 可以商用吗?

@anywalletkit/wallet-tron 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@anywalletkit/wallet-tron 的下载量有多少?

根据 npm 官方下载统计,@anywalletkit/wallet-tron 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,508 次,日均约 84 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@anywalletkit/wallet-tron 还在维护吗?

最新版本 0.6.2 发布于 2026/11/03(4 天前);至今共发布 13 个版本,其中过去 12 个月发布了 13 个;首次发布于 2026/10/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。