address.transfer(msg.value) 有效,但 address.transfer(100000) 无效
address.transfer(msg.value) works but address.transfer(100000) does not work
contract Milestone {
address payable contractAddress = payable(msg.sender);
function payContractor() payable public {
address payable recipient =
payable(0x0A098Eda01Ce92ff4A4CCb7A4fFFb5A43EBC70DC);
recipient.transfer(5000000000000);
}
}
如果我使用 recipient.trasnfer(msg.value) 并在 remix 中指定值,则上述功能有效。金额将从contractAddress中扣除并转给收款人。
但是,当我尝试指定特定金额时,上述函数会抛出以下错误:交易已恢复为初始状态。注意:如果您发送价值,并且您发送的价值应小于您的当前余额,则调用的函数应该是可支付的。调试交易以获取更多信息。
如果您使用的是 Remix IDE,则必须在 msg.value
文本框中输入值(在您的情况下为 5000000000000)并尝试调用您的函数。
这是 msg.value
文本框,将您的值放在这里:
contract Milestone {
address payable contractAddress = payable(msg.sender);
function payContractor() payable public {
address payable recipient =
payable(0x0A098Eda01Ce92ff4A4CCb7A4fFFb5A43EBC70DC);
recipient.transfer(5000000000000);
}
}
如果我使用 recipient.trasnfer(msg.value) 并在 remix 中指定值,则上述功能有效。金额将从contractAddress中扣除并转给收款人。
但是,当我尝试指定特定金额时,上述函数会抛出以下错误:交易已恢复为初始状态。注意:如果您发送价值,并且您发送的价值应小于您的当前余额,则调用的函数应该是可支付的。调试交易以获取更多信息。
如果您使用的是 Remix IDE,则必须在 msg.value
文本框中输入值(在您的情况下为 5000000000000)并尝试调用您的函数。
这是 msg.value
文本框,将您的值放在这里: