通过 TronWeb 集成 JustLend DAO 协议

Tronweb 是基于 TRON 的 JavaScript SDK。 它专为 Web 浏览器、Node.js 和物联网设备而设计。 如果你熟悉 web3,Tronweb 会给你带来同样精彩的体验。

安装

你可以使用npm或者yarn来安装Tronweb。

npm install tronweb
yarn add tronweb

初始化

请在其他操作之前,先创建一个Tronweb实例:

const TronWeb = require('tronweb')
const HttpProvider = TronWeb.providers.HttpProvider
// You may put your node ip:port for HttpProvider
// also, you may use TronGrid services for main net and test nets:
// main net: https://api.trongrid.io
// shasta test net https://api.shasta.trongrid.io
// nile test net: https://api.nileex.io
const fullNode = new HttpProvider("")
const solidityNode = new HttpProvider("")
const eventServer = new HttpProvider("") 
const privateKey = "your private key"
const tronWeb = new TronWeb(fullNode, solidityNode, eventServer, privKey)

与智能合约交互

您可以在 JavaScript 变量中加载智能合约。 以Comptroller为例:

// The main net address of Comptroller is : TJZi9eWzCLGBi9tuwvPxnaZTGa2iUpRc8v
const comptroller = tronWeb.contract().at("TJZi9eWzCLGBi9tuwvPxnaZTGa2iUpRc8v")

完成了。现在你可以调用comptroller中的方法了。

调用合约方法

Constant 调用

您可以使用 methodname.call() 调用pure方法和view方法。 以 getAccountLiquidity 为例:

const result = await comptroller.getAccountLiquidity("the account to calculate liquidity").call()

调用其他方法时,只需将getAccountLiquidity改为对应的方法名,在括号内输入正确的参数即可。

如果合约的 ABI 未存储在区块链上,应手动加载 ABI,需要添加 _isConstant: true ,如下所示。

comptroller.loadAbi(ABI JSON)
const result = await comptroller.methodname(params).call(_isConstant:true)

Trigger 调用

修改链上数据的调用称为trigger调用。 以 castVote() 为例:

const result = governorAlpha.castVote(proposalId,votes,support).send({
  feeLimit:10_000_000_000,
  callValue:0,
  shouldPollResponse:true
});

Trigger调用的可用参数:

参数描述

feeLimit

本次调用中可以使用的最大能量(以10^-6 TRX,即sun为单位) 请参照TRON能量说明

callValue

本次调用中发送的TRX数目(以10^-6 TRX,即sun为单位)

shouldPollResponse

如果设置为true,本次调用会在交易确认之后才返回结果

关于Tronweb的更多使用信息,请参考Tronweb文档

Last updated