{
  "id": "6db23576110a9475bec6da506656c6ce",
  "_format": "hh-sol-build-info-1",
  "solcVersion": "0.8.12",
  "solcLongVersion": "0.8.12+commit.f00d7308",
  "input": {
    "language": "Solidity",
    "sources": {
      "zksync-src/Storage.sol": {
        "content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity >=0.7.0 <0.9.0;\n\n/**\n * @title Storage\n * @dev Store & retrieve value in a variable\n */\n\ncontract Storage {\n    uint256 number;\n\n\n    event storedNumber(\n        address indexed _from,\n        uint256 indexed _oldNumber,\n        uint256 indexed _number\n    );\n\n    /**\n     * @dev Store value in variable\n     * @param num value to store\n     */\n    function store(uint256 num) public {\n        uint256 old = number;\n        number = num;\n        emit storedNumber(msg.sender, old, num);\n\n    }\n\n    /**\n     * @dev Return value\n     * @return value of 'number'\n     */\n    function retrieve() public view returns (uint256) {\n        return number;\n\n    }\n}"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": true,
        "mode": "3"
      },
      "outputSelection": {
        "*": {
          "*": [
            "abi",
            "evm.methodIdentifiers",
            "metadata"
          ],
          "": [
            "ast"
          ]
        }
      },
      "libraries": {}
    }
  },
  "output": {
    "errors": [],
    "version": "0.8.12",
    "long_version": "0.8.12+commit.f00d7308.Darwin.appleclang",
    "zk_version": "1.3.14",
    "sources": {
      "zksync-src/Storage.sol": {
        "id": 0,
        "ast": {
          "absolutePath": "zksync-src/Storage.sol",
          "exportedSymbols": {
            "Storage": [
              44
            ]
          },
          "id": 45,
          "license": "GPL-3.0",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 1,
              "literals": [
                "solidity",
                ">=",
                "0.7",
                ".0",
                "<",
                "0.9",
                ".0"
              ],
              "nodeType": "PragmaDirective",
              "src": "37:31:0"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "canonicalName": "Storage",
              "contractDependencies": [],
              "contractKind": "contract",
              "documentation": {
                "id": 2,
                "nodeType": "StructuredDocumentation",
                "src": "70:70:0",
                "text": " @title Storage\n @dev Store & retrieve value in a variable"
              },
              "fullyImplemented": true,
              "id": 44,
              "linearizedBaseContracts": [
                44
              ],
              "name": "Storage",
              "nameLocation": "151:7:0",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "constant": false,
                  "id": 4,
                  "mutability": "mutable",
                  "name": "number",
                  "nameLocation": "173:6:0",
                  "nodeType": "VariableDeclaration",
                  "scope": 44,
                  "src": "165:14:0",
                  "stateVariable": true,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "165:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "anonymous": false,
                  "id": 12,
                  "name": "storedNumber",
                  "nameLocation": "193:12:0",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 11,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 6,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "_from",
                        "nameLocation": "231:5:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 12,
                        "src": "215:21:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 5,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "215:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 8,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "_oldNumber",
                        "nameLocation": "262:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 12,
                        "src": "246:26:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "246:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 10,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "_number",
                        "nameLocation": "298:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 12,
                        "src": "282:23:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 9,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "282:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "205:106:0"
                  },
                  "src": "187:125:0"
                },
                {
                  "body": {
                    "id": 33,
                    "nodeType": "Block",
                    "src": "438:109:0",
                    "statements": [
                      {
                        "assignments": [
                          19
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 19,
                            "mutability": "mutable",
                            "name": "old",
                            "nameLocation": "456:3:0",
                            "nodeType": "VariableDeclaration",
                            "scope": 33,
                            "src": "448:11:0",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 18,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "448:7:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 21,
                        "initialValue": {
                          "id": 20,
                          "name": "number",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4,
                          "src": "462:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "448:20:0"
                      },
                      {
                        "expression": {
                          "id": 24,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 22,
                            "name": "number",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4,
                            "src": "478:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 23,
                            "name": "num",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15,
                            "src": "487:3:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "478:12:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 25,
                        "nodeType": "ExpressionStatement",
                        "src": "478:12:0"
                      },
                      {
                        "eventCall": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 27,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -15,
                                "src": "518:3:0",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 28,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "src": "518:10:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 29,
                              "name": "old",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 19,
                              "src": "530:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 30,
                              "name": "num",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 15,
                              "src": "535:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 26,
                            "name": "storedNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12,
                            "src": "505:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (address,uint256,uint256)"
                            }
                          },
                          "id": 31,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "505:34:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 32,
                        "nodeType": "EmitStatement",
                        "src": "500:39:0"
                      }
                    ]
                  },
                  "documentation": {
                    "id": 13,
                    "nodeType": "StructuredDocumentation",
                    "src": "318:80:0",
                    "text": " @dev Store value in variable\n @param num value to store"
                  },
                  "functionSelector": "6057361d",
                  "id": 34,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "store",
                  "nameLocation": "412:5:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 16,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 15,
                        "mutability": "mutable",
                        "name": "num",
                        "nameLocation": "426:3:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 34,
                        "src": "418:11:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 14,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "418:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "417:13:0"
                  },
                  "returnParameters": {
                    "id": 17,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "438:0:0"
                  },
                  "scope": 44,
                  "src": "403:144:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 42,
                    "nodeType": "Block",
                    "src": "677:31:0",
                    "statements": [
                      {
                        "expression": {
                          "id": 40,
                          "name": "number",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4,
                          "src": "694:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 39,
                        "id": 41,
                        "nodeType": "Return",
                        "src": "687:13:0"
                      }
                    ]
                  },
                  "documentation": {
                    "id": 35,
                    "nodeType": "StructuredDocumentation",
                    "src": "553:69:0",
                    "text": " @dev Return value\n @return value of 'number'"
                  },
                  "functionSelector": "2e64cec1",
                  "id": 43,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "retrieve",
                  "nameLocation": "636:8:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 36,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "644:2:0"
                  },
                  "returnParameters": {
                    "id": 39,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 38,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 43,
                        "src": "668:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 37,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "668:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "667:9:0"
                  },
                  "scope": 44,
                  "src": "627:81:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "public"
                }
              ],
              "scope": 45,
              "src": "142:568:0",
              "usedErrors": []
            }
          ],
          "src": "37:673:0"
        }
      }
    },
    "contracts": {
      "zksync-src/Storage.sol": {
        "Storage": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "_from",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "_oldNumber",
                  "type": "uint256"
                },
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "_number",
                  "type": "uint256"
                }
              ],
              "name": "storedNumber",
              "type": "event"
            },
            {
              "inputs": [],
              "name": "retrieve",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "num",
                  "type": "uint256"
                }
              ],
              "name": "store",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            }
          ],
          "metadata": {
            "optimizer_settings": "M3B3",
            "solc_metadata": "{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_oldNumber\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_number\",\"type\":\"uint256\"}],\"name\":\"storedNumber\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"retrieve\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"}],\"name\":\"store\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Store & retrieve value in a variable\",\"kind\":\"dev\",\"methods\":{\"retrieve()\":{\"details\":\"Return value\",\"returns\":{\"_0\":\"value of 'number'\"}},\"store(uint256)\":{\"details\":\"Store value in variable\",\"params\":{\"num\":\"value to store\"}}},\"title\":\"Storage\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"zksync-src/Storage.sol\":\"Storage\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":false,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoDgvulfnTUtnIf[xa[r]EscLMcCTUtTOntnfDIulLculVcul [j]Tpeulxa[rul]xa[r]cLgvifCTUca[r]LsTFOtfDnca[r]Iulc]jmul[jul] VcTOcul jmul\",\"stackAllocation\":true}},\"runs\":200},\"remappings\":[]},\"sources\":{\"zksync-src/Storage.sol\":{\"keccak256\":\"0x9f2fb1bfefae50d2639183d6ebf2cb74b3d41c70764390c3428b74862cad3be3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://caf8647432d939ac7da91d2c7edda1bca120eb50d6ef773b96984cc381c4fdb1\",\"dweb:/ipfs/QmcNB8P9gqvFmNQPYdmmA6bDeZS6jXt6Vv3zWY8uHmctAg\"]}},\"version\":1}",
            "zk_version": "1.3.14"
          },
          "evm": {
            "legacyAssembly": null,
            "assembly": "\t.text\n\t.file\t\"Storage.sol:Storage\"\n\t.globl\t__entry\n__entry:\n.func_begin0:\n\tptr.add\tr1, r0, stack[@ptr_calldata]\n\tshr.s\t96, r1, r1\n\tand\t@CPI0_0[0], r1, stack[@calldatasize]\n\tadd\t128, r0, r1\n\tst.1\t64, r1\n\tand!\t1, r2, r1\n\tjump.ne\t@.BB0_1\n\tadd\tstack[@calldatasize], r0, r1\n\tsub.s!\t4, r1, r1\n\tjump.lt\t@.BB0_2\n\tptr.add\tstack[@ptr_calldata], r0, r1\n\tld\tr1, r1\n\tshr.s\t224, r1, r1\n\tsub.s!\t@CPI0_2[0], r1, r2\n\tjump.eq\t@.BB0_10\n\tsub.s!\t@CPI0_3[0], r1, r1\n\tjump.ne\t@.BB0_2\n\tcontext.get_context_u128\tr1\n\tsub!\tr1, r0, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_4[0], r0, r2\n\tsub!\tr1, r0, r3\n\tadd\tr0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_4[0], r1, r1\n\tsub!\tr1, r0, r4\n\tadd.le\tr0, r0, r2\n\tsub.s!\t@CPI0_4[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub!\tr1, r0, r1\n\tjump.ne\t@.BB0_2\n\tsload\tr0, r1\n\tst.1\t128, r1\n\tadd\t@CPI0_5[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_1:\n\tcontext.get_context_u128\tr1\n\tsub!\tr1, r0, r1\n\tjump.ne\t@.BB0_2\n\tadd\t32, r0, r1\n\tst.2\t256, r1\n\tst.2\t288, r0\n\tadd\t@CPI0_1[0], r0, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.BB0_10:\n\tcontext.get_context_u128\tr1\n\tsub!\tr1, r0, r1\n\tjump.ne\t@.BB0_2\n\tsub.s\t4, r0, r1\n\tadd\tstack[@calldatasize], r1, r1\n\tadd\t@CPI0_4[0], r0, r2\n\tsub.s!\t32, r1, r3\n\tadd\tr0, r0, r3\n\tadd.lt\tr2, r0, r3\n\tand\t@CPI0_4[0], r1, r1\n\tsub!\tr1, r0, r4\n\tadd.le\tr0, r0, r2\n\tsub.s!\t@CPI0_4[0], r1, r1\n\tadd\tr3, r0, r1\n\tadd.eq\tr2, r0, r1\n\tsub!\tr1, r0, r1\n\tjump.eq\t@.BB0_12\n.BB0_2:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.BB0_12:\n\tadd\t4, r0, r1\n\tptr.add\tstack[@ptr_calldata], r1, r1\n\tld\tr1, r1\n\tnear_call\tr0, @fun_store, @DEFAULT_UNWIND\n\tadd\t@CPI0_0[0], r0, r1\n\tld.1\t64, r2\n\tsub.s!\t@CPI0_0[0], r2, r3\n\tadd.lt\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tret.ok.to_label\tr1, @DEFAULT_FAR_RETURN\n.func_end0:\n\nfun_store:\n.func_begin1:\n\tadd\tr1, r0, r7\n\tsload\tr0, r6\n\tsstore\tr0, r7\n\tld.1\t64, r1\n\tadd\t@CPI1_0[0], r0, r2\n\tcontext.gas_left\tr3\n\tsub.s!\t@CPI1_0[0], r3, r4\n\tadd.ge\tr2, r0, r3\n\tsub.s!\t@CPI1_0[0], r1, r4\n\tadd.ge\tr2, r0, r1\n\tshl.s\t64, r1, r1\n\tshl.s\t192, r3, r2\n\tor\tr2, r1, r1\n\tor\t@CPI1_1[0], r1, r1\n\tadd\t32781, r0, r2\n\tadd\t4, r0, r3\n\tadd\t@CPI1_2[0], r0, r4\n\tcontext.caller\tr5\n\tnear_call\tr0, @__farcall, @DEFAULT_UNWIND\n\tand!\t1, r2, r1\n\tjump.eq\t@.BB1_1\n\tret\n.BB1_1:\n\tadd\tr0, r0, r1\n\tret.revert.to_label\tr1, @DEFAULT_FAR_REVERT\n.func_end1:\n\n__farcall:\n.func_begin2:\n.tmp0:\n\tfar_call\tr1, r2, @.BB2_2\n.tmp1:\n\tadd\t1, r0, r2\n\tret\n.BB2_2:\n.tmp2:\n\tadd\tr0, r0, r2\n\tret\n.func_end2:\n\n\t.data\n\t.p2align\t5\ncalldatasize:\n\t.cell 0\n\n\t.p2align\t5\nptr_calldata:\n.cell\t0\n\n\t.note.GNU-stack\n\t.rodata\nCPI0_0:\nCPI1_0:\n\t.cell 4294967295\nCPI0_1:\n\t.cell 53919893334301279589334030174039261352344891250716429051063678533632\nCPI0_2:\n\t.cell 1616328221\nCPI0_3:\n\t.cell 778358465\nCPI0_4:\n\t.cell -57896044618658097711785492504343953926634992332820282019728792003956564819968\nCPI0_5:\n\t.cell 2535301202817642044428229017600\nCPI1_1:\n\t.cell 904625697166532776746648320380374280103671755200316906558262375061821325312\nCPI1_2:\n\t.cell -54303308596300902678927333930951724633244862758835563235781632876750809140273\n",
            "bytecode": {
              "object": "0002000000000002000100000001035500000060011002700000001c0010019d0000008001000039000000400010043f0000000101200190000000270000c13d0000000001000031000000040110008c000000400000413d0000000101000367000000000101043b000000e0011002700000001e0210009c0000002f0000613d0000001f0110009c000000400000c13d0000000001000416000000000101004b000000400000c13d000000040100008a00000000011000310000002002000041000000000301004b000000000300001900000000030240190000002001100197000000000401004b000000000200a019000000200110009c00000000010300190000000001026019000000000101004b000000400000c13d000000000100041a000000800010043f00000021010000410000006a0001042e0000000001000416000000000101004b000000400000c13d0000002001000039000001000010044300000120000004430000001d010000410000006a0001042e0000000001000416000000000101004b000000400000c13d000000040100008a00000000011000310000002002000041000000200310008c000000000300001900000000030240190000002001100197000000000401004b000000000200a019000000200110009c00000000010300190000000001026019000000000101004b000000420000613d00000000010000190000006b0001043000000004010000390000000101100367000000000101043b0069004c0000040f0000001c01000041000000400200043d0000001c0320009c000000000102401900000040011002100000006a0001042e0000000007010019000000000600041a000000000070041b000000400100043d0000001c0200004100000000030004140000001c0430009c00000000030280190000001c0410009c00000000010280190000004001100210000000c002300210000000000112019f00000022011001c70000800d02000039000000040300003900000023040000410000000005000411006900640000040f0000000101200190000000620000613d000000000001042d00000000010000190000006b0001043000000067002104210000000102000039000000000001042d0000000002000019000000000001042d00000069000004320000006a0001042e0000006b00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006057361d000000000000000000000000000000000000000000000000000000002e64cec180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000800000000000000000020000000000000000000000000000000000000000000000000000000000000087f16aa184eca14ea45e132328a5effbb79b9f921657bd03d83608f26d76f3cf6d16721b17201aefcfdb0964765ae6dba4f741906f7a82dfd70df4edb37a7cea"
            },
            "methodIdentifiers": {
              "retrieve()": "2e64cec1",
              "store(uint256)": "6057361d"
            }
          },
          "irOptimized": "/*=====================================================*\n *                       WARNING                       *\n *  Solidity to Yul compilation is still EXPERIMENTAL  *\n *       It can result in LOSS OF FUNDS or worse       *\n *                !USE AT YOUR OWN RISK!               *\n *=====================================================*/\n\n/// @use-src 0:\"zksync-src/Storage.sol\"\nobject \"Storage_44\" {\n    code {\n        {\n            /// @src 0:142:710  \"contract Storage {...\"\n            let _1 := memoryguard(0x80)\n            mstore(64, _1)\n            if callvalue() { revert(0, 0) }\n            let _2 := datasize(\"Storage_44_deployed\")\n            codecopy(_1, dataoffset(\"Storage_44_deployed\"), _2)\n            return(_1, _2)\n        }\n    }\n    /// @use-src 0:\"zksync-src/Storage.sol\"\n    object \"Storage_44_deployed\" {\n        code {\n            {\n                /// @src 0:142:710  \"contract Storage {...\"\n                let _1 := memoryguard(0x80)\n                mstore(64, _1)\n                if iszero(lt(calldatasize(), 4))\n                {\n                    let _2 := 0\n                    switch shr(224, calldataload(_2))\n                    case 0x2e64cec1 {\n                        if callvalue() { revert(_2, _2) }\n                        if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }\n                        mstore(_1, sload(_2))\n                        return(_1, 32)\n                    }\n                    case 0x6057361d {\n                        if callvalue() { revert(_2, _2) }\n                        if slt(add(calldatasize(), not(3)), 32) { revert(_2, _2) }\n                        fun_store(calldataload(4))\n                        return(mload(64), _2)\n                    }\n                }\n                revert(0, 0)\n            }\n            /// @ast-id 34 @src 0:403:547  \"function store(uint256 num) public {...\"\n            function fun_store(var_num)\n            {\n                /// @src 0:142:710  \"contract Storage {...\"\n                let _1 := sload(/** @src 0:462:468  \"number\" */ 0x00)\n                /// @src 0:142:710  \"contract Storage {...\"\n                sstore(/** @src 0:462:468  \"number\" */ 0x00, /** @src 0:142:710  \"contract Storage {...\" */ var_num)\n                /// @src 0:505:539  \"storedNumber(msg.sender, old, num)\"\n                log4(/** @src 0:142:710  \"contract Storage {...\" */ mload(64), /** @src 0:462:468  \"number\" */ 0x00, /** @src 0:505:539  \"storedNumber(msg.sender, old, num)\" */ 0x87f16aa184eca14ea45e132328a5effbb79b9f921657bd03d83608f26d76f3cf, /** @src 0:518:528  \"msg.sender\" */ caller(), /** @src 0:505:539  \"storedNumber(msg.sender, old, num)\" */ _1, var_num)\n            }\n        }\n        data \".metadata\" hex\"a3646970667358221220f5fd6b3e9504104527f1a2496680c8cff4f504f529ec548bb834a0c379f29e286c6578706572696d656e74616cf564736f6c634300080c0041\"\n    }\n}\n",
          "hash": "01000025a76b204db31be1244183d85bba33670947b902a6aa3c5cc2436be866",
          "factoryDependencies": {}
        }
      }
    }
  }
}