Просмотр исходного кода

Add keccak hash for addresses (#796)

Signed-off-by: Lucas Steuernagel <lucas.tnagel@gmail.com>
Lucas Steuernagel 3 лет назад
Родитель
Сommit
ee0d14d400
2 измененных файлов с 13 добавлено и 0 удалено
  1. 3 0
      src/codegen/constant_folding.rs
  2. 10 0
      tests/codegen_testcases/constant_folding.sol

+ 3 - 0
src/codegen/constant_folding.rs

@@ -760,6 +760,9 @@ fn expression(
                                             bs.insert(0, 0);
                                         }
                                     }
+                                    Type::Address(_) => {
+                                        bs.resize(ns.address_length, 0);
+                                    }
                                     _ => unreachable!(),
                                 }
 

+ 10 - 0
tests/codegen_testcases/constant_folding.sol

@@ -0,0 +1,10 @@
+// RUN: --target ewasm --emit cfg
+
+contract CodeWithJD {
+    mapping(address => uint256) balances;
+    // BEGIN-CHECK: CodeWithJD::CodeWithJD::function::totalSupply
+    function totalSupply() public view returns (uint256) {
+        // CHECK: load storage slot(hex"57644ed870b18b050a0801bb92210bbd4c1bff6200ff20e5e51ab4aae9546da8") ty:uint256
+        return balances[address(0x00)];
+    }
+}