调用智能合约方法

TRON上智能合约方法的调用与以太坊基本一致,以下是一个具体例子,用于演示: - 调用智能合约方法,一次请求调用多个合约方法:

  function main() {
      let usdtAddress = "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"                  // token usdt contract address 
      let data1 = exchange.IO("encode", usdtAddress, "name")                  // call function: name
      let data2 = exchange.IO("encode", usdtAddress, "decimals")              // call function: decimals
      let data3 = exchange.IO("encode", usdtAddress, "balanceOf", "TKCG...")  // call function: balanceOf

      var data = []
      data.push([usdtAddress, data1])
      data.push([usdtAddress, data2])
      data.push([usdtAddress, data3])
      
      exchange.IO("abi", "TGXuuKAb4bnrn137u39EKbYzKNXvdCes98", `[{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct TronMulticall.Call[]","name":"calls","type":"tuple[]"}],"name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}],"stateMutability":"view","type":"function"}]`)
      let ret = exchange.IO("api", "TGXuuKAb4bnrn137u39EKbYzKNXvdCes98", "aggregate", data)
      Log("name:", exchange.IO("decode", "string", ret["returnData"][0]))
      Log("decimals:", exchange.IO("decode", "uint8", ret["returnData"][1]))
      Log("balanceOf:", exchange.IO("decode", "uint256", ret["returnData"][2]))
  }

输出内容:

  信息 balanceOf: 6890251
  信息 decimals: 6
  信息 name: Tether USD