Metamask

該交易預計會失敗。嘗試執行它預計會很昂貴但會失敗,因此不推薦

  • February 12, 2022

Metamask 給了我這個錯誤。我在 ropsten 網路上,我以前從未遇到過這個問題,而且我有足夠的資金:

在此處輸入圖像描述

我已經嘗試了多次仍然得到同樣的錯誤。雖然它說“無論如何我都會嘗試”,但confirm按鈕被禁用

可能發生的情況是 Metamask 使用相同的參數對合約進行靜態呼叫,以模擬交易發生時會發生什麼。如果它注意到靜態呼叫恢復了,它會給你這個錯誤——因為很可能真正的事務也會恢復。

所以很可能程式碼中有一些東西會導致給定參數的恢復。

問題出在我的 json 數據上。我purchaseBook在javascript中的函式中有這段程式碼:

const hexBookId = web3.utils.utf8ToHex(book.id);

在前三個項目的 json.data 中,我有正確的 id 類型: "id": "2". 我可以成功購買前 3 本書。在第三個之後,我有了這個

 "id": 4 

所以當我點擊購買按鈕時,我得到了錯誤。我更正了json數據

"id": "4"

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