Solidity

address.send() 返回 ’true’ 但交易沒有發生

  • January 25, 2018

我正在嘗試將乙太幣從合約發送到另一個地址。我用的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 需要一段時間才能顯示內部交易。但最終一切都來了。程式碼中沒有錯誤。

引用自:https://ethereum.stackexchange.com/questions/26881