@airdao/astra-cl-periphery
Version:
🎚 Peripheral smart contracts for interacting with AstraDEX Concentrated Liquidity version
1 lines • 114 kB
JSON
{"id":"22776c9d2e59ee9c3342ed548e033887","_format":"hh-sol-build-info-1","solcVersion":"0.7.6","solcLongVersion":"0.7.6+commit.7338295f","input":{"language":"Solidity","sources":{"contracts/lens/AstraInterfaceMulticall.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity =0.7.6;\npragma abicoder v2;\n\n/// @notice A fork of Multicall2 specifically tailored for the Astra Interface\ncontract AstraInterfaceMulticall {\n struct Call {\n address target;\n uint256 gasLimit;\n bytes callData;\n }\n\n struct Result {\n bool success;\n uint256 gasUsed;\n bytes returnData;\n }\n\n function getCurrentBlockTimestamp() public view returns (uint256 timestamp) {\n timestamp = block.timestamp;\n }\n\n function getAmbBalance(address addr) public view returns (uint256 balance) {\n balance = addr.balance;\n }\n\n function multicall(Call[] memory calls) public returns (uint256 blockNumber, Result[] memory returnData) {\n blockNumber = block.number;\n returnData = new Result[](calls.length);\n for (uint256 i = 0; i < calls.length; i++) {\n (address target, uint256 gasLimit, bytes memory callData) = (\n calls[i].target,\n calls[i].gasLimit,\n calls[i].callData\n );\n uint256 gasLeftBefore = gasleft();\n (bool success, bytes memory ret) = target.call{gas: gasLimit}(callData);\n uint256 gasUsed = gasLeftBefore - gasleft();\n returnData[i] = Result(success, gasUsed, ret);\n }\n }\n}\n"}},"settings":{"evmVersion":"istanbul","optimizer":{"enabled":true,"runs":1000000},"metadata":{"bytecodeHash":"none"},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"contracts/lens/AstraInterfaceMulticall.sol":{"ast":{"absolutePath":"contracts/lens/AstraInterfaceMulticall.sol","exportedSymbols":{"AstraInterfaceMulticall":[134]},"id":135,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","=","0.7",".6"],"nodeType":"PragmaDirective","src":"32:23:0"},{"id":2,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"56:19:0"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":3,"nodeType":"StructuredDocumentation","src":"77:79:0","text":"@notice A fork of Multicall2 specifically tailored for the Astra Interface"},"fullyImplemented":true,"id":134,"linearizedBaseContracts":[134],"name":"AstraInterfaceMulticall","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AstraInterfaceMulticall.Call","id":10,"members":[{"constant":false,"id":5,"mutability":"mutable","name":"target","nodeType":"VariableDeclaration","scope":10,"src":"217:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4,"name":"address","nodeType":"ElementaryTypeName","src":"217:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"gasLimit","nodeType":"VariableDeclaration","scope":10,"src":"241:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6,"name":"uint256","nodeType":"ElementaryTypeName","src":"241:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9,"mutability":"mutable","name":"callData","nodeType":"VariableDeclaration","scope":10,"src":"267:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":8,"name":"bytes","nodeType":"ElementaryTypeName","src":"267:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call","nodeType":"StructDefinition","scope":134,"src":"195:93:0","visibility":"public"},{"canonicalName":"AstraInterfaceMulticall.Result","id":17,"members":[{"constant":false,"id":12,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","scope":17,"src":"318:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11,"name":"bool","nodeType":"ElementaryTypeName","src":"318:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14,"mutability":"mutable","name":"gasUsed","nodeType":"VariableDeclaration","scope":17,"src":"340:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13,"name":"uint256","nodeType":"ElementaryTypeName","src":"340:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16,"mutability":"mutable","name":"returnData","nodeType":"VariableDeclaration","scope":17,"src":"365:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":15,"name":"bytes","nodeType":"ElementaryTypeName","src":"365:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Result","nodeType":"StructDefinition","scope":134,"src":"294:94:0","visibility":"public"},{"body":{"id":27,"nodeType":"Block","src":"470:44:0","statements":[{"expression":{"id":25,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"480:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":23,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"492:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"492:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"480:27:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26,"nodeType":"ExpressionStatement","src":"480:27:0"}]},"functionSelector":"0f28c97d","id":28,"implemented":true,"kind":"function","modifiers":[],"name":"getCurrentBlockTimestamp","nodeType":"FunctionDefinition","parameters":{"id":18,"nodeType":"ParameterList","parameters":[],"src":"427:2:0"},"returnParameters":{"id":21,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20,"mutability":"mutable","name":"timestamp","nodeType":"VariableDeclaration","scope":28,"src":"451:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19,"name":"uint256","nodeType":"ElementaryTypeName","src":"451:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"450:19:0"},"scope":134,"src":"394:120:0","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":40,"nodeType":"Block","src":"595:39:0","statements":[{"expression":{"id":38,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":35,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"605:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":36,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"615:4:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":37,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"615:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"605:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":39,"nodeType":"ExpressionStatement","src":"605:22:0"}]},"functionSelector":"525abf7f","id":41,"implemented":true,"kind":"function","modifiers":[],"name":"getAmbBalance","nodeType":"FunctionDefinition","parameters":{"id":31,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30,"mutability":"mutable","name":"addr","nodeType":"VariableDeclaration","scope":41,"src":"543:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"542:14:0"},"returnParameters":{"id":34,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33,"mutability":"mutable","name":"balance","nodeType":"VariableDeclaration","scope":41,"src":"578:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32,"name":"uint256","nodeType":"ElementaryTypeName","src":"578:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"577:17:0"},"scope":134,"src":"520:114:0","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":132,"nodeType":"Block","src":"745:594:0","statements":[{"expression":{"id":55,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"755:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"769:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"769:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"755:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56,"nodeType":"ExpressionStatement","src":"755:26:0"},{"expression":{"id":64,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50,"src":"791:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$17_memory_ptr_$dyn_memory_ptr","typeString":"struct AstraInterfaceMulticall.Result memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":61,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"817:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$10_memory_ptr_$dyn_memory_ptr","typeString":"struct AstraInterfaceMulticall.Call memory[] memory"}},"id":62,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"817:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"804:12:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Result_$17_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct AstraInterfaceMulticall.Result memory[] memory)"},"typeName":{"baseType":{"id":58,"name":"Result","nodeType":"UserDefinedTypeName","referencedDeclaration":17,"src":"808:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$17_storage_ptr","typeString":"struct AstraInterfaceMulticall.Result"}},"id":59,"nodeType":"ArrayTypeName","src":"808:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$17_storage_$dyn_storage_ptr","typeString":"struct AstraInterfaceMulticall.Result[]"}}},"id":63,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"804:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$17_memory_ptr_$dyn_memory_ptr","typeString":"struct AstraInterfaceMulticall.Result memory[] memory"}},"src":"791:39:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$17_memory_ptr_$dyn_memory_ptr","typeString":"struct AstraInterfaceMulticall.Result memory[] memory"}},"id":65,"nodeType":"ExpressionStatement","src":"791:39:0"},{"body":{"id":130,"nodeType":"Block","src":"883:450:0","statements":[{"assignments":[78,80,82],"declarations":[{"constant":false,"id":78,"mutability":"mutable","name":"target","nodeType":"VariableDeclaration","scope":130,"src":"898:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77,"name":"address","nodeType":"ElementaryTypeName","src":"898:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80,"mutability":"mutable","name":"gasLimit","nodeType":"VariableDeclaration","scope":130,"src":"914:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82,"mutability":"mutable","name":"callData","nodeType":"VariableDeclaration","scope":130,"src":"932:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":81,"name":"bytes","nodeType":"ElementaryTypeName","src":"932:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":96,"initialValue":{"components":[{"expression":{"baseExpression":{"id":83,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"975:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$10_memory_ptr_$dyn_memory_ptr","typeString":"struct AstraInterfaceMulticall.Call memory[] memory"}},"id":85,"indexExpression":{"id":84,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"981:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"975:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$10_memory_ptr","typeString":"struct AstraInterfaceMulticall.Call memory"}},"id":86,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"target","nodeType":"MemberAccess","referencedDeclaration":5,"src":"975:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"baseExpression":{"id":87,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"1008:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$10_memory_ptr_$dyn_memory_ptr","typeString":"struct AstraInterfaceMulticall.Call memory[] memory"}},"id":89,"indexExpression":{"id":88,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"1014:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1008:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$10_memory_ptr","typeString":"struct AstraInterfaceMulticall.Call memory"}},"id":90,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":7,"src":"1008:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"baseExpression":{"id":91,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"1043:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$10_memory_ptr_$dyn_memory_ptr","typeString":"struct AstraInterfaceMulticall.Call memory[] memory"}},"id":93,"indexExpression":{"id":92,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"1049:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1043:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$10_memory_ptr","typeString":"struct AstraInterfaceMulticall.Call memory"}},"id":94,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callData","nodeType":"MemberAccess","referencedDeclaration":9,"src":"1043:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":95,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"957:117:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(address,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"897:177:0"},{"assignments":[98],"declarations":[{"constant":false,"id":98,"mutability":"mutable","name":"gasLeftBefore","nodeType":"VariableDeclaration","scope":130,"src":"1088:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":97,"name":"uint256","nodeType":"ElementaryTypeName","src":"1088:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":101,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":99,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"1112:7:0","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1112:9:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1088:33:0"},{"assignments":[103,105],"declarations":[{"constant":false,"id":103,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","scope":130,"src":"1136:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":102,"name":"bool","nodeType":"ElementaryTypeName","src":"1136:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":105,"mutability":"mutable","name":"ret","nodeType":"VariableDeclaration","scope":130,"src":"1150:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":104,"name":"bytes","nodeType":"ElementaryTypeName","src":"1150:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":112,"initialValue":{"arguments":[{"id":110,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82,"src":"1197:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":106,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"1170:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1170:11:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"id":108,"name":"gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80,"src":"1187:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1170:26:0","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1170:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1135:71:0"},{"assignments":[114],"declarations":[{"constant":false,"id":114,"mutability":"mutable","name":"gasUsed","nodeType":"VariableDeclaration","scope":130,"src":"1220:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":113,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":119,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":115,"name":"gasLeftBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98,"src":"1238:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":116,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"1254:7:0","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1254:9:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1238:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1220:43:0"},{"expression":{"id":128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":120,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50,"src":"1277:10:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$17_memory_ptr_$dyn_memory_ptr","typeString":"struct AstraInterfaceMulticall.Result memory[] memory"}},"id":122,"indexExpression":{"id":121,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"1288:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1277:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$17_memory_ptr","typeString":"struct AstraInterfaceMulticall.Result memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":124,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"1300:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":125,"name":"gasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114,"src":"1309:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":126,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105,"src":"1318:3:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":123,"name":"Result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17,"src":"1293:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Result_$17_storage_ptr_$","typeString":"type(struct AstraInterfaceMulticall.Result storage pointer)"}},"id":127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1293:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Result_$17_memory_ptr","typeString":"struct AstraInterfaceMulticall.Result memory"}},"src":"1277:45:0","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$17_memory_ptr","typeString":"struct AstraInterfaceMulticall.Result memory"}},"id":129,"nodeType":"ExpressionStatement","src":"1277:45:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"860:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":71,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"864:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$10_memory_ptr_$dyn_memory_ptr","typeString":"struct AstraInterfaceMulticall.Call memory[] memory"}},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"864:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"860:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":131,"initializationExpression":{"assignments":[67],"declarations":[{"constant":false,"id":67,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":131,"src":"845:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":69,"initialValue":{"hexValue":"30","id":68,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"857:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"845:13:0"},"loopExpression":{"expression":{"id":75,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"878:3:0","subExpression":{"id":74,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"878:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76,"nodeType":"ExpressionStatement","src":"878:3:0"},"nodeType":"ForStatement","src":"840:493:0"}]},"functionSelector":"1749e1e3","id":133,"implemented":true,"kind":"function","modifiers":[],"name":"multicall","nodeType":"FunctionDefinition","parameters":{"id":45,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44,"mutability":"mutable","name":"calls","nodeType":"VariableDeclaration","scope":133,"src":"659:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$10_memory_ptr_$dyn_memory_ptr","typeString":"struct AstraInterfaceMulticall.Call[]"},"typeName":{"baseType":{"id":42,"name":"Call","nodeType":"UserDefinedTypeName","referencedDeclaration":10,"src":"659:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$10_storage_ptr","typeString":"struct AstraInterfaceMulticall.Call"}},"id":43,"nodeType":"ArrayTypeName","src":"659:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$10_storage_$dyn_storage_ptr","typeString":"struct AstraInterfaceMulticall.Call[]"}},"visibility":"internal"}],"src":"658:21:0"},"returnParameters":{"id":51,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47,"mutability":"mutable","name":"blockNumber","nodeType":"VariableDeclaration","scope":133,"src":"696:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46,"name":"uint256","nodeType":"ElementaryTypeName","src":"696:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":50,"mutability":"mutable","name":"returnData","nodeType":"VariableDeclaration","scope":133,"src":"717:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$17_memory_ptr_$dyn_memory_ptr","typeString":"struct AstraInterfaceMulticall.Result[]"},"typeName":{"baseType":{"id":48,"name":"Result","nodeType":"UserDefinedTypeName","referencedDeclaration":17,"src":"717:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$17_storage_ptr","typeString":"struct AstraInterfaceMulticall.Result"}},"id":49,"nodeType":"ArrayTypeName","src":"717:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$17_storage_$dyn_storage_ptr","typeString":"struct AstraInterfaceMulticall.Result[]"}},"visibility":"internal"}],"src":"695:49:0"},"scope":134,"src":"640:699:0","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":135,"src":"156:1185:0"}],"src":"32:1310:0"},"id":0}},"contracts":{"contracts/lens/AstraInterfaceMulticall.sol":{"AstraInterfaceMulticall":{"abi":[{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getAmbBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct AstraInterfaceMulticall.Call[]","name":"calls","type":"tuple[]"}],"name":"multicall","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct AstraInterfaceMulticall.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610567806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f28c97d146100465780631749e1e314610064578063525abf7f14610085575b600080fd5b61004e610098565b60405161005b919061041f565b60405180910390f35b6100776100723660046102a7565b61009c565b60405161005b929190610428565b61004e610093366004610286565b610220565b4290565b8051439060609067ffffffffffffffff811180156100b957600080fd5b506040519080825280602002602001820160405280156100f357816020015b6100e061023a565b8152602001906001900390816100d85790505b50905060005b835181101561021a57600080600086848151811061011357fe5b60200260200101516000015187858151811061012b57fe5b60200260200101516020015188868151811061014357fe5b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff1685856040516101839190610403565b60006040518083038160008787f1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b509150915060005a8403905060405180606001604052808415158152602001828152602001838152508989815181106101fb57fe5b60200260200101819052505050505050505080806001019150506100f9565b50915091565b73ffffffffffffffffffffffffffffffffffffffff163190565b604051806060016040528060001515815260200160008152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461028157600080fd5b919050565b600060208284031215610297578081fd5b6102a08261025d565b9392505050565b600060208083850312156102b9578182fd5b823567ffffffffffffffff808211156102d0578384fd5b818501915085601f8301126102e3578384fd5b8135818111156102ef57fe5b6102fc8485830201610506565b81815284810190848601875b848110156103f457813587017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0606081838f03011215610346578a8bfd5b60408051606081018181108b8211171561035c57fe5b8252610369848d0161025d565b8152818401358c82015260608401358a811115610384578d8efd5b8085019450508e603f850112610398578c8dfd5b8b8401358a8111156103a657fe5b6103b68d85601f84011601610506565b93508084528f838287010111156103cb578d8efd5b808386018e86013783018c018d9052908101919091528552509287019290870190600101610308565b50909998505050505050505050565b6000825161041581846020870161052a565b9190910192915050565b90815260200190565b600060408083018584526020828186015281865180845260609350838701915083838202880101838901875b838110156104f6578983037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa001855281518051151584528681015187850152880151888401889052805188850181905260806104b582828801858c0161052a565b96880196601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01694909401909301925090850190600101610454565b50909a9950505050505050505050565b60405181810167ffffffffffffffff8111828210171561052257fe5b604052919050565b60005b8381101561054557818101518382015260200161052d565b83811115610554576000848401525b5050505056fea164736f6c6343000706000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x567 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF28C97D EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x1749E1E3 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x525ABF7F EQ PUSH2 0x85 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x98 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x41F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x77 PUSH2 0x72 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A7 JUMP JUMPDEST PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP3 SWAP2 SWAP1 PUSH2 0x428 JUMP JUMPDEST PUSH2 0x4E PUSH2 0x93 CALLDATASIZE PUSH1 0x4 PUSH2 0x286 JUMP JUMPDEST PUSH2 0x220 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST DUP1 MLOAD NUMBER SWAP1 PUSH1 0x60 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xF3 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0xE0 PUSH2 0x23A JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0xD8 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x113 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD DUP8 DUP6 DUP2 MLOAD DUP2 LT PUSH2 0x12B JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD DUP9 DUP7 DUP2 MLOAD DUP2 LT PUSH2 0x143 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 GAS SWAP1 POP PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x403 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP8 CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1C1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 GAS DUP5 SUB SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE POP DUP10 DUP10 DUP2 MLOAD DUP2 LT PUSH2 0x1FB JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xF9 JUMP JUMPDEST POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x297 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2A0 DUP3 PUSH2 0x25D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B9 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2D0 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2E3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2EF JUMPI INVALID JUMPDEST PUSH2 0x2FC DUP5 DUP6 DUP4 MUL ADD PUSH2 0x506 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 DUP2 ADD SWAP1 DUP5 DUP7 ADD DUP8 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0x3F4 JUMPI DUP2 CALLDATALOAD DUP8 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 PUSH1 0x60 DUP2 DUP4 DUP16 SUB ADD SLT ISZERO PUSH2 0x346 JUMPI DUP11 DUP12 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP2 DUP2 LT DUP12 DUP3 GT OR ISZERO PUSH2 0x35C JUMPI INVALID JUMPDEST DUP3 MSTORE PUSH2 0x369 DUP5 DUP14 ADD PUSH2 0x25D JUMP JUMPDEST DUP2 MSTORE DUP2 DUP5 ADD CALLDATALOAD DUP13 DUP3 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD DUP11 DUP2 GT ISZERO PUSH2 0x384 JUMPI DUP14 DUP15 REVERT JUMPDEST DUP1 DUP6 ADD SWAP5 POP POP DUP15 PUSH1 0x3F DUP6 ADD SLT PUSH2 0x398 JUMPI DUP13 DUP14 REVERT JUMPDEST DUP12 DUP5 ADD CALLDATALOAD DUP11 DUP2 GT ISZERO PUSH2 0x3A6 JUMPI INVALID JUMPDEST PUSH2 0x3B6 DUP14 DUP6 PUSH1 0x1F DUP5 ADD AND ADD PUSH2 0x506 JUMP JUMPDEST SWAP4 POP DUP1 DUP5 MSTORE DUP16 DUP4 DUP3 DUP8 ADD ADD GT ISZERO PUSH2 0x3CB JUMPI DUP14 DUP15 REVERT JUMPDEST DUP1 DUP4 DUP7 ADD DUP15 DUP7 ADD CALLDATACOPY DUP4 ADD DUP13 ADD DUP14 SWAP1 MSTORE SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP6 MSTORE POP SWAP3 DUP8 ADD SWAP3 SWAP1 DUP8 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x308 JUMP JUMPDEST POP SWAP1 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x415 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x52A JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP1 DUP4 ADD DUP6 DUP5 MSTORE PUSH1 0x20 DUP3 DUP2 DUP7 ADD MSTORE DUP2 DUP7 MLOAD DUP1 DUP5 MSTORE PUSH1 0x60 SWAP4 POP DUP4 DUP8 ADD SWAP2 POP DUP4 DUP4 DUP3 MUL DUP9 ADD ADD DUP4 DUP10 ADD DUP8 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F6 JUMPI DUP10 DUP4 SUB PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 ADD DUP6 MSTORE DUP2 MLOAD DUP1 MLOAD ISZERO ISZERO DUP5 MSTORE DUP7 DUP2 ADD MLOAD DUP8 DUP6 ADD MSTORE DUP9 ADD MLOAD DUP9 DUP5 ADD DUP9 SWAP1 MSTORE DUP1 MLOAD DUP9 DUP6 ADD DUP2 SWAP1 MSTORE PUSH1 0x80 PUSH2 0x4B5 DUP3 DUP3 DUP9 ADD DUP6 DUP13 ADD PUSH2 0x52A JUMP JUMPDEST SWAP7 DUP9 ADD SWAP7 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP5 SWAP1 SWAP5 ADD SWAP1 SWAP4 ADD SWAP3 POP SWAP1 DUP6 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x454 JUMP JUMPDEST POP SWAP1 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x522 JUMPI INVALID JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x545 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x52D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x554 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"156:1185:0:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5036:1","statements":[{"nodeType":"YulBlock","src":"6:3:1","statements":[]},{"body":{"nodeType":"YulBlock","src":"65:147:1","statements":[{"nodeType":"YulAssignment","src":"75:29:1","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"97:6:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"84:12:1"},"nodeType":"YulFunctionCall","src":"84:20:1"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"75:5:1"}]},{"body":{"nodeType":"YulBlock","src":"190:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"199:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"202:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"192:6:1"},"nodeType":"YulFunctionCall","src":"192:12:1"},"nodeType":"YulExpressionStatement","src":"192:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"126:5:1"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"137:5:1"},{"kind":"number","nodeType":"YulLiteral","src":"144:42:1","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"133:3:1"},"nodeType":"YulFunctionCall","src":"133:54:1"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"123:2:1"},"nodeType":"YulFunctionCall","src":"123:65:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"116:6:1"},"nodeType":"YulFunctionCall","src":"116:73:1"},"nodeType":"YulIf","src":"113:2:1"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"44:6:1","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"55:5:1","type":""}],"src":"14:198:1"},{"body":{"nodeType":"YulBlock","src":"287:128:1","statements":[{"body":{"nodeType":"YulBlock","src":"333:26:1","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"342:6:1"},{"name":"value0","nodeType":"YulIdentifier","src":"350:6:1"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"335:6:1"},"nodeType":"YulFunctionCall","src":"335:22:1"},"nodeType":"YulExpressionStatement","src":"335:22:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"308:7:1"},{"name":"headStart","nodeType":"YulIdentifier","src":"317:9:1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"304:3:1"},"nodeType":"YulFunctionCall","src":"304:23:1"},{"kind":"number","nodeType":"YulLiteral","src":"329:2:1","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"300:3:1"},"nodeType":"YulFunctionCall","src":"300:32:1"},"nodeType":"YulIf","src":"297:2:1"},{"nodeType":"YulAssignment","src":"368:41:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"399:9:1"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"378:20:1"},"nodeType":"YulFunctionCall","src":"378:31:1"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"368:6:1"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"253:9:1","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"264:7:1","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"276:6:1","type":""}],"src":"217:198:1"},{"body":{"nodeType":"YulBlock","src":"535:2007:1","statements":[{"nodeType":"YulVariableDeclaration","src":"545:12:1","value":{"kind":"number","nodeType":"YulLiteral","src":"555:2:1","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"549:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"602:26:1","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"611:6:1"},{"name":"value0","nodeType":"YulIdentifier","src":"619:6:1"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"604:6:1"},"nodeType":"YulFunctionCall","src":"604:22:1"},"nodeType":"YulExpressionStatement","src":"604:22:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"577:7:1"},{"name":"headStart","nodeType":"YulIdentifier","src":"586:9:1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"573:3:1"},"nodeType":"YulFunctionCall","src":"573:23:1"},{"name":"_1","nodeType":"YulIdentifier","src":"598:2:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"569:3:1"},"nodeType":"YulFunctionCall","src":"569:32:1"},"nodeType":"YulIf","src":"566:2:1"},{"nodeType":"YulVariableDeclaration","src":"637:37:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"664:9:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"651:12:1"},"nodeType":"YulFunctionCall","src":"651:23:1"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"641:6:1","type":""}]},{"nodeType":"YulVariableDeclaration","src":"683:28:1","value":{"kind":"number","nodeType":"YulLiteral","src":"693:18:1","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"687:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"738:26:1","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"747:6:1"},{"name":"value0","nodeType":"YulIdentifier","src":"755:6:1"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"740:6:1"},"nodeType":"YulFunctionCall","src":"740:22:1"},"nodeType":"YulExpressionStatement","src":"740:22:1"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"726:6:1"},{"name":"_2","nodeType":"YulIdentifier","src":"734:2:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"723:2:1"},"nodeType":"YulFunctionCall","src":"723:14:1"},"nodeType":"YulIf","src":"720:2:1"},{"nodeType":"YulVariableDeclaration","src":"773:32:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"787:9:1"},{"name":"offset","nodeType":"YulIdentifier","src":"798:6:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"783:3:1"},"nodeType":"YulFunctionCall","src":"783:22:1"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"777:2:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"853:26:1","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"862:6:1"},{"name":"value0","nodeType":"YulIdentifier","src":"870:6:1"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"855:6:1"},"nodeType":"YulFunctionCall","src":"855:22:1"},"nodeType":"YulExpressionStatement","src":"855:22:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"832:2:1"},{"kind":"number","nodeType":"YulLiteral","src":"836:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"828:3:1"},"nodeType":"YulFunctionCall","src":"828:13:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"843:7:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"824:3:1"},"nodeType":"YulFunctionCall","src":"824:27:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"817:6:1"},"nodeType":"YulFuncti