无法通过元掩码传递多个变量 - 异步错误

时间:2018-04-21 21:41:09

标签: solidity web3js web3

我在metamask中收到错误“MetaMask Web3对象不支持没有回调参数的eth_sendTransaction等同步方法。”
我试图将三个参数传递给一个solidity函数,但我试图插入的回调似乎不起作用?

下面是js代码,只是一个按钮和HTML

中变量的3个标签
$('#proposalbutton').click(function() {
    log("Calling add proposals...");
    community.newProposal($("#address").text(), $("#coinAmount").val(), 
                          $("#jobDescription").text()), (err, res) =>{
        if (!err) {
            log("Proposals call executed successfully.");;
        }
    }
});

有谁可以指出我做错了什么?我无法弄清楚回调。 下面是solidity函数标题

function newProposal(
    address beneficiary,
    uint coinAmount,
    string jobDescription
)
onlyMembers public
returns (uint proposalID)

1 个答案:

答案 0 :(得分:0)

回调是您的Solidity合约参数后发送的最后一个参数。看起来你只是在函数参数列表后关闭newProposal

community.newProposal($("#address").text(), $("#coinAmount").val(), 
                      $("#jobDescription").text(), (err, res) => {
    if (!err) {
        log("Proposals call executed successfully.");;
    }
});

附加说明:事务方法不会返回值。您的回复中不会得到proposalID。使用事件或将结果存储在合同状态中,然后使用view函数将其返回。