Solidity
當合約餘額 > 0 時 this.balance 的操作碼無效
當我在 Remix 中呼叫 getBalance 並且合約餘額大於 0 時出現異常(即我使用回退函式發送了一些乙太幣):
執行期間異常。(無效的操作碼)。請調試事務以獲取更多資訊。
當合約餘額為 0 時,getBalance 正確返回 0。
pragma solidity ^0.4.0; contract Test { function() payable {} function getBalance() public constant returns(uint bal) { bal = this.balance; return bal; } }
您的程式碼中沒有錯誤,我認為在使用
fallback
您呼叫getbalance
具有非空值的函式的函式向您的合約發送交易後。雖然 getbalance 不是應付函式,但您會收到上述錯誤。因此,在呼叫 getbalance 之前,請確保 remix 交易值中的值為 0:
我有類似的問題。我認為這是瀏覽器記憶體問題。嘗試刷新頁面,但首先複製合約地址,以便稍後通過點擊“地址”按鈕觀看。