Mist

Mist 測試網錯誤“似乎此交易將失敗”

  • August 10, 2017

我對乙太坊非常陌生,只是使用測試網完成了一些早期教程。我的版本是最新的;區塊鏈也是最新的;我在密鑰庫中只有一個帳戶,即主帳戶。

當我嘗試部署一個簡單的合約(或任何與此相關的合約 - 包括 ethereum.org 上的範例)時,程式碼可以正確編譯:

在此處輸入圖像描述

當我繼續點擊部署合約時,確認彈出視窗給了我這個錯誤:“看來這個交易會失敗。如果你送出它,它可能會消耗你發送的所有氣體”

在此處輸入圖像描述

無論我發送 1 eth 還是 20eth,也無論我選擇的費用金額如何,它都會給我這個錯誤。

如果我繼續按,合約似乎是在霧錢包 UI 上創建的,但在交易下方出現另一條錯誤消息,基本上沒有數據到達區塊鏈:“合約地址上沒有部署數據!”。

如果這是基本的,我很抱歉。我已經掃描了以前的問題,它們要麼沒有完全涵蓋這種情況,要麼有一個對我不起作用的修復(比如在部署之前重新選擇 FROM 帳戶)

提前謝謝了。

您不能將乙太幣發送到此建構子,否則它會因設計而失敗。如果您想要相反的行為,那麼您在函式中指定關鍵字“payable”。它有助於防止錯誤的交易將乙太幣發送給合約而沒有希望恢復它。

希望能幫助到你。

更新:

為清楚起見的範例。

pragma solidity ^0.4.2;
contract Example {

  string public brandName;

  function Example(string yourCompanyName) payable { // <--- here    
      brandName = yourCompanyName;
  }

}

如前所述,沒有辦法讓合約發送乙太幣,因此存放在那裡的任何資金都被擱置了。我們可以通過一個簡單的不分青紅皂白的撤銷功能來解決這個問題。

function withdraw(uint amount) public returns(bool success) {
  if(!msg.sender.send(amount) throw;
  return true;
}

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