Solidity
address.send() 返回 ’true’ 但交易沒有發生
我正在嘗試將乙太幣從合約發送到另一個地址。我用的
send
方法做到了。函式返回true
,但交易根本沒有發生。契約中肯定有很多餘額。這是我的契約程式碼。
contract Betting { address public ac2 = 0xCB87BDB88EEF4ABC66AE6F1A131D41021C145863; address public myaccount = this; bool public transferStatus = false; event Transfer(address _from, uint256 _value); event TransferTo(address _to, uint256 _value); function Betting() { } function sendEther() payable returns (uint) { return msg.value; } function () payable { Transfer(msg.sender, msg.value); } function reward() payable returns (bool) { transferStatus = ac2.send(0.05 ether); TransferTo(ac2, 0.05 ether); return transferStatus; }
編輯:我發現從契約中呼叫的交易將被儲存為內部交易。有趣的是,我的合約在Etherscan中甚至沒有內部交易選項卡
有時 etherscan 需要一段時間才能顯示內部交易。但最終一切都來了。程式碼中沒有錯誤。