我在这里面临一个小问题,就是通过msg.sender值将一些以太从发件人合同发送到另一个合同托管。
顺便说一句,我正在Remix上执行代码,并在调用sendEth()之后从发送方指定值。
pragma solidity ^0.5.11;
contract Sender {
event sent(
address indexed escrowAddress
);
function sendEth() external payable{
Escrow escrow = new Escrow();
address payable _payableEscrow = address(uint160(address(escrow)));
_payableEscrow.transfer(msg.value);
emit sent(_payableEscrow);
}
}
contract Escrow {
function getBalance() external view returns(uint256) {
return address(this).balance;
}
}还有IDK为什么我收到了这个错误:
处理Sender.sendEth错误: VM错误:还原。事务已恢复到初始状态。
谢谢你的帮助!
发布于 2020-02-10 15:11:38
您需要在Escrow合同中添加一个payable回退函数,以接受或拒绝资金:
function() external payable {
// you can reject the funds (assert/require/revert) under certain conditions...
}https://ethereum.stackexchange.com/questions/79772
复制相似问题