method.call()

调用智能合约的pureview 方法。注意:该调用不会更改智能合约状态。

用法

//用法 1
let contract = await tronWeb.contract.at('contractAddress'); 
let result = await contract.function_name(para1,para2,...).call();

//用法 2
let contract = await tronWeb.contract.at('contractAddress'); 
let result = await contract["function_name"](para1,para2,...).call();

参数类型

如果合约的ABI在链上,则无需传递参数
如果合约的ABI不在链上,则需传入{_isConstant: true}

返回值

Object

示例

//示例 1
async function triggercontract(){
   let instance = await tronWeb.contract().at('TBBp5VF2q73hfMUoyxr138Kx3kbsi6HQRS');
   let res = await instance.totalSupply().call();
   console.log(res);
}
triggercontract();

//示例 2
async function triggercontract(){
   let instance = await tronWeb.contract().at('TBBp5VF2q73hfMUoyxr138Kx3kbsi6HQRS');
   let res = await instance["totalSupply"]().call();
   console.log(res);
}
triggercontract();

//示例 3:合约ABI不在链上,则需手动录入ABI
async function triggercontract(){
   let instance = await tronWeb.contract().at('TBBp5VF2q73hfMUoyxr138Kx3kbsi6HQRS');
   instance.loadAbi([{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"}]);
     let res = await instance.totalSupply().call({_isConstant:true})
   console.log(res);
}
triggercontract();