constant_folding.sol 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // RUN: --target substrate --emit cfg
  2. contract CodeWithJD {
  3. mapping(address => uint256) balances;
  4. // BEGIN-CHECK: CodeWithJD::CodeWithJD::function::totalSupply
  5. function totalSupply() public view returns (uint256) {
  6. // CHECK: load storage slot(hex"b55fba97e5495840b2400ab391e4362b96f1173f44a58442cdd3f776b62832ad") ty:uint256
  7. return balances[address(0x00)];
  8. }
  9. }
  10. contract Enum {
  11. enum Lender {
  12. USDT,
  13. USDC,
  14. DAI
  15. }
  16. mapping(Lender => address) lenders;
  17. // BEGIN-CHECK: Enum::Enum::constructor::7d622c65
  18. constructor(
  19. address usdt,
  20. address usdc,
  21. address dai
  22. ) {
  23. lenders[Lender.USDT] = usdt;
  24. lenders[Lender.USDC] = usdc;
  25. lenders[Lender.DAI] = dai;
  26. // CHECK: ty:address storage %temp.13 = (arg #0)
  27. // CHECK: store storage slot(hex"f31349e4056d5e5c8ce6d8359404f2ca89b2a6884691bff0f55ce7629f869af3") ty:address = %temp.13
  28. // CHECK: ty:address storage %temp.14 = (arg #1)
  29. // CHECK: store storage slot(hex"e062efc721ea447b5e3918617d57f26130f3d8bc01b883eed1efcb4864d73ac1") ty:address = %temp.14
  30. // CHECK: ty:address storage %temp.15 = (arg #2)
  31. // CHECK: store storage slot(hex"b2573af2738ebd4810a3198e92bab190f29b8718f1d5ed1b83e468f2bb322d10") ty:address = %temp.15
  32. }
  33. function foo(Lender lender) public view returns (address) {
  34. return lenders[lender];
  35. }
  36. }