Mapping

要求 bytes32 映射為空,為什麼我的交易失敗?

  • January 11, 2022

我這裡有合約:合約原始碼

這是一個簡單的方法,它允許使用者使用 bytes32 變數創建新的 key:value 映射,並根據以下條件更新鍵的值:

  1. 密鑰擁有(最初由)msg.sender
  2. 映射不是空的(我通過這樣做來表達require(items[key] != 0)

但是,即使使用者是最初設置 key:value 並且它不為空的使用者,我在嘗試更新時也會恢復交易。誰能告訴我為什麼?謝謝。

在上面恢復的 tx 中,您setItem再次呼叫失敗,因為可能試圖覆蓋已設置的值。使用溫柔的儀表板檢查事務以獲得更深入的日誌和更容易的調試。

除此之外,您的契約按預期工作(設置值 tx更改值 tx

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