Solidity

Remix IDE 獲取 VM 錯誤無效操作碼

  • September 30, 2019

我正在嘗試使用 chrome 中的 Remix IDE 在 javascriptVM 上部署測試合約。但是,當我嘗試執行契約時,我會在狀態部分收到此消息。

“事務到 Notes.addNote 出錯:VM 錯誤:無效的操作碼。無效的操作碼執行可能已經拋出。調試事務以獲取更多資訊。”

如果我的程式碼有什麼問題,請告訴我..

無效的操作碼可能是以下任一執行時操作的結果:

  1. assert表達式的計算結果為false
  2. array[i]在哪裡i >= array.length

在您的程式碼中,只有第二個選項似乎可行。

它在表達式中是可行的userNotes[msg.sender][_noteId]

所以錯誤一定是_noteId >= userNotes[msg.sender].length.

這可能是因為有一些數組迭代超出了範圍。無效的操作碼錯誤僅在這種情況下出現(儘管對我來說)。

區塊鍊和智能合約的新手!!!如我錯了請糾正我。

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