Mist

Mist 0.8.6 中的事務未通過

  • April 26, 2017

我已將 Mist-wallet 更新到最新的0.8.6 版本,並且在使用此版本在公共網路上工作之前,我試圖在我的測試網路上執行契約。當我使用 Mist 建議的費用執行契約時,它說

看來您的交易將失敗。如果你送出它,它可能會消耗你發送的所有gas。

我什至在 Mist 中提供了最高可用費用,即1.0541272 ether在確認頁面上我看到提供最高費用為0.02550988 ether (121000 gas)。但仍然在確認頁面上遇到相同的錯誤消息。

這通常是eth.estimateGas(...)函式呼叫檢測到的錯誤,該呼叫返回一個結果,gasUsed==gas正如您在如何估計沒有任何輸入參數的函式的氣體?.

您可以在mist.en.i18n.json#L193看到 Mist 錯誤消息:

"estimatedGasError": "It seems this transaction will fail. If you submit it, it may consume all the gas you send.",

estimatedGasError錯誤消息由sendTransactionConfirmation.html#L56-L66處的程式碼顯示:

{{#if transactionInvalid}}
   <p class="info dapp-error"> {{{i18n "mist.popupWindows.sendTransactionConfirmation.estimatedGasError"}}} </p>
{{else}}
...
{{/if}}

transactionInvalid狀態由sendTransactionConfirmation.js#L259-L263處的程式碼計算:

'transactionInvalid': function() {
   return TemplateVar.get('estimatedGas') == 'invalid' 
           || TemplateVar.get('estimatedGas') == 0
           || typeof TemplateVar.get('estimatedGas') == 'undefined';
}

您可能需要檢查您的智能合約程式碼以找出引發錯誤的原因。

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