Remix

keccak256 錯誤瀏覽器-solidity 中未聲明的標識符

  • November 15, 2016

我嘗試在 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); //<=========
   }
}

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