Contract-Debugging

契約中的操作碼無效是否正常?

  • May 2, 2019

我正在調試我的智能合約,雖然我沒有遇到無效操作碼錯誤,但我在部署的合約中看到了很多無效的操作碼。螢幕截圖來自混音調試器。在你的合約中有這些無效的操作碼是正常的嗎?我想這可能是因為我的契約沒有考慮一些可能導致失敗的邊緣情況。

那麼,如果在一個完美的世界裡,一份完美的合約,是否意味著合約中不會有任何無效的操作碼?

在此處輸入圖像描述

某些操作碼(如 PUSH)具有可變長度,因此調試器可能在某些操作碼的中間開始解碼,並且正在讀取數據而不是有效的操作碼。

此外,如果您跳出契約有效範圍,它可能會顯示無效的操作碼。

答: 0xfe 是用於引發內部異常的無效操作碼。可能在字節碼末尾的其他無效操作碼與元數據有關。

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