Ganache 地址参数被覆盖 Web3 -0.2
Ganache Address Parameter Being Overrided Web3 -0.2
有人知道为什么我 运行 dapp 时我的参数似乎被忽略了吗?
当我按下按钮将 X 金额的钱发送到我在使用 dapp 时输入 HTML 表格的地址的 ganache 帐户时,将调用此函数。
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);
}
当我的元掩码弹出时,它会忽略地址参数,而是将钱直接转移到合约地址,而不是我试图汇款到的导入 ganache 帐户地址。
您的代码有几个错误。您必须将函数标记为 payable
并且您正在转移合同的全部余额,而不是您发送的内容。当您将以太币发送到 payable
函数时,以太币归合约所有。从那里,您可以将它(或不同的金额)发送到另一个地址。如果您尝试准确地发送从您的客户端发送到地址参数的内容,您应该执行以下操作:
function sendMoney(address _sendToThisAddress) public payable {
_sendToThisAddress.transfer(msg.value);
}
有人知道为什么我 运行 dapp 时我的参数似乎被忽略了吗?
当我按下按钮将 X 金额的钱发送到我在使用 dapp 时输入 HTML 表格的地址的 ganache 帐户时,将调用此函数。
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);
}
当我的元掩码弹出时,它会忽略地址参数,而是将钱直接转移到合约地址,而不是我试图汇款到的导入 ganache 帐户地址。
您的代码有几个错误。您必须将函数标记为 payable
并且您正在转移合同的全部余额,而不是您发送的内容。当您将以太币发送到 payable
函数时,以太币归合约所有。从那里,您可以将它(或不同的金额)发送到另一个地址。如果您尝试准确地发送从您的客户端发送到地址参数的内容,您应该执行以下操作:
function sendMoney(address _sendToThisAddress) public payable {
_sendToThisAddress.transfer(msg.value);
}