Solidity
虛擬機錯誤:還原。嘗試將乙太幣從合約發送到另一個合約
我在這裡遇到了一個小問題,即通過msg.sender值將一些乙太幣從Sender合約發送到另一個Escrow合約。
順便說一句,我在 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 錯誤:還原。
事務已恢復到初始狀態。
感謝您的幫助!
您需要在
Escrow
合約中添加一個payable
備份功能來接受或拒絕資金:function() external payable { // you can reject the funds (assert/require/revert) under certain conditions... }