甘纳许地址参数被覆盖 web3 -0.2



>有人知道为什么当我运行dapp时我的参数似乎被忽略了吗?

当我按下按钮向甘纳许帐户发送 X 金额时,将调用此函数,该帐户的地址我在使用 dapp 时输入到 HTML 表单中。

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

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

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

对于那些只想仔细检查的人来说,这是坚固性功能

function sendMoney(address _sendToThisAddress) public {
_sendToThisAddress.transfer(this.balance);
}

当我的元掩码弹出时,它会忽略地址参数,而是将钱直接转移到合约地址,而不是我试图将钱发送到的导入甘纳许账户地址。

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

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

最新更新