Truffle

未處理的拒絕(錯誤):無效的字元串值(arg=‘x’, coderType=‘string’, value=5)

  • December 31, 2021

用於拆箱Truffle unbox react樣板。

從執行中收到以下錯誤npm run start

變化:

  • "memory"在 simpleStorage.sol 中添加參數
  • 在 simpleStorage.sol中unit改為string
  • 調整埠地址以"7545"匹配 Ganache 的埠。
  • 改成mac truffle-config_truffle.js

除了這些變化之外,樣板文件仍然幾乎是準系統。

嘗試解決方案:

  • 解除安裝並重新安裝-glocal松露
  • 為需要特定編譯器的編譯指示嘗試了多種解決方案,但均無濟於事。<- (我確信這可能是問題所在。但是,我一整天都找不到這個錯誤,這告訴我這可能是其他問題,甚至在我到達之前。)
  • 嘗試從 solc 文件重新安裝和更新 brew。
  • 將 Ganache 更新到最新版本。
  • 為 truffle.js 中的編譯器對象建議的嘗試optimizer和屬性。versions
  • 嘗試完全擦除和重置,並truffle unbox react逐步遵循文件的文件而不是其他指南。

我會發布程式碼,但實際上,除了我列出的細微變化之外,這些方法中的大多數已經反復將這些程式碼標記為準系統,從一個乾淨的石板重新嘗試 3-4 次。

在擁有最新的 Truffle 框架和 Solidity 之後,我對此的回答是:

  • 我必須手動更新預設truffle unbox react.sol 文件的編譯指示版本。
  • truffle.js在(mac) 或(Windows 命名約定) 中創建編譯器對像truffle-config.js以進行版本控制。
  • 確保檢查 JSON 文件的編譯器版本。我在為松露配置創建編譯器對像後仔細檢查以確保。(它有點額外,但考慮到對這個不斷發展的行業的支持。)

這裡要提防的一大困惑是外掛。VS Code Solidity

https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity

我也必須在 gitter 上通知他可能存在的錯誤。請注意,其他solidity 外掛有時也會提到Juan Blanco 原始外掛的一個分支。

這是因為您的 App.js 正在嘗試將 int 值設置為您更改為字元串類型的儲存變數。

在 App.js 中更改第 42 行,以便您的 contract.methods.set() 呼叫設置一個字元串而不是 Int.q

還應該編輯在 App.js 中的 state 定義中 storageValue 的定義方式,從 storageValue: 0 到 storageValue: ""

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