TonWebProvider使用教程:连接TON节点与处理区块链数据
【免费下载链接】tonweb JavaScript SDK for TON (The Open Network) 项目地址: https://gitcode.com/gh_mirrors/to/tonweb
TonWeb是一个强大的JavaScript SDK,专为The Open Network (TON)区块链设计,让开发者能够轻松连接TON节点并处理区块链数据。本教程将详细介绍如何使用TonWeb中的HttpProvider组件,帮助你快速搭建与TON网络的连接,实现数据查询、交易发送等核心功能。
快速了解HttpProvider
在TonWeb中,HttpProvider是连接TON节点的核心组件,它负责处理与TON节点的通信。通过HttpProvider,你可以轻松调用TON节点提供的各种API方法,获取区块链数据或发送交易。
查看源码:src/providers/index.js
核心功能
- 连接TON节点并发送API请求
- 获取账户信息、余额和交易历史
- 调用智能合约的get方法
- 发送交易到TON网络
- 获取区块链配置和区块信息
安装与初始化
准备工作
首先,确保你已经安装了Node.js环境。然后通过以下命令克隆TonWeb仓库:
git clone https://gitcode.com/gh_mirrors/to/tonweb
cd tonweb
npm install
初始化HttpProvider
初始化HttpProvider非常简单,只需指定TON节点的API地址即可:
const TonWeb = require('tonweb');
const tonweb = new TonWeb(new TonWeb.HttpProvider('https://toncenter.com/api/v2/jsonRPC'));
如果你需要使用API密钥(例如在访问某些受限节点时),可以这样初始化:
const tonweb = new TonWeb(new TonWeb.HttpProvider('https://testnet.toncenter.com/api/v2/jsonRPC', {apiKey: '你的API密钥'}));
常用功能详解
获取账户信息
使用getAddressInfo方法可以获取指定地址的基本信息,包括余额、代码、数据等:
async function getAddressInfoExample() {
const address = 'EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N';
const info = await tonweb.provider.getAddressInfo(address);
console.log('账户信息:', info);
}
getAddressInfoExample();
对于钱包账户,推荐使用getWalletInfo方法,它能解析更多钱包特定的信息:
const walletInfo = await tonweb.provider.getWalletInfo(address);
查询余额
要获取账户余额,可以使用getBalance方法:
async function getBalanceExample() {
const address = 'EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N';
const balance = await tonweb.provider.getBalance(address);
console.log('账户余额:', balance, 'nanograms');
console.log('转换为TON:', balance / 1e9);
}
getBalanceExample();
获取交易历史
使用getTransactions方法可以获取账户的交易历史:
async function getTransactionsExample() {
const address = 'EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N';
const transactions = await tonweb.provider.getTransactions(address, 10); // 获取最近10笔交易
console.log('交易历史:', transactions);
}
getTransactionsExample();
调用智能合约方法
通过call2方法可以调用智能合约的get方法,获取合约状态或执行只读操作:
async function callContractMethodExample() {
const contractAddress = 'EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N';
const methodName = 'get_total_supply';
const result = await tonweb.provider.call2(contractAddress, methodName);
console.log('合约方法返回结果:', result);
}
callContractMethodExample();
发送交易
要发送交易,需要先将交易打包成BOC格式,然后使用sendBoc方法发送:
async function sendTransactionExample(bocBase64) {
try {
const result = await tonweb.provider.sendBoc(bocBase64);
console.log('交易发送成功:', result);
return result;
} catch (error) {
console.error('交易发送失败:', error);
throw error;
}
}
// sendTransactionExample('你的BOC数据');
高级应用
获取区块链配置
使用getConfigParam方法可以获取TON网络的配置参数:
async function getConfigExample() {
const configParamId = 1; // 配置参数ID
const configCell = await tonweb.provider.getConfigParam(configParamId);
console.log('配置参数:', configCell);
}
getConfigExample();
区块信息查询
获取主链信息:
async function getMasterchainInfoExample() {
const info = await tonweb.provider.getMasterchainInfo();
console.log('主链信息:', info);
}
getMasterchainInfoExample();
获取特定区块的头部信息:
async function getBlockHeaderExample() {
const masterchainBlockNumber = 27000000;
const header = await tonweb.provider.getMasterchainBlockHeader(masterchainBlockNumber);
console.log('区块头部信息:', header);
}
getBlockHeaderExample();
错误处理与调试
在使用HttpProvider时,合理的错误处理非常重要:
async function safeAPICall() {
try {
const address = 'EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N';
const info = await tonweb.provider.getAddressInfo(address);
return info;
} catch (error) {
console.error('API调用失败:', error);
// 根据错误类型进行不同处理
if (error.code === 404) {
console.log('地址不存在或尚未激活');
} else if (error.code === 503) {
console.log('节点暂时不可用,请稍后再试');
}
throw error;
}
}
总结
通过本教程,你已经了解了TonWeb中HttpProvider的基本使用方法,包括初始化、获取账户信息、查询余额、获取交易历史、调用智能合约方法以及发送交易等核心功能。HttpProvider作为TonWeb与TON节点通信的桥梁,为开发者提供了便捷的API接口,大大降低了与TON区块链交互的难度。
要深入了解更多功能,可以查看源代码中的详细注释和方法定义:src/providers/index.js。结合TonWeb的其他模块,你可以构建出功能强大的TON区块链应用。
【免费下载链接】tonweb JavaScript SDK for TON (The Open Network) 项目地址: https://gitcode.com/gh_mirrors/to/tonweb
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



