Remix
keccak256 錯誤瀏覽器-solidity 中未聲明的標識符
我嘗試在 Solidity 合約中使用
sha3
/函式,但出現了一個奇怪的錯誤:keccak
無標題:5:13:錯誤:未聲明的標識符。
字節32 d=keccak256(0x616263);
契約 :
pragma solidity ^0.4.0; contract C { bytes32 d=keccak256(0x616263); bytes32 a=sha3(uint256(1)); }
是該函式
keccak256()
的別名,sha3
以避免與 sha-3 標準混淆(操作碼仍稱為 SHA3。)此別名是本月採用的,因此舊編譯器無法辨識它。所以sha3
改用。可用的散列函式是
sha3
,sha256
,ripemd160
:pragma solidity ^0.4.0; contract C { function hashingsha3 (string s) returns (bytes32 hash){ return sha3(s);//<========= } function hashingsha256 (string s) returns (bytes32 hash){ return sha256(s); //<========= } function ripemd160 (string s) returns (bytes20 hash){ return ripemd160(s); //<========= } }