Solidity
堅固性。連接雜湊 w 地址。TypeError: Operator + 與類型字元串記憶體和應付地址不兼容
我正在嘗試做一些簡單的事情:
examsFinalHash = keccak256(examHash + msg.sender);
但我收到以下錯誤:
TypeError: Operator + 與類型字元串記憶體和應付地址不兼容
我是新來的。請幫忙。另外,我在solidity Docs的哪裡可以找到類型及其特徵的參考?
我覺得經典
https://solidity.readthedocs.io/en/v0.5.13/abi-spec.html#types
是一個不錯的選擇。
您的錯誤只是類型地址與字元串類型的初步總和的結果:它無法工作。在以前版本的編譯器中,它可能出於正常原因起作用:在這種情況下,kecca256 括號中的 + 運算符是用來表示“打包此參數”的。
鑑於此,使用 5.x 代的編譯器,由於在編譯器的 5.0 或更高版本之後進行了語言重新定義,您被要求顯式打包 kecca256 的參數。
例如
keccak256(abi.encodePacked(a, b))
現在需要而不是舊的
keccak256(a + b)
檢查文件:它很有幫助!