Mist
Mist 測試網錯誤“似乎此交易將失敗”
我對乙太坊非常陌生,只是使用測試網完成了一些早期教程。我的版本是最新的;區塊鏈也是最新的;我在密鑰庫中只有一個帳戶,即主帳戶。
當我嘗試部署一個簡單的合約(或任何與此相關的合約 - 包括 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; }