TRON Developer Hub CN

TRON开发者中心

欢迎来到TRON开发者中心。您将找到全面的指南和文档,以帮助您尽快开始使用TRON Developer Hub,并在遇到困难时提供支持。让我们跳进去吧!

Get Started    

入门_old

什么是 Tron-Web?

Tron-Web 旨在提供受以太坊 Web3 实施影响的统一无缝开发体验。 我们扩展了 Web3 的核心概念,以释放TRON 独特函数集的函数,并提供在浏览器,Node.js 和 IoT 设备中集成 DApps 的新工具。

安装 Tron-Web

您可以使用 NPM 上的最新版本或下载最新的可分发的 js 文件来安装 Tron-Web。

Releases

npm 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()

host

节点的主机URI

timeout

30000

调度请求时的可选默认超时

user

false

用户身份验证的可选用户名

password

false

用户认证的可选密码

headers

{}

要传递给请求的可选标头

statusPage

'/'

检查节点是否已连接时要查询的可选状态页面

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 about a year ago

入门_old


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.