github.com/iotexproject/iotex-core@v1.14.1-rc1/action/protocol/execution/testdata-shanghai/sha3.sol (about)

     1  // SPDX-License-Identifier: GPL-3.0
     2  
     3  pragma solidity ^0.8.14;
     4  
     5  contract Sha3 {
     6      function hashArray() public pure returns (bytes32) {
     7          bytes8[] memory tickers = new bytes8[](4);
     8          tickers[0] = bytes8("BTC");
     9          tickers[1] = bytes8("ETH");
    10          tickers[2] = bytes8("LTC");
    11          tickers[3] = bytes8("DOGE");
    12          return keccak256(abi.encodePacked(tickers));
    13          // 0x374c0504f79c1d5e6e4ded17d488802b5656bd1d96b16a568d6c324e1c04c37b
    14      }
    15  
    16      function hashPackedArray() public pure returns (bytes32) {
    17          bytes8 btc = bytes8("BTC");
    18          bytes8 eth = bytes8("ETH");
    19          bytes8 ltc = bytes8("LTC");
    20          bytes8 doge = bytes8("DOGE");
    21          return keccak256(abi.encodePacked(btc, eth, ltc, doge));
    22          // 0xe79a6745d2205095147fd735f329de58377b2f0b9f4b81ae23e010062127f2bc
    23      }
    24  
    25      function hashAddress() public pure returns (bytes32) {
    26          address account = 0x6779913e982688474F710B47E1c0506c5Dca4634;
    27          return keccak256(abi.encodePacked(account));
    28          // 0x229327de236bd04ccac2efc445f1a2b63afddf438b35874b9f6fd1e6c38b0198
    29      }
    30  
    31      function testPackedArgs() public pure returns (bool) {
    32          return keccak256("ab") == keccak256(abi.encodePacked("a", "b"));
    33      }
    34  
    35      function hashHex() public pure returns (bytes32) {
    36          bytes1 i = 0x0a;
    37          return keccak256(abi.encodePacked(i));
    38          // 0x0ef9d8f8804d174666011a394cab7901679a8944d24249fd148a6a36071151f8
    39      }
    40  
    41      function hashInt() public pure returns (bytes32) {
    42          return keccak256(abi.encodePacked(int256(1)));
    43      }
    44  
    45      function hashNegative() public pure returns (bytes32) {
    46          return keccak256(abi.encodePacked(int256(-1)));
    47      }
    48  
    49      function hash8() public pure returns (bytes32) {
    50          return keccak256(abi.encodePacked(uint8(1)));
    51      }
    52  
    53      function hash32() public pure returns (bytes32) {
    54          return keccak256(abi.encodePacked(uint32(1)));
    55      }
    56  
    57      function hash256() public pure returns (bytes32) {
    58          return keccak256(abi.encodePacked(uint256(1)));
    59      }
    60  
    61      function hashEth() public pure returns (bytes32) {
    62          return keccak256(abi.encodePacked(uint256(100 ether)));
    63      }
    64  
    65      function hashWei() public pure returns (bytes32) {
    66          return keccak256(abi.encodePacked(uint256(100)));
    67      }
    68  
    69      function hashMultipleArgs() public pure returns (bytes32) {
    70          return keccak256(abi.encodePacked("a", uint256(1)));
    71      }
    72  
    73      function hashString() public pure returns (bytes32) {
    74          return keccak256("a");
    75      }
    76  }