Ganache地址参数被覆盖Web3 -0.2

时间:2018-05-14 02:42:06

标签: javascript blockchain ethereum solidity web3

当我运行dapp时,任何人都知道为什么我的参数似乎被忽略了?

当我按下按钮向我在使用dapp时输入HTML表格的地址的ganache帐户发送X金额时,会调用此函数。

    App.contracts.EthereumPractice.deployed().then(function (instance) {
        return instance.sendMoney.sendTransaction(addressInput.value, {
             from: web3.eth.accounts[0],
             value: etherAmount
        }); 
    },

我非常有信心^ etherAmount变量不是问题,因为资金被发送,它只是被发送到错误的地方(合同地址不是导入的ganache帐户地址)。

我的可靠性函数接受一个地址参数并将钱转移到该地址参数值,那么我在Web3部分做错了什么?

对于那些只想仔细检查

的人来说,这是一个坚实的功能
function sendMoney(address _sendToThisAddress) public {
    _sendToThisAddress.transfer(this.balance);
}

当我的元掩码弹出时,它会忽略地址参数,而是直接将钱转移到合同地址而不是转移到ganache帐户地址,我正试图将钱汇到。

1 个答案:

答案 0 :(得分:1)

您的代码存在一些错误。您必须将该功能标记为payable并且您要转移合同的全部余额,而不是您要发送的内容。当您将以太网发送到payable函数时,以太符合合同。然后,您可以将其(或不同的金额)发送到另一个地址。如果您尝试将客户端发送的确切内容发送到地址参数,则应执行以下操作:

function sendMoney(address _sendToThisAddress) public payable {
    _sendToThisAddress.transfer(msg.value);
}