Javascript 如何通过调用编码函数获取智能合约的返回值

Javascript 如何通过调用编码函数获取智能合约的返回值,javascript,node.js,ethereum,web3js,Javascript,Node.js,Ethereum,Web3js,我对智能合约的函数进行了编码,该函数具有methodID和参数,即0xF7EA7A3D4000000000000000015000000000000FF7F0000B200000000F7EA7A………..。假设在这个编码函数中,还有两个参数,一个是uint,另一个是字符串。这个编码函数实际上是我合同的一个getter(不改变状态)(在ABI中是指它的stateMutability=view),并且它还返回一个值,即totalSupply。现在,我想通过web3js/nodejs调用这个函数,如

我对智能合约的函数进行了编码,该函数具有methodID和参数,即
0xF7EA7A3D4000000000000000015000000000000FF7F0000B200000000F7EA7A………..
。假设在这个编码函数中,还有两个参数,一个是uint,另一个是字符串。这个编码函数实际上是我合同的一个getter(不改变状态)(在ABI中是指它的stateMutability=view),并且它还返回一个值,即
totalSupply
。现在,我想通过web3js/nodejs调用这个函数,如下所示。正如预期的那样,这段代码为我提供了事务收据/哈希,但我有兴趣检索getter函数返回值,即
totalSupply

试试看{
等待web3.eth.sendTransaction(
{
发件人:account1,
致:myContAddr,
资料来源:myFunc
}).然后(功能(res){
log(“普通Getter”,res);
});
}捕获(错误){
log(“普通getter:ERROR!”);
}
一个可能的解决方案是从给定的编码函数及其参数(但我不知道如何解码参数)中提取函数签名/methodID(这对我来说很容易),然后像这样调用函数。。i、 e

试试看{
res=wait mycontractionstance.methods[myFuncID](?).call({from:account1})//不带参数
log(“Getter输出”,res);
}捕获(错误){
log(“Getter输出:ERROR!”,ERROR);
}
所以,我的问题是

  • 如何从上述编码函数中解码参数,以按照我提到的解决方案进行(如果我的解决方案是正确的)
  • 或者有没有其他可行/简单的过程来调用这样的编码(getter)函数