高负载钱包合约 v2 在 ton 区块链中的实现

本文介绍了 TON 区块链(The Open Network)中高负载钱包合约 V2 的技术细节。 该合约旨在提高交易处理的效率和速度,适用于大规模的交易场景。

1. 合约概览

1.1 层次结构

1.2 主要属性

属性名称 类型 描述 定义位置
address Address 钱包地址 HighloadWalletV2.ts:38
init { code: Cell; data: Cell; } 初始化数据,包括代码和数据 [HighloadWalletV2.ts:40](https://github.com/ndatg/ton-highload-wallet-contract/blob/ 50365e0/src/HighloadWalletV2.ts#L40)
publicKey Buffer 公钥 HighloadWalletV2.ts:37
walletId number 钱包ID HighloadWalletV2.ts:39
workchain number 工作链ID HighloadWalletV2.ts:36

1.3 主要方法

方法名称 返回类型 描述 定义位置
createTransfer { body: Cell; queryId: bigint; } 创建转账交易 [HighloadWalletV2.ts:116](ton-highload-wallet-contract/src at 50365e0678c8d03eb4af1803933b966264956cbe · ndatg/ton-highload-wallet-contract · GitHub HighloadWalletV2.ts#L116)
getBalance Promise 获取钱包余额 HighloadWalletV2.ts:68
getProcessed Promise 获取交易处理状态 HighloadWalletV2.ts:84
getPublicKey Promise 获取钱包公钥 HighloadWalletV2.ts:76
send Promise 发送签名转账交易 HighloadWalletV2.ts:95
sendTransfer Promise 签名并发送转账交易 [HighloadWalletV2.ts:

102](ton-highload-wallet-contract/src/HighloadWalletV2.ts at 50365e0678c8d03eb4af1803933b966264956cbe · ndatg/ton-highload-wallet-contract · GitHub) |
| sender | Sender | 创建发送器 | HighloadWalletV2.ts:139 |

2. 使用示例

2.1 创建合约实例

import { HighloadWalletContractV2 } from 'ton-highload-wallet-contract';

const publicKey = Buffer.from('公钥');
const walletId = 1;
const workchain = 0;

const wallet = HighloadWalletContractV2.create({
   publicKey,
   walletId,
   workchain
});

2.2 获取钱包余额

const balance = await wallet.getBalance(provider);
console.log(`余额: ${balance}`);

2.3 发送转账交易

const transferArgs = {
   messages: [/* 转账信息 */],
   secretKey: Buffer.from('私钥')
};

const queryId = await wallet.sendTransfer(provider, transferArgs);
console.log(`交易ID: ${queryId}`);

3. 结论

高负载钱包合约 V2 是 TON 区块链中一个重要的技术组件,旨在提高交易处理的效率和速度。 通过该合约的使用,开发者可以更轻松地实现大规模交易处理的需求。

1 Like

有沒有在 Highload Wallet 上執行多個內容?比如說多筆. Txs + 多個 payload

请教下钱包是如何保证交易顺序和唯一性的啊,在eth上是通过nonce来实现的,ton有类似机制吗?