入门
什么是 Tron-Web?
Tron-Web 旨在提供受以太坊 Web3 实施影响的统一无缝开发体验。 我们扩展了 Web3 的核心概念,以释放TRON 独特函数集的函数,并提供在浏览器,Node.js 和 IoT 设备中集成 DApps 的新工具。
安装 Tron-Web
您可以使用 NPM 上的最新版本或下载最新的可分发的 js 文件来安装 Tron-Web。
Releasesnpm install tronweb
版本说明对于最新的 Java-Tron Odyssey 3.2 版本,最低兼容 TronWeb 版本是 TronWeb 2.1.11。请确保您已安装此版本。
Creating an Instance
TronWeb 需要提供 全节点 和 Solidity 节点。 这些节点必须运行 HTTP API。 如果您希望监听智能合约记录的事件,则可以选择指定事件服务器。
Tron-Web 类
Tron-Web 类至少需要两个参数,最多四个。 需要完整节点和可靠性节点端点,而事件服务器端点是可选的。 您可以传递私钥作为签署交易时使用的第四个参数。
import TronWeb from 'tronweb'
const fullNode = 'https://api.trongrid.io';
const solidityNode = 'https://api.trongrid.io';
const eventServer = 'https://api.trongrid.io/';
const privateKey = 'da1463745fff9f...0d0';
const tronWeb = new TronWeb(
fullNode,
solidityNode,
eventServer,
privateKey
);提供方
提供商用于提供请求的传输方法。 目前,Tron-Web 仅支持单一传输 - HTTP。
HTTP提供方
如果您希望为节点端点提供更多选项,例如用户身份验证或自定义标头,则可以传递 TronWeb.providers.HttpProvider 实例。
constructor() | ||
|---|---|---|
| 节点的主机URI | |
|
| 调度请求时的可选默认超时 |
|
| 用户身份验证的可选用户名 |
|
| 用户认证的可选密码 |
|
| 要传递给请求的可选标头 |
|
| 检查节点是否已连接时要查询的可选状态页面 |
import TronWeb from 'tronweb'
const HttpProvider = TronWeb.providers.HttpProvider;
const fullNode = new HttpProvider('https://api.trongrid.io:8090', 'root', 'alpine');
const solidityNode = new HttpProvider('https://api.trongrid.io:8091', 'root', 'alpine');
const tronWeb = new TronWeb(
fullNode,
solidityNode,
eventServer
);默认值
Tron-Web允许您为获取、创建和分派事务设置许多默认值。
setDefaultBlock(blockID = false)
这允许您设置查询交易时使用的默认块(哈希或数字)(在某些情况下,创建)。
setPrivateKey(privateKey = false)
设置后,此私钥将签署交易,而无需将私钥参数传递给每个函数调用。
setAddress(address = false)
用于创建未签名的交易。 这将填充HTTP API创建的每笔交易的 owner_address 属性。 如果您调用 setPrivateKey()则会自动设置。
承诺 vs. 回调
Tron-Web 被设计为尽可能与以太坊的 Web3 实现兼容。 这意味着我们支持大多数函数的回调。
这并不意味着Tron-Web受到任何形状或形式的限制。 这意味着我们也支持承诺。 默认情况下,调用函数将返回一个承诺。 如果您提供回调函数,则不会返回承诺,而回调将充当响应触发器。
const tronWeb = new TronWeb(fullNode, solidityNode);
const app = async () => {
const userBalance = await tronWeb.trx.getBalance(userAddress);
console.log(`User's balance is: ${ userBalance }`);
};
app();const tronWeb = new TronWeb(fullNode, solidityNode);
tronWeb.trx.getBalance(userAddress).then(userBalance => {
console.log(`User's balance is: ${ userBalance }`);
}).catch(error => {
console.error(error);
});const tronWeb = new TronWeb(fullNode, solidityNode);
tronWeb.trx.getBalance(userAddress, (error, userBalance) => {
if(error)
return console.error(error);
console.log(`User's balance is: ${ userBalance }`);
});*注意: 如果方法采用可选参数,请不要担心 -提供的最后一个参数将始终被视为回调。
测试 TronWeb要测试 TronWeb API 函数,最好使用在本地计算机上设置专用网络。 TRON Docker 快速入门指南。 Docker 指南在您的计算机上设置完整节点,Solidity 节点和事件服务器。然后,您可以在网络上部署智能合约,并通过 TronWeb 与它们进行交互。如果您希望与其他用户一起测试 TronWeb,最好在 Shasta 测试网络上部署合同/ DApp 并从那里进行交互。
Updated 9 months ago