调用智能合约的pure
或 view
方法。注意:该调用不会更改智能合约状态。
用法
//用法 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();