Skip to content

Instantly share code, notes, and snippets.

@akshay-shah
Created February 4, 2022 14:02
Show Gist options
  • Select an option

  • Save akshay-shah/a208f6ec6d47cd36b3ecb245284997ff to your computer and use it in GitHub Desktop.

Select an option

Save akshay-shah/a208f6ec6d47cd36b3ecb245284997ff to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.11+commit.d7f03943.js&optimize=false&runs=200&gist=
REMIX EXAMPLE PROJECT
Remix example project is present when Remix loads very first time or there are no files existing in the File Explorer.
It contains 3 directories:
1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name.
2. 'scripts': Holds two scripts to deploy a contract. It is explained below.
3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity.
SCRIPTS
The 'scripts' folder contains example async/await scripts for deploying the 'Storage' contract.
For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required).
Scripts have full access to the web3.js and ethers.js libraries.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"gรถrli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052600a600055601460015534801561001a57600080fd5b506101b98061002a6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630c55699c1461005c57806328d69c6d1461007a5780633c9d377d146100985780639942ec6f146100b6578063c3f90202146100d4575b600080fd5b6100646100f2565b6040516100719190610168565b60405180910390f35b6100826100f8565b60405161008f9190610168565b60405180910390f35b6100a0610102565b6040516100ad9190610168565b60405180910390f35b6100be610120565b6040516100cb9190610168565b60405180910390f35b6100dc610134565b6040516100e99190610168565b60405180910390f35b60005481565b6000600154905090565b60008061010d61013d565b9050610117610146565b90508091505090565b60008061012b610146565b90508091505090565b60008054905090565b60008054905090565b60008054905090565b6000819050919050565b6101628161014f565b82525050565b600060208201905061017d6000830184610159565b9291505056fea2646970667358221220ffd0c3dbf4d0a74fce8d5f6fa2e9aec26f0bee2d4ef66418e6332aa17048de6764736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0x0 SSTORE PUSH1 0x14 PUSH1 0x1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 DUP1 PUSH2 0x2A 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 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x28D69C6D EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x3C9D377D EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x9942EC6F EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0xC3F90202 EQ PUSH2 0xD4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x82 PUSH2 0xF8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA0 PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBE PUSH2 0x120 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCB SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDC PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10D PUSH2 0x13D JUMP JUMPDEST SWAP1 POP PUSH2 0x117 PUSH2 0x146 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x12B PUSH2 0x146 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x162 DUP2 PUSH2 0x14F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x159 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT 0xD0 0xC3 0xDB DELEGATECALL 0xD0 0xA7 0x4F 0xCE DUP14 0x5F PUSH16 0xA2E9AEC26F0BEE2D4EF66418E6332AA1 PUSH17 0x48DE6764736F6C634300080B0033000000 ",
"sourceMap": "71:1006:0:-:0;;;102:2;87:17;;118:2;110:10;;71:1006;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@f1_23": {
"entryPoint": 326,
"id": 23,
"parameterSlots": 0,
"returnSlots": 1
},
"@f2_39": {
"entryPoint": 288,
"id": 39,
"parameterSlots": 0,
"returnSlots": 1
},
"@f3_47": {
"entryPoint": 317,
"id": 47,
"parameterSlots": 0,
"returnSlots": 1
},
"@f4_55": {
"entryPoint": 308,
"id": 55,
"parameterSlots": 0,
"returnSlots": 1
},
"@f5_76": {
"entryPoint": 258,
"id": 76,
"parameterSlots": 0,
"returnSlots": 1
},
"@get_y_15": {
"entryPoint": 248,
"id": 15,
"parameterSlots": 0,
"returnSlots": 1
},
"@x_4": {
"entryPoint": 242,
"id": 4,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_int256_to_t_int256_fromStack": {
"entryPoint": 345,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed": {
"entryPoint": 360,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_int256": {
"entryPoint": 335,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:431:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "51:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "61:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "72:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "61:7:1"
}
]
}
]
},
"name": "cleanup_t_int256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "33:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "43:7:1",
"type": ""
}
],
"src": "7:76:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "152:52:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "169:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "191:5:1"
}
],
"functionName": {
"name": "cleanup_t_int256",
"nodeType": "YulIdentifier",
"src": "174:16:1"
},
"nodeType": "YulFunctionCall",
"src": "174:23:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "162:6:1"
},
"nodeType": "YulFunctionCall",
"src": "162:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "162:36:1"
}
]
},
"name": "abi_encode_t_int256_to_t_int256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "140:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "147:3:1",
"type": ""
}
],
"src": "89:115:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "306:122:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "316:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "328:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "339:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "324:3:1"
},
"nodeType": "YulFunctionCall",
"src": "324:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "316:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "394:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "407:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "418:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "403:3:1"
},
"nodeType": "YulFunctionCall",
"src": "403:17:1"
}
],
"functionName": {
"name": "abi_encode_t_int256_to_t_int256_fromStack",
"nodeType": "YulIdentifier",
"src": "352:41:1"
},
"nodeType": "YulFunctionCall",
"src": "352:69:1"
},
"nodeType": "YulExpressionStatement",
"src": "352:69:1"
}
]
},
"name": "abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "278:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "290:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "301:4:1",
"type": ""
}
],
"src": "210:218:1"
}
]
},
"contents": "{\n\n function cleanup_t_int256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_int256_to_t_int256_fromStack(value, pos) {\n mstore(pos, cleanup_t_int256(value))\n }\n\n function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_int256_to_t_int256_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100575760003560e01c80630c55699c1461005c57806328d69c6d1461007a5780633c9d377d146100985780639942ec6f146100b6578063c3f90202146100d4575b600080fd5b6100646100f2565b6040516100719190610168565b60405180910390f35b6100826100f8565b60405161008f9190610168565b60405180910390f35b6100a0610102565b6040516100ad9190610168565b60405180910390f35b6100be610120565b6040516100cb9190610168565b60405180910390f35b6100dc610134565b6040516100e99190610168565b60405180910390f35b60005481565b6000600154905090565b60008061010d61013d565b9050610117610146565b90508091505090565b60008061012b610146565b90508091505090565b60008054905090565b60008054905090565b60008054905090565b6000819050919050565b6101628161014f565b82525050565b600060208201905061017d6000830184610159565b9291505056fea2646970667358221220ffd0c3dbf4d0a74fce8d5f6fa2e9aec26f0bee2d4ef66418e6332aa17048de6764736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x28D69C6D EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x3C9D377D EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x9942EC6F EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0xC3F90202 EQ PUSH2 0xD4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x82 PUSH2 0xF8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA0 PUSH2 0x102 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBE PUSH2 0x120 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCB SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDC PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x10D PUSH2 0x13D JUMP JUMPDEST SWAP1 POP PUSH2 0x117 PUSH2 0x146 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x12B PUSH2 0x146 JUMP JUMPDEST SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x162 DUP2 PUSH2 0x14F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x159 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT 0xD0 0xC3 0xDB DELEGATECALL 0xD0 0xA7 0x4F 0xCE DUP14 0x5F PUSH16 0xA2E9AEC26F0BEE2D4EF66418E6332AA1 PUSH17 0x48DE6764736F6C634300080B0033000000 ",
"sourceMap": "71:1006:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;87:17;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;174:66;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;860:215;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;425:111;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;780:65;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;87:17;;;;:::o;174:66::-;211:3;232:1;;225:8;;174:66;:::o;860:215::-;894:3;908:5;977:4;:2;:4::i;:::-;973:8;;1021:4;:2;:4::i;:::-;1017:8;;1067:1;1060:8;;;860:215;:::o;425:111::-;459:3;473:5;492:4;:2;:4::i;:::-;488:8;;528:1;521:8;;;425:111;:::o;780:65::-;816:3;837:1;;830:8;;780:65;:::o;610:::-;646:3;667:1;;660:8;;610:65;:::o;351:64::-;386:3;407:1;;400:8;;351:64;:::o;7:76:1:-;43:7;72:5;61:16;;7:76;;;:::o;89:115::-;174:23;191:5;174:23;:::i;:::-;169:3;162:36;89:115;;:::o;210:218::-;301:4;339:2;328:9;324:18;316:26;;352:69;418:1;407:9;403:17;394:6;352:69;:::i;:::-;210:218;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "88200",
"executionCost": "44347",
"totalCost": "132547"
},
"external": {
"f2()": "2529",
"f4()": "2503",
"f5()": "4650",
"get_y()": "2437",
"x()": "2407"
},
"internal": {
"f1()": "2123",
"f3()": "2123"
}
},
"methodIdentifiers": {
"f2()": "9942ec6f",
"f4()": "c3f90202",
"f5()": "3c9d377d",
"get_y()": "28d69c6d",
"x()": "0c55699c"
}
},
"abi": [
{
"inputs": [],
"name": "f2",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "f4",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "f5",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "get_y",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "x",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "f2",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "f4",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "f5",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "get_y",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "x",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Visibility.sol": "A"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Visibility.sol": {
"keccak256": "0x8e84a4611bddccf89a99bc733a5f657fdc3abb5877ad6836ae99edc6f1c83321",
"license": "GPL-3.0",
"urls": [
"bzz-raw://e7694508f409c78eb0b857363b89ab87d4cdec0ab6f60643c8125bce70dc8249",
"dweb:/ipfs/QmfGLfLdFCmjjFdyRZ8R4sF3EcKQ4ayhDhjzDKpgD7Tk48"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"gรถrli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_47": {
"entryPoint": null,
"id": 47,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 783,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 858,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 493,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_string_memory_ptr_fromMemory": {
"entryPoint": 909,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"allocate_memory": {
"entryPoint": 644,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 437,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 675,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 457,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 729,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 1058,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 590,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x21": {
"entryPoint": 390,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 1011,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 543,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 516,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 521,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 452,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 447,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 526,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_uint256": {
"entryPoint": 467,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4466:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "35:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "52:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "55:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "45:6:1"
},
"nodeType": "YulFunctionCall",
"src": "45:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "45:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "149:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "152:4:1",
"type": "",
"value": "0x21"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "142:6:1"
},
"nodeType": "YulFunctionCall",
"src": "142:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "142:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "173:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "176:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "166:6:1"
},
"nodeType": "YulFunctionCall",
"src": "166:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "166:15:1"
}
]
},
"name": "panic_error_0x21",
"nodeType": "YulFunctionDefinition",
"src": "7:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "233:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "243:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "259:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "253:5:1"
},
"nodeType": "YulFunctionCall",
"src": "253:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "243:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "226:6:1",
"type": ""
}
],
"src": "193:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "363:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "380:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "383:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "373:6:1"
},
"nodeType": "YulFunctionCall",
"src": "373:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "373:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "274:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "486:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "503:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "506:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "496:6:1"
},
"nodeType": "YulFunctionCall",
"src": "496:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "496:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "397:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "565:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "575:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "586:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "575:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "547:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "557:7:1",
"type": ""
}
],
"src": "520:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "646:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "703:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "712:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "715:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "705:6:1"
},
"nodeType": "YulFunctionCall",
"src": "705:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "705:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "669:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "694:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "676:17:1"
},
"nodeType": "YulFunctionCall",
"src": "676:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "666:2:1"
},
"nodeType": "YulFunctionCall",
"src": "666:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "659:6:1"
},
"nodeType": "YulFunctionCall",
"src": "659:43:1"
},
"nodeType": "YulIf",
"src": "656:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "639:5:1",
"type": ""
}
],
"src": "603:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "794:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "804:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "819:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "813:5:1"
},
"nodeType": "YulFunctionCall",
"src": "813:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "804:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "862:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "835:26:1"
},
"nodeType": "YulFunctionCall",
"src": "835:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "835:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "772:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "780:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "788:5:1",
"type": ""
}
],
"src": "731:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "969:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "986:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "989:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "979:6:1"
},
"nodeType": "YulFunctionCall",
"src": "979:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "979:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "880:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1092:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1109:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1112:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1102:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1102:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1102:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "1003:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1174:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1184:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1202:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1209:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1198:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1198:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1218:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1214:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1194:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1194:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1184:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1157:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1167:6:1",
"type": ""
}
],
"src": "1126:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1262:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1279:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1282:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1272:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1272:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "1272:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1376:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1379:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1369:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1369:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1369:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1400:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1403:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1393:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1393:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1393:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "1234:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1463:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1473:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1495:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1525:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1503:21:1"
},
"nodeType": "YulFunctionCall",
"src": "1503:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1491:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1491:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "1477:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1642:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1644:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1644:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1644:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1585:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1597:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1582:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1582:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1621:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1633:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1618:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1618:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1579:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1579:62:1"
},
"nodeType": "YulIf",
"src": "1576:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1680:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1684:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1673:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1673:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "1673:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1449:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1457:4:1",
"type": ""
}
],
"src": "1420:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1748:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1758:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1768:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1768:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1758:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1817:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1825:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1797:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1797:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1797:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1732:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1741:6:1",
"type": ""
}
],
"src": "1707:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1909:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2014:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "2016:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2016:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2016:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1986:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1994:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1983:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1983:30:1"
},
"nodeType": "YulIf",
"src": "1980:56:1"
},
{
"nodeType": "YulAssignment",
"src": "2046:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2076:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2054:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2054:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2046:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2120:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2132:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2138:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2128:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2128:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2120:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1893:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1904:4:1",
"type": ""
}
],
"src": "1842:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2205:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2215:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2224:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "2219:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2284:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2309:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2314:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2305:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2305:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2328:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2333:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2324:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2324:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2318:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2318:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2298:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2298:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "2298:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2245:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2248:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2242:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2242:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2256:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2258:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2267:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2270:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2263:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2263:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2258:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2238:3:1",
"statements": []
},
"src": "2234:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2381:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2431:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2436:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2427:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2427:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2445:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2420:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2420:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "2420:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2362:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2365:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2359:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2359:13:1"
},
"nodeType": "YulIf",
"src": "2356:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2187:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2192:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2197:6:1",
"type": ""
}
],
"src": "2156:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2564:326:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2574:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2641:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2599:41:1"
},
"nodeType": "YulFunctionCall",
"src": "2599:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2583:15:1"
},
"nodeType": "YulFunctionCall",
"src": "2583:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2574:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2665:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2672:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2658:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2658:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "2658:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2688:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2703:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2710:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2699:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2699:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2692:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2753:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "2755:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2755:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2755:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2734:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2739:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2730:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2730:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2748:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2727:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2727:25:1"
},
"nodeType": "YulIf",
"src": "2724:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2867:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2872:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2877:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2845:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2845:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "2845:39:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2537:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2542:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2550:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2558:5:1",
"type": ""
}
],
"src": "2469:421:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2983:282:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3032:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "3034:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3034:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3034:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3011:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3019:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3007:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3007:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3026:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3003:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3003:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2996:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2996:35:1"
},
"nodeType": "YulIf",
"src": "2993:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "3124:27:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3144:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3138:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3138:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3128:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3160:99:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3232:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3240:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3228:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3228:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3247:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3255:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3169:58:1"
},
"nodeType": "YulFunctionCall",
"src": "3169:90:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "3160:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2961:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2969:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2977:5:1",
"type": ""
}
],
"src": "2910:355:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3375:576:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3421:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3423:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3423:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3423:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3396:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3405:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3392:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3392:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3417:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3388:32:1"
},
"nodeType": "YulIf",
"src": "3385:119:1"
},
{
"nodeType": "YulBlock",
"src": "3514:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3529:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3543:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3533:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3558:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3604:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3615:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3600:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3600:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3624:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "3568:31:1"
},
"nodeType": "YulFunctionCall",
"src": "3568:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3558:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3652:292:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3667:39:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3691:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3702:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3687:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3687:18:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3681:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3681:25:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3671:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3753:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3755:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3755:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3755:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3725:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3733:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3722:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3722:30:1"
},
"nodeType": "YulIf",
"src": "3719:117:1"
},
{
"nodeType": "YulAssignment",
"src": "3850:84:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3906:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3917:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3902:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3902:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3926:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3860:41:1"
},
"nodeType": "YulFunctionCall",
"src": "3860:74:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3850:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3337:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3348:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3360:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3368:6:1",
"type": ""
}
],
"src": "3271:680:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3985:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4002:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4005:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3995:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3995:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3995:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4099:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4102:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4092:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4092:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4092:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4123:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4126:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4116:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4116:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4116:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "3957:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4194:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4204:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4218:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4224:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "4214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4214:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4204:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4235:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4265:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4271:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4261:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4261:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "4239:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4312:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4326:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4340:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4348:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4336:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4336:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4326:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4292:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4285:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4285:26:1"
},
"nodeType": "YulIf",
"src": "4282:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4415:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "4429:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4429:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4429:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4379:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4402:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4410:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4399:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4399:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4376:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4376:38:1"
},
"nodeType": "YulIf",
"src": "4373:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "4178:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4187:6:1",
"type": ""
}
],
"src": "4143:320:1"
}
]
},
"contents": "{\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040526000600360006101000a81548160ff021916908360028111156200002d576200002c62000186565b5b02179055503480156200003f57600080fd5b5060405162000bd338038062000bd383398181016040528101906200006591906200038d565b816000800181905550806000600101908051906020019062000089929190620000d6565b5033600060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000458565b828054620000e49062000422565b90600052602060002090601f01602090048101928262000108576000855562000154565b82601f106200012357805160ff191683800117855562000154565b8280016001018555821562000154579182015b828111156200015357825182559160200191906001019062000136565b5b50905062000163919062000167565b5090565b5b808211156200018257600081600090555060010162000168565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620001de81620001c9565b8114620001ea57600080fd5b50565b600081519050620001fe81620001d3565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000259826200020e565b810181811067ffffffffffffffff821117156200027b576200027a6200021f565b5b80604052505050565b600062000290620001b5565b90506200029e82826200024e565b919050565b600067ffffffffffffffff821115620002c157620002c06200021f565b5b620002cc826200020e565b9050602081019050919050565b60005b83811015620002f9578082015181840152602081019050620002dc565b8381111562000309576000848401525b50505050565b6000620003266200032084620002a3565b62000284565b90508281526020810184848401111562000345576200034462000209565b5b62000352848285620002d9565b509392505050565b600082601f83011262000372576200037162000204565b5b8151620003848482602086016200030f565b91505092915050565b60008060408385031215620003a757620003a6620001bf565b5b6000620003b785828601620001ed565b925050602083015167ffffffffffffffff811115620003db57620003da620001c4565b5b620003e9858286016200035a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200043b57607f821691505b60208210811415620004525762000451620003f3565b5b50919050565b61076b80620004686000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806323b8ca9f146100465780635424884114610064578063a46878fb14610084575b600080fd5b61004e6100a0565b60405161005b9190610378565b60405180910390f35b61006c6100b3565b60405161007b93929190610486565b60405180910390f35b61009e60048036038101906100999190610665565b610173565b005b600360009054906101000a900460ff1681565b60008060000154908060010180546100ca90610703565b80601f01602080910402602001604051908101604052809291908181526020018280546100f690610703565b80156101435780601f1061011857610100808354040283529160200191610143565b820191906000526020600020905b81548152906001019060200180831161012657829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000600281111561018757610186610301565b5b600360009054906101000a900460ff1660028111156101a9576101a8610301565b5b141561025957600060405180606001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509050806000808201518160000155602082015181600101908051906020019061020c92919061025e565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050505b505050565b82805461026a90610703565b90600052602060002090601f01602090048101928261028c57600085556102d3565b82601f106102a557805160ff19168380011785556102d3565b828001600101855582156102d3579182015b828111156102d25782518255916020019190600101906102b7565b5b5090506102e091906102e4565b5090565b5b808211156102fd5760008160009055506001016102e5565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061034157610340610301565b5b50565b600081905061035282610330565b919050565b600061036282610344565b9050919050565b61037281610357565b82525050565b600060208201905061038d6000830184610369565b92915050565b6000819050919050565b6103a681610393565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103e65780820151818401526020810190506103cb565b838111156103f5576000848401525b50505050565b6000601f19601f8301169050919050565b6000610417826103ac565b61042181856103b7565b93506104318185602086016103c8565b61043a816103fb565b840191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061047082610445565b9050919050565b61048081610465565b82525050565b600060608201905061049b600083018661039d565b81810360208301526104ad818561040c565b90506104bc6040830184610477565b949350505050565b6000604051905090565b600080fd5b600080fd5b6104e181610393565b81146104ec57600080fd5b50565b6000813590506104fe816104d8565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610546826103fb565b810181811067ffffffffffffffff821117156105655761056461050e565b5b80604052505050565b60006105786104c4565b9050610584828261053d565b919050565b600067ffffffffffffffff8211156105a4576105a361050e565b5b6105ad826103fb565b9050602081019050919050565b82818337600083830152505050565b60006105dc6105d784610589565b61056e565b9050828152602081018484840111156105f8576105f7610509565b5b6106038482856105ba565b509392505050565b600082601f8301126106205761061f610504565b5b81356106308482602086016105c9565b91505092915050565b61064281610465565b811461064d57600080fd5b50565b60008135905061065f81610639565b92915050565b60008060006060848603121561067e5761067d6104ce565b5b600061068c868287016104ef565b935050602084013567ffffffffffffffff8111156106ad576106ac6104d3565b5b6106b98682870161060b565b92505060406106ca86828701610650565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061071b57607f821691505b6020821081141561072f5761072e6106d4565b5b5091905056fea2646970667358221220c5f3721667de0700f3347663a210919a5c64be379a5639b384dcf83bb0d67cae64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x2D JUMPI PUSH3 0x2C PUSH3 0x186 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH3 0x3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xBD3 CODESIZE SUB DUP1 PUSH3 0xBD3 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x65 SWAP2 SWAP1 PUSH3 0x38D JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 ADD DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x89 SWAP3 SWAP2 SWAP1 PUSH3 0xD6 JUMP JUMPDEST POP CALLER PUSH1 0x0 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP PUSH3 0x458 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0xE4 SWAP1 PUSH3 0x422 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x108 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x154 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x123 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x154 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x154 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x153 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x136 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x163 SWAP2 SWAP1 PUSH3 0x167 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x182 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x168 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1DE DUP2 PUSH3 0x1C9 JUMP JUMPDEST DUP2 EQ PUSH3 0x1EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x1FE DUP2 PUSH3 0x1D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x259 DUP3 PUSH3 0x20E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x27B JUMPI PUSH3 0x27A PUSH3 0x21F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x290 PUSH3 0x1B5 JUMP JUMPDEST SWAP1 POP PUSH3 0x29E DUP3 DUP3 PUSH3 0x24E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x2C1 JUMPI PUSH3 0x2C0 PUSH3 0x21F JUMP JUMPDEST JUMPDEST PUSH3 0x2CC DUP3 PUSH3 0x20E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x2F9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x2DC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x309 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x326 PUSH3 0x320 DUP5 PUSH3 0x2A3 JUMP JUMPDEST PUSH3 0x284 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x345 JUMPI PUSH3 0x344 PUSH3 0x209 JUMP JUMPDEST JUMPDEST PUSH3 0x352 DUP5 DUP3 DUP6 PUSH3 0x2D9 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x372 JUMPI PUSH3 0x371 PUSH3 0x204 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x384 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x30F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x3A7 JUMPI PUSH3 0x3A6 PUSH3 0x1BF JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x3B7 DUP6 DUP3 DUP7 ADD PUSH3 0x1ED JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x3DB JUMPI PUSH3 0x3DA PUSH3 0x1C4 JUMP JUMPDEST JUMPDEST PUSH3 0x3E9 DUP6 DUP3 DUP7 ADD PUSH3 0x35A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x43B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x452 JUMPI PUSH3 0x451 PUSH3 0x3F3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x76B DUP1 PUSH3 0x468 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 0x23B8CA9F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x54248841 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xA46878FB EQ PUSH2 0x84 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x378 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x486 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x99 SWAP2 SWAP1 PUSH2 0x665 JUMP JUMPDEST PUSH2 0x173 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xCA SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xF6 SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x118 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x143 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x126 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x187 JUMPI PUSH2 0x186 PUSH2 0x301 JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x1A8 PUSH2 0x301 JUMP JUMPDEST JUMPDEST EQ ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x20C SWAP3 SWAP2 SWAP1 PUSH2 0x25E JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x26A SWAP1 PUSH2 0x703 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x28C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2A5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2D3 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2D2 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2B7 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2E0 SWAP2 SWAP1 PUSH2 0x2E4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x2E5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x341 JUMPI PUSH2 0x340 PUSH2 0x301 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x352 DUP3 PUSH2 0x330 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP3 PUSH2 0x344 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x372 DUP2 PUSH2 0x357 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x369 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A6 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3CB JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3F5 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x417 DUP3 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0x421 DUP2 DUP6 PUSH2 0x3B7 JUMP JUMPDEST SWAP4 POP PUSH2 0x431 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x43A DUP2 PUSH2 0x3FB JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x470 DUP3 PUSH2 0x445 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x480 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x49B PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x39D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4AD DUP2 DUP6 PUSH2 0x40C JUMP JUMPDEST SWAP1 POP PUSH2 0x4BC PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x477 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E1 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP2 EQ PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4FE DUP2 PUSH2 0x4D8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x546 DUP3 PUSH2 0x3FB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x565 JUMPI PUSH2 0x564 PUSH2 0x50E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x578 PUSH2 0x4C4 JUMP JUMPDEST SWAP1 POP PUSH2 0x584 DUP3 DUP3 PUSH2 0x53D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x5A3 PUSH2 0x50E JUMP JUMPDEST JUMPDEST PUSH2 0x5AD DUP3 PUSH2 0x3FB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DC PUSH2 0x5D7 DUP5 PUSH2 0x589 JUMP JUMPDEST PUSH2 0x56E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5F8 JUMPI PUSH2 0x5F7 PUSH2 0x509 JUMP JUMPDEST JUMPDEST PUSH2 0x603 DUP5 DUP3 DUP6 PUSH2 0x5BA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x620 JUMPI PUSH2 0x61F PUSH2 0x504 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x630 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x642 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP2 EQ PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x65F DUP2 PUSH2 0x639 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x67E JUMPI PUSH2 0x67D PUSH2 0x4CE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x68C DUP7 DUP3 DUP8 ADD PUSH2 0x4EF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6AD JUMPI PUSH2 0x6AC PUSH2 0x4D3 JUMP JUMPDEST JUMPDEST PUSH2 0x6B9 DUP7 DUP3 DUP8 ADD PUSH2 0x60B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x6CA DUP7 DUP3 DUP8 ADD PUSH2 0x650 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x71B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x72F JUMPI PUSH2 0x72E PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 RETURN PUSH19 0x1667DE0700F3347663A210919A5C64BE379A56 CODECOPY 0xB3 DUP5 0xDC 0xF8 EXTCODESIZE 0xB0 0xD6 PUSH29 0xAE64736F6C634300080B00330000000000000000000000000000000000 ",
"sourceMap": "168:640:0:-:0;;;265:10;237:38;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;282:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;360:4;336:17;:21;;:28;;;;399:5;374:17;:22;;:30;;;;;;;;;;;;:::i;:::-;;439:10;414:17;:22;;;:35;;;;;;;;;;;;;;;;;;282:174;;168:640;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:180:1:-;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:75;226:6;259:2;253:9;243:19;;193:75;:::o;274:117::-;383:1;380;373:12;397:117;506:1;503;496:12;520:77;557:7;586:5;575:16;;520:77;;;:::o;603:122::-;676:24;694:5;676:24;:::i;:::-;669:5;666:35;656:63;;715:1;712;705:12;656:63;603:122;:::o;731:143::-;788:5;819:6;813:13;804:22;;835:33;862:5;835:33;:::i;:::-;731:143;;;;:::o;880:117::-;989:1;986;979:12;1003:117;1112:1;1109;1102:12;1126:102;1167:6;1218:2;1214:7;1209:2;1202:5;1198:14;1194:28;1184:38;;1126:102;;;:::o;1234:180::-;1282:77;1279:1;1272:88;1379:4;1376:1;1369:15;1403:4;1400:1;1393:15;1420:281;1503:27;1525:4;1503:27;:::i;:::-;1495:6;1491:40;1633:6;1621:10;1618:22;1597:18;1585:10;1582:34;1579:62;1576:88;;;1644:18;;:::i;:::-;1576:88;1684:10;1680:2;1673:22;1463:238;1420:281;;:::o;1707:129::-;1741:6;1768:20;;:::i;:::-;1758:30;;1797:33;1825:4;1817:6;1797:33;:::i;:::-;1707:129;;;:::o;1842:308::-;1904:4;1994:18;1986:6;1983:30;1980:56;;;2016:18;;:::i;:::-;1980:56;2054:29;2076:6;2054:29;:::i;:::-;2046:37;;2138:4;2132;2128:15;2120:23;;1842:308;;;:::o;2156:307::-;2224:1;2234:113;2248:6;2245:1;2242:13;2234:113;;;2333:1;2328:3;2324:11;2318:18;2314:1;2309:3;2305:11;2298:39;2270:2;2267:1;2263:10;2258:15;;2234:113;;;2365:6;2362:1;2359:13;2356:101;;;2445:1;2436:6;2431:3;2427:16;2420:27;2356:101;2205:258;2156:307;;;:::o;2469:421::-;2558:5;2583:66;2599:49;2641:6;2599:49;:::i;:::-;2583:66;:::i;:::-;2574:75;;2672:6;2665:5;2658:21;2710:4;2703:5;2699:16;2748:3;2739:6;2734:3;2730:16;2727:25;2724:112;;;2755:79;;:::i;:::-;2724:112;2845:39;2877:6;2872:3;2867;2845:39;:::i;:::-;2564:326;2469:421;;;;;:::o;2910:355::-;2977:5;3026:3;3019:4;3011:6;3007:17;3003:27;2993:122;;3034:79;;:::i;:::-;2993:122;3144:6;3138:13;3169:90;3255:3;3247:6;3240:4;3232:6;3228:17;3169:90;:::i;:::-;3160:99;;2983:282;2910:355;;;;:::o;3271:680::-;3360:6;3368;3417:2;3405:9;3396:7;3392:23;3388:32;3385:119;;;3423:79;;:::i;:::-;3385:119;3543:1;3568:64;3624:7;3615:6;3604:9;3600:22;3568:64;:::i;:::-;3558:74;;3514:128;3702:2;3691:9;3687:18;3681:25;3733:18;3725:6;3722:30;3719:117;;;3755:79;;:::i;:::-;3719:117;3860:74;3926:7;3917:6;3906:9;3902:22;3860:74;:::i;:::-;3850:84;;3652:292;3271:680;;;;;:::o;3957:180::-;4005:77;4002:1;3995:88;4102:4;4099:1;4092:15;4126:4;4123:1;4116:15;4143:320;4187:6;4224:1;4218:4;4214:12;4204:22;;4271:1;4265:4;4261:12;4292:18;4282:81;;4348:4;4340:6;4336:17;4326:27;;4282:81;4410:2;4402:6;4399:14;4379:18;4376:38;4373:84;;;4429:18;;:::i;:::-;4373:84;4194:269;4143:320;;;:::o;168:640:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@academyInstructor_15": {
"entryPoint": 179,
"id": 15,
"parameterSlots": 0,
"returnSlots": 0
},
"@academyState_20": {
"entryPoint": 160,
"id": 20,
"parameterSlots": 0,
"returnSlots": 0
},
"@changeInstructor_76": {
"entryPoint": 371,
"id": 76,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 1481,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 1616,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 1547,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1263,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_string_memory_ptrt_address": {
"entryPoint": 1637,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1143,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_enum$_State_$12_to_t_uint8_fromStack": {
"entryPoint": 873,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1036,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 925,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_enum$_State_$12__to_t_uint8__fromStack_reversed": {
"entryPoint": 888,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address__to_t_uint256_t_string_memory_ptr_t_address__fromStack_reversed": {
"entryPoint": 1158,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1390,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1220,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 1417,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 940,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 951,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1125,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_enum$_State_$12": {
"entryPoint": 836,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1093,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 915,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_enum$_State_$12_to_t_uint8": {
"entryPoint": 855,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 1466,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 968,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 1795,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1341,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x21": {
"entryPoint": 769,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 1748,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1294,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1284,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1289,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1235,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1230,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1019,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_assert_t_enum$_State_$12": {
"entryPoint": 816,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 1593,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1240,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:7435:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "35:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "52:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "55:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "45:6:1"
},
"nodeType": "YulFunctionCall",
"src": "45:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "45:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "149:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "152:4:1",
"type": "",
"value": "0x21"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "142:6:1"
},
"nodeType": "YulFunctionCall",
"src": "142:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "142:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "173:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "176:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "166:6:1"
},
"nodeType": "YulFunctionCall",
"src": "166:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "166:15:1"
}
]
},
"name": "panic_error_0x21",
"nodeType": "YulFunctionDefinition",
"src": "7:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "244:62:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "278:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x21",
"nodeType": "YulIdentifier",
"src": "280:16:1"
},
"nodeType": "YulFunctionCall",
"src": "280:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "280:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "267:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "274:1:1",
"type": "",
"value": "3"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "264:2:1"
},
"nodeType": "YulFunctionCall",
"src": "264:12:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "257:6:1"
},
"nodeType": "YulFunctionCall",
"src": "257:20:1"
},
"nodeType": "YulIf",
"src": "254:46:1"
}
]
},
"name": "validator_assert_t_enum$_State_$12",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "237:5:1",
"type": ""
}
],
"src": "193:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "365:74:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "375:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "386:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "375:7:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "427:5:1"
}
],
"functionName": {
"name": "validator_assert_t_enum$_State_$12",
"nodeType": "YulIdentifier",
"src": "392:34:1"
},
"nodeType": "YulFunctionCall",
"src": "392:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "392:41:1"
}
]
},
"name": "cleanup_t_enum$_State_$12",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "347:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "357:7:1",
"type": ""
}
],
"src": "312:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:61:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:45:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "560:5:1"
}
],
"functionName": {
"name": "cleanup_t_enum$_State_$12",
"nodeType": "YulIdentifier",
"src": "534:25:1"
},
"nodeType": "YulFunctionCall",
"src": "534:32:1"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "521:9:1"
}
]
}
]
},
"name": "convert_t_enum$_State_$12_to_t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "491:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "501:9:1",
"type": ""
}
],
"src": "445:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "649:72:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "666:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "708:5:1"
}
],
"functionName": {
"name": "convert_t_enum$_State_$12_to_t_uint8",
"nodeType": "YulIdentifier",
"src": "671:36:1"
},
"nodeType": "YulFunctionCall",
"src": "671:43:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "659:6:1"
},
"nodeType": "YulFunctionCall",
"src": "659:56:1"
},
"nodeType": "YulExpressionStatement",
"src": "659:56:1"
}
]
},
"name": "abi_encode_t_enum$_State_$12_to_t_uint8_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "637:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "644:3:1",
"type": ""
}
],
"src": "578:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "831:130:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "841:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "853:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "864:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "849:3:1"
},
"nodeType": "YulFunctionCall",
"src": "849:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "841:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "927:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "940:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "951:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "936:3:1"
},
"nodeType": "YulFunctionCall",
"src": "936:17:1"
}
],
"functionName": {
"name": "abi_encode_t_enum$_State_$12_to_t_uint8_fromStack",
"nodeType": "YulIdentifier",
"src": "877:49:1"
},
"nodeType": "YulFunctionCall",
"src": "877:77:1"
},
"nodeType": "YulExpressionStatement",
"src": "877:77:1"
}
]
},
"name": "abi_encode_tuple_t_enum$_State_$12__to_t_uint8__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "803:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "815:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "826:4:1",
"type": ""
}
],
"src": "727:234:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1012:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1022:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1033:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1022:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "994:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1004:7:1",
"type": ""
}
],
"src": "967:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1115:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1132:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1155:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1137:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1137:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1125:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1125:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1125:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1103:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1110:3:1",
"type": ""
}
],
"src": "1050:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1233:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1244:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1260:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1254:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1254:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1244:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1216:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1226:6:1",
"type": ""
}
],
"src": "1174:99:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1375:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1392:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1397:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1385:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1385:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "1385:19:1"
},
{
"nodeType": "YulAssignment",
"src": "1413:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1432:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1437:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1428:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1428:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1413:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1347:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1352:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1363:11:1",
"type": ""
}
],
"src": "1279:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1503:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1513:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1522:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1517:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1582:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1607:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1612:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1603:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1603:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1626:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1631:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1622:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1622:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1616:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1616:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1596:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1596:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "1596:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1543:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1546:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1540:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1540:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1554:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1556:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1565:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1568:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1561:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1561:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1556:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1536:3:1",
"statements": []
},
"src": "1532:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1679:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1729:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1734:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1725:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1725:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1743:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1718:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1718:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "1718:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1660:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1663:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1657:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1657:13:1"
},
"nodeType": "YulIf",
"src": "1654:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1485:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1490:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1495:6:1",
"type": ""
}
],
"src": "1454:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1815:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1825:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1843:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1850:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1839:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1839:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1859:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1855:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1855:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1835:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1835:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1825:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1798:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1808:6:1",
"type": ""
}
],
"src": "1767:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1967:272:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1977:53:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2024:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1991:32:1"
},
"nodeType": "YulFunctionCall",
"src": "1991:39:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1981:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2039:78:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2105:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2110:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2046:58:1"
},
"nodeType": "YulFunctionCall",
"src": "2046:71:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2039:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2152:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2159:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2148:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2148:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2166:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2171:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2126:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2126:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "2126:52:1"
},
{
"nodeType": "YulAssignment",
"src": "2187:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2198:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2225:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2203:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2203:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2194:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2194:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2187:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1948:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1955:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1963:3:1",
"type": ""
}
],
"src": "1875:364:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2290:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2300:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2315:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2322:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2311:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2311:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2300:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2272:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2282:7:1",
"type": ""
}
],
"src": "2245:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2422:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2432:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2461:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2443:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2443:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2432:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2404:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2414:7:1",
"type": ""
}
],
"src": "2377:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2544:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2561:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2584:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "2566:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2566:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2554:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2554:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "2554:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2532:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2539:3:1",
"type": ""
}
],
"src": "2479:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2777:359:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2787:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2799:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2810:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2795:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2795:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2787:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2867:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2880:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2891:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2876:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2876:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "2823:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2823:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "2823:71:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2915:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2926:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2911:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2911:18:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2935:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2941:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2931:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2931:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2904:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2904:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "2904:48:1"
},
{
"nodeType": "YulAssignment",
"src": "2961:86:1",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3033:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3042:4:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2969:63:1"
},
"nodeType": "YulFunctionCall",
"src": "2969:78:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2961:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3101:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3114:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3125:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3110:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3110:18:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3057:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3057:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "3057:72:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address__to_t_uint256_t_string_memory_ptr_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2733:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2745:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2753:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2761:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2772:4:1",
"type": ""
}
],
"src": "2603:533:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3182:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3192:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3208:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3202:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3202:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3192:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3175:6:1",
"type": ""
}
],
"src": "3142:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3312:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3329:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3332:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3322:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3322:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3322:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "3223:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3435:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3452:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3455:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3445:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3445:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3445:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "3346:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3512:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3569:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3578:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3581:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3571:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3571:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3571:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3535:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3560:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3542:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3542:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3532:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3532:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3525:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3525:43:1"
},
"nodeType": "YulIf",
"src": "3522:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3505:5:1",
"type": ""
}
],
"src": "3469:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3649:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3659:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3681:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3668:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3668:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3659:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3724:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "3697:26:1"
},
"nodeType": "YulFunctionCall",
"src": "3697:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "3697:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3627:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3635:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3643:5:1",
"type": ""
}
],
"src": "3597:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3831:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3848:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3851:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3841:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3841:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3841:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "3742:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3954:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3971:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3974:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3964:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3964:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3964:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "3865:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4016:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4033:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4036:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4026:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4026:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "4026:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4130:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4133:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4123:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4123:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4123:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4154:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4157:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4147:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4147:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4147:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "3988:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4217:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4227:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4249:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4279:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "4257:21:1"
},
"nodeType": "YulFunctionCall",
"src": "4257:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4245:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4245:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "4231:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4396:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4398:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4398:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4398:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4339:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4351:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4336:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4336:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4375:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4387:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4372:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4372:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "4333:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4333:62:1"
},
"nodeType": "YulIf",
"src": "4330:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4434:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4438:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4427:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4427:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "4427:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4203:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4211:4:1",
"type": ""
}
],
"src": "4174:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4502:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4512:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "4522:18:1"
},
"nodeType": "YulFunctionCall",
"src": "4522:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4512:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4571:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4579:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "4551:19:1"
},
"nodeType": "YulFunctionCall",
"src": "4551:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "4551:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4486:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4495:6:1",
"type": ""
}
],
"src": "4461:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4663:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4768:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4770:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4770:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4770:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4740:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4748:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4737:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4737:30:1"
},
"nodeType": "YulIf",
"src": "4734:56:1"
},
{
"nodeType": "YulAssignment",
"src": "4800:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4830:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "4808:21:1"
},
"nodeType": "YulFunctionCall",
"src": "4808:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4800:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4874:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4886:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4892:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4882:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4882:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4874:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4647:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4658:4:1",
"type": ""
}
],
"src": "4596:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4961:103:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4984:3:1"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4989:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4994:6:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "4971:12:1"
},
"nodeType": "YulFunctionCall",
"src": "4971:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4971:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5042:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5047:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5038:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5038:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5056:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5031:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5031:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "5031:27:1"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4943:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4948:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4953:6:1",
"type": ""
}
],
"src": "4910:154:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5154:328:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5164:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5231:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5189:41:1"
},
"nodeType": "YulFunctionCall",
"src": "5189:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "5173:15:1"
},
"nodeType": "YulFunctionCall",
"src": "5173:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5164:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5255:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5262:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5248:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5248:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "5248:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5278:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5293:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5300:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5289:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5289:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "5282:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5343:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "5345:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5345:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5345:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5324:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5329:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5320:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5320:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5338:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5317:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5317:25:1"
},
"nodeType": "YulIf",
"src": "5314:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5459:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5464:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5469:6:1"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "5435:23:1"
},
"nodeType": "YulFunctionCall",
"src": "5435:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "5435:41:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "5127:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5132:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5140:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "5148:5:1",
"type": ""
}
],
"src": "5070:412:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5564:278:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5613:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "5615:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5615:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5615:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5592:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5600:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5588:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5588:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5607:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5584:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5584:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5577:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5577:35:1"
},
"nodeType": "YulIf",
"src": "5574:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5705:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5732:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5719:12:1"
},
"nodeType": "YulFunctionCall",
"src": "5719:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5709:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5748:88:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5809:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5817:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5805:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5805:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5824:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5832:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5757:47:1"
},
"nodeType": "YulFunctionCall",
"src": "5757:79:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5748:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5542:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5550:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "5558:5:1",
"type": ""
}
],
"src": "5502:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5891:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5948:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5957:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5960:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5950:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5950:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "5950:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5914:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5939:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "5921:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5921:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "5911:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5911:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5904:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5904:43:1"
},
"nodeType": "YulIf",
"src": "5901:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5884:5:1",
"type": ""
}
],
"src": "5848:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6028:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6038:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6060:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "6047:12:1"
},
"nodeType": "YulFunctionCall",
"src": "6047:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6038:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6103:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "6076:26:1"
},
"nodeType": "YulFunctionCall",
"src": "6076:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "6076:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6006:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6014:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6022:5:1",
"type": ""
}
],
"src": "5976:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6231:689:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6277:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "6279:77:1"
},
"nodeType": "YulFunctionCall",
"src": "6279:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "6279:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6252:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6261:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6248:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6248:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6273:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "6244:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6244:32:1"
},
"nodeType": "YulIf",
"src": "6241:119:1"
},
{
"nodeType": "YulBlock",
"src": "6370:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6385:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6399:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6389:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6414:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6449:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6460:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6445:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6445:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6469:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "6424:20:1"
},
"nodeType": "YulFunctionCall",
"src": "6424:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6414:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6497:288:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6512:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6543:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6554:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6539:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6539:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "6526:12:1"
},
"nodeType": "YulFunctionCall",
"src": "6526:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6516:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6605:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "6607:77:1"
},
"nodeType": "YulFunctionCall",
"src": "6607:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "6607:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6577:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6585:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6574:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6574:30:1"
},
"nodeType": "YulIf",
"src": "6571:117:1"
},
{
"nodeType": "YulAssignment",
"src": "6702:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6747:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6758:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6743:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6743:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6767:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6712:30:1"
},
"nodeType": "YulFunctionCall",
"src": "6712:63:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6702:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6795:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6810:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6824:2:1",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6814:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6840:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6875:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6886:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6871:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6871:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6895:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "6850:20:1"
},
"nodeType": "YulFunctionCall",
"src": "6850:53:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6840:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_string_memory_ptrt_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6185:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "6196:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6208:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "6216:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "6224:6:1",
"type": ""
}
],
"src": "6121:799:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6954:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6971:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6974:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6964:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6964:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6964:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7068:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7071:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7061:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7061:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7061:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7092:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7095:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7085:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7085:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7085:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "6926:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7163:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7173:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7187:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7193:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "7183:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7183:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7173:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "7204:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7234:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7240:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7230:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7230:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "7208:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7281:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7295:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7309:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7317:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7305:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7305:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7295:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "7261:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "7254:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7254:26:1"
},
"nodeType": "YulIf",
"src": "7251:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7384:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "7398:16:1"
},
"nodeType": "YulFunctionCall",
"src": "7398:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "7398:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "7348:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7371:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7379:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "7368:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7368:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "7345:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7345:38:1"
},
"nodeType": "YulIf",
"src": "7342:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "7147:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7156:6:1",
"type": ""
}
],
"src": "7112:320:1"
}
]
},
"contents": "{\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_State_$12(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_State_$12(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_State_$12(value)\n }\n\n function convert_t_enum$_State_$12_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_State_$12(value)\n }\n\n function abi_encode_t_enum$_State_$12_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_State_$12_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_State_$12__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_State_$12_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address__to_t_uint256_t_string_memory_ptr_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806323b8ca9f146100465780635424884114610064578063a46878fb14610084575b600080fd5b61004e6100a0565b60405161005b9190610378565b60405180910390f35b61006c6100b3565b60405161007b93929190610486565b60405180910390f35b61009e60048036038101906100999190610665565b610173565b005b600360009054906101000a900460ff1681565b60008060000154908060010180546100ca90610703565b80601f01602080910402602001604051908101604052809291908181526020018280546100f690610703565b80156101435780601f1061011857610100808354040283529160200191610143565b820191906000526020600020905b81548152906001019060200180831161012657829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000600281111561018757610186610301565b5b600360009054906101000a900460ff1660028111156101a9576101a8610301565b5b141561025957600060405180606001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509050806000808201518160000155602082015181600101908051906020019061020c92919061025e565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050505b505050565b82805461026a90610703565b90600052602060002090601f01602090048101928261028c57600085556102d3565b82601f106102a557805160ff19168380011785556102d3565b828001600101855582156102d3579182015b828111156102d25782518255916020019190600101906102b7565b5b5090506102e091906102e4565b5090565b5b808211156102fd5760008160009055506001016102e5565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061034157610340610301565b5b50565b600081905061035282610330565b919050565b600061036282610344565b9050919050565b61037281610357565b82525050565b600060208201905061038d6000830184610369565b92915050565b6000819050919050565b6103a681610393565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103e65780820151818401526020810190506103cb565b838111156103f5576000848401525b50505050565b6000601f19601f8301169050919050565b6000610417826103ac565b61042181856103b7565b93506104318185602086016103c8565b61043a816103fb565b840191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061047082610445565b9050919050565b61048081610465565b82525050565b600060608201905061049b600083018661039d565b81810360208301526104ad818561040c565b90506104bc6040830184610477565b949350505050565b6000604051905090565b600080fd5b600080fd5b6104e181610393565b81146104ec57600080fd5b50565b6000813590506104fe816104d8565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610546826103fb565b810181811067ffffffffffffffff821117156105655761056461050e565b5b80604052505050565b60006105786104c4565b9050610584828261053d565b919050565b600067ffffffffffffffff8211156105a4576105a361050e565b5b6105ad826103fb565b9050602081019050919050565b82818337600083830152505050565b60006105dc6105d784610589565b61056e565b9050828152602081018484840111156105f8576105f7610509565b5b6106038482856105ba565b509392505050565b600082601f8301126106205761061f610504565b5b81356106308482602086016105c9565b91505092915050565b61064281610465565b811461064d57600080fd5b50565b60008135905061065f81610639565b92915050565b60008060006060848603121561067e5761067d6104ce565b5b600061068c868287016104ef565b935050602084013567ffffffffffffffff8111156106ad576106ac6104d3565b5b6106b98682870161060b565b92505060406106ca86828701610650565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061071b57607f821691505b6020821081141561072f5761072e6106d4565b5b5091905056fea2646970667358221220c5f3721667de0700f3347663a210919a5c64be379a5639b384dcf83bb0d67cae64736f6c634300080b0033",
"opcodes": "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 0x23B8CA9F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x54248841 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xA46878FB EQ PUSH2 0x84 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x378 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x486 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x99 SWAP2 SWAP1 PUSH2 0x665 JUMP JUMPDEST PUSH2 0x173 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xCA SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xF6 SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x118 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x143 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x126 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x187 JUMPI PUSH2 0x186 PUSH2 0x301 JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x1A8 PUSH2 0x301 JUMP JUMPDEST JUMPDEST EQ ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x20C SWAP3 SWAP2 SWAP1 PUSH2 0x25E JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x26A SWAP1 PUSH2 0x703 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x28C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2A5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2D3 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2D2 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2B7 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2E0 SWAP2 SWAP1 PUSH2 0x2E4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x2E5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x341 JUMPI PUSH2 0x340 PUSH2 0x301 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x352 DUP3 PUSH2 0x330 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP3 PUSH2 0x344 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x372 DUP2 PUSH2 0x357 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x369 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A6 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3CB JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3F5 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x417 DUP3 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0x421 DUP2 DUP6 PUSH2 0x3B7 JUMP JUMPDEST SWAP4 POP PUSH2 0x431 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x43A DUP2 PUSH2 0x3FB JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x470 DUP3 PUSH2 0x445 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x480 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x49B PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x39D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4AD DUP2 DUP6 PUSH2 0x40C JUMP JUMPDEST SWAP1 POP PUSH2 0x4BC PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x477 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E1 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP2 EQ PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4FE DUP2 PUSH2 0x4D8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x546 DUP3 PUSH2 0x3FB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x565 JUMPI PUSH2 0x564 PUSH2 0x50E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x578 PUSH2 0x4C4 JUMP JUMPDEST SWAP1 POP PUSH2 0x584 DUP3 DUP3 PUSH2 0x53D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x5A3 PUSH2 0x50E JUMP JUMPDEST JUMPDEST PUSH2 0x5AD DUP3 PUSH2 0x3FB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DC PUSH2 0x5D7 DUP5 PUSH2 0x589 JUMP JUMPDEST PUSH2 0x56E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5F8 JUMPI PUSH2 0x5F7 PUSH2 0x509 JUMP JUMPDEST JUMPDEST PUSH2 0x603 DUP5 DUP3 DUP6 PUSH2 0x5BA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x620 JUMPI PUSH2 0x61F PUSH2 0x504 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x630 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x642 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP2 EQ PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x65F DUP2 PUSH2 0x639 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x67E JUMPI PUSH2 0x67D PUSH2 0x4CE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x68C DUP7 DUP3 DUP8 ADD PUSH2 0x4EF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6AD JUMPI PUSH2 0x6AC PUSH2 0x4D3 JUMP JUMPDEST JUMPDEST PUSH2 0x6B9 DUP7 DUP3 DUP8 ADD PUSH2 0x60B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x6CA DUP7 DUP3 DUP8 ADD PUSH2 0x650 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x71B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x72F JUMPI PUSH2 0x72E PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC5 RETURN PUSH19 0x1667DE0700F3347663A210919A5C64BE379A56 CODECOPY 0xB3 DUP5 0xDC 0xF8 EXTCODESIZE 0xB0 0xD6 PUSH29 0xAE64736F6C634300080B00330000000000000000000000000000000000 ",
"sourceMap": "168:640:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;191:35;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;462:344;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;237:38;;;;;;;;;;;;;:::o;191:35::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;462:344::-;572:10;556:26;;;;;;;;:::i;:::-;;:12;;;;;;;;;;;:26;;;;;;;;:::i;:::-;;;553:247;;;597:31;631:111;;;;;;;;665:4;631:111;;;;693:5;631:111;;;;722:5;631:111;;;;;597:145;;776:13;756:17;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;583:217;553:247;462:344;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:180:1:-;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:113;274:1;267:5;264:12;254:46;;280:18;;:::i;:::-;254:46;193:113;:::o;312:127::-;357:7;386:5;375:16;;392:41;427:5;392:41;:::i;:::-;312:127;;;:::o;445:::-;501:9;534:32;560:5;534:32;:::i;:::-;521:45;;445:127;;;:::o;578:143::-;671:43;708:5;671:43;:::i;:::-;666:3;659:56;578:143;;:::o;727:234::-;826:4;864:2;853:9;849:18;841:26;;877:77;951:1;940:9;936:17;927:6;877:77;:::i;:::-;727:234;;;;:::o;967:77::-;1004:7;1033:5;1022:16;;967:77;;;:::o;1050:118::-;1137:24;1155:5;1137:24;:::i;:::-;1132:3;1125:37;1050:118;;:::o;1174:99::-;1226:6;1260:5;1254:12;1244:22;;1174:99;;;:::o;1279:169::-;1363:11;1397:6;1392:3;1385:19;1437:4;1432:3;1428:14;1413:29;;1279:169;;;;:::o;1454:307::-;1522:1;1532:113;1546:6;1543:1;1540:13;1532:113;;;1631:1;1626:3;1622:11;1616:18;1612:1;1607:3;1603:11;1596:39;1568:2;1565:1;1561:10;1556:15;;1532:113;;;1663:6;1660:1;1657:13;1654:101;;;1743:1;1734:6;1729:3;1725:16;1718:27;1654:101;1503:258;1454:307;;;:::o;1767:102::-;1808:6;1859:2;1855:7;1850:2;1843:5;1839:14;1835:28;1825:38;;1767:102;;;:::o;1875:364::-;1963:3;1991:39;2024:5;1991:39;:::i;:::-;2046:71;2110:6;2105:3;2046:71;:::i;:::-;2039:78;;2126:52;2171:6;2166:3;2159:4;2152:5;2148:16;2126:52;:::i;:::-;2203:29;2225:6;2203:29;:::i;:::-;2198:3;2194:39;2187:46;;1967:272;1875:364;;;;:::o;2245:126::-;2282:7;2322:42;2315:5;2311:54;2300:65;;2245:126;;;:::o;2377:96::-;2414:7;2443:24;2461:5;2443:24;:::i;:::-;2432:35;;2377:96;;;:::o;2479:118::-;2566:24;2584:5;2566:24;:::i;:::-;2561:3;2554:37;2479:118;;:::o;2603:533::-;2772:4;2810:2;2799:9;2795:18;2787:26;;2823:71;2891:1;2880:9;2876:17;2867:6;2823:71;:::i;:::-;2941:9;2935:4;2931:20;2926:2;2915:9;2911:18;2904:48;2969:78;3042:4;3033:6;2969:78;:::i;:::-;2961:86;;3057:72;3125:2;3114:9;3110:18;3101:6;3057:72;:::i;:::-;2603:533;;;;;;:::o;3142:75::-;3175:6;3208:2;3202:9;3192:19;;3142:75;:::o;3223:117::-;3332:1;3329;3322:12;3346:117;3455:1;3452;3445:12;3469:122;3542:24;3560:5;3542:24;:::i;:::-;3535:5;3532:35;3522:63;;3581:1;3578;3571:12;3522:63;3469:122;:::o;3597:139::-;3643:5;3681:6;3668:20;3659:29;;3697:33;3724:5;3697:33;:::i;:::-;3597:139;;;;:::o;3742:117::-;3851:1;3848;3841:12;3865:117;3974:1;3971;3964:12;3988:180;4036:77;4033:1;4026:88;4133:4;4130:1;4123:15;4157:4;4154:1;4147:15;4174:281;4257:27;4279:4;4257:27;:::i;:::-;4249:6;4245:40;4387:6;4375:10;4372:22;4351:18;4339:10;4336:34;4333:62;4330:88;;;4398:18;;:::i;:::-;4330:88;4438:10;4434:2;4427:22;4217:238;4174:281;;:::o;4461:129::-;4495:6;4522:20;;:::i;:::-;4512:30;;4551:33;4579:4;4571:6;4551:33;:::i;:::-;4461:129;;;:::o;4596:308::-;4658:4;4748:18;4740:6;4737:30;4734:56;;;4770:18;;:::i;:::-;4734:56;4808:29;4830:6;4808:29;:::i;:::-;4800:37;;4892:4;4886;4882:15;4874:23;;4596:308;;;:::o;4910:154::-;4994:6;4989:3;4984;4971:30;5056:1;5047:6;5042:3;5038:16;5031:27;4910:154;;;:::o;5070:412::-;5148:5;5173:66;5189:49;5231:6;5189:49;:::i;:::-;5173:66;:::i;:::-;5164:75;;5262:6;5255:5;5248:21;5300:4;5293:5;5289:16;5338:3;5329:6;5324:3;5320:16;5317:25;5314:112;;;5345:79;;:::i;:::-;5314:112;5435:41;5469:6;5464:3;5459;5435:41;:::i;:::-;5154:328;5070:412;;;;;:::o;5502:340::-;5558:5;5607:3;5600:4;5592:6;5588:17;5584:27;5574:122;;5615:79;;:::i;:::-;5574:122;5732:6;5719:20;5757:79;5832:3;5824:6;5817:4;5809:6;5805:17;5757:79;:::i;:::-;5748:88;;5564:278;5502:340;;;;:::o;5848:122::-;5921:24;5939:5;5921:24;:::i;:::-;5914:5;5911:35;5901:63;;5960:1;5957;5950:12;5901:63;5848:122;:::o;5976:139::-;6022:5;6060:6;6047:20;6038:29;;6076:33;6103:5;6076:33;:::i;:::-;5976:139;;;;:::o;6121:799::-;6208:6;6216;6224;6273:2;6261:9;6252:7;6248:23;6244:32;6241:119;;;6279:79;;:::i;:::-;6241:119;6399:1;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6370:117;6554:2;6543:9;6539:18;6526:32;6585:18;6577:6;6574:30;6571:117;;;6607:79;;:::i;:::-;6571:117;6712:63;6767:7;6758:6;6747:9;6743:22;6712:63;:::i;:::-;6702:73;;6497:288;6824:2;6850:53;6895:7;6886:6;6875:9;6871:22;6850:53;:::i;:::-;6840:63;;6795:118;6121:799;;;;;:::o;6926:180::-;6974:77;6971:1;6964:88;7071:4;7068:1;7061:15;7095:4;7092:1;7085:15;7112:320;7156:6;7193:1;7187:4;7183:12;7173:22;;7240:1;7234:4;7230:12;7261:18;7251:81;;7317:4;7309:6;7305:17;7295:27;;7251:81;7379:2;7371:6;7368:14;7348:18;7345:38;7342:84;;;7398:18;;:::i;:::-;7342:84;7163:269;7112:320;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "379800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"academyInstructor()": "infinite",
"academyState()": "2538",
"changeInstructor(uint256,string,address)": "infinite"
}
},
"methodIdentifiers": {
"academyInstructor()": "54248841",
"academyState()": "23b8ca9f",
"changeInstructor(uint256,string,address)": "a46878fb"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "academyInstructor",
"outputs": [
{
"internalType": "uint256",
"name": "age",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "academyState",
"outputs": [
{
"internalType": "enum State",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "address",
"name": "_addr",
"type": "address"
}
],
"name": "changeInstructor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "academyInstructor",
"outputs": [
{
"internalType": "uint256",
"name": "age",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "academyState",
"outputs": [
{
"internalType": "enum State",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "address",
"name": "_addr",
"type": "address"
}
],
"name": "changeInstructor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Insructor.sol": "Academy"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Insructor.sol": {
"keccak256": "0xed1d92a8da7d46a4d6d6d82b2282a4e3750c0e30632b18eaf4f0f8aaa71c207a",
"license": "GPL-3.0",
"urls": [
"bzz-raw://48e339e9c36aa5d1cb006d0a6df80871978d061f93f6d9a71cc3b9c721606f4c",
"dweb:/ipfs/QmNnFMPvYCAenJyhGC6j2awiTnD8zooyF124KLr1Zo2xYZ"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"gรถrli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_47": {
"entryPoint": null,
"id": 47,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 783,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 858,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 493,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_string_memory_ptr_fromMemory": {
"entryPoint": 909,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"allocate_memory": {
"entryPoint": 644,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 437,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 675,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 457,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 729,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 1058,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 590,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x21": {
"entryPoint": 390,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 1011,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 543,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 516,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 521,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 452,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 447,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 526,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_uint256": {
"entryPoint": 467,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4466:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "35:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "52:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "55:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "45:6:1"
},
"nodeType": "YulFunctionCall",
"src": "45:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "45:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "149:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "152:4:1",
"type": "",
"value": "0x21"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "142:6:1"
},
"nodeType": "YulFunctionCall",
"src": "142:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "142:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "173:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "176:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "166:6:1"
},
"nodeType": "YulFunctionCall",
"src": "166:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "166:15:1"
}
]
},
"name": "panic_error_0x21",
"nodeType": "YulFunctionDefinition",
"src": "7:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "233:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "243:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "259:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "253:5:1"
},
"nodeType": "YulFunctionCall",
"src": "253:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "243:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "226:6:1",
"type": ""
}
],
"src": "193:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "363:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "380:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "383:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "373:6:1"
},
"nodeType": "YulFunctionCall",
"src": "373:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "373:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "274:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "486:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "503:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "506:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "496:6:1"
},
"nodeType": "YulFunctionCall",
"src": "496:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "496:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "397:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "565:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "575:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "586:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "575:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "547:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "557:7:1",
"type": ""
}
],
"src": "520:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "646:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "703:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "712:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "715:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "705:6:1"
},
"nodeType": "YulFunctionCall",
"src": "705:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "705:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "669:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "694:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "676:17:1"
},
"nodeType": "YulFunctionCall",
"src": "676:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "666:2:1"
},
"nodeType": "YulFunctionCall",
"src": "666:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "659:6:1"
},
"nodeType": "YulFunctionCall",
"src": "659:43:1"
},
"nodeType": "YulIf",
"src": "656:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "639:5:1",
"type": ""
}
],
"src": "603:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "794:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "804:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "819:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "813:5:1"
},
"nodeType": "YulFunctionCall",
"src": "813:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "804:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "862:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "835:26:1"
},
"nodeType": "YulFunctionCall",
"src": "835:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "835:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "772:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "780:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "788:5:1",
"type": ""
}
],
"src": "731:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "969:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "986:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "989:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "979:6:1"
},
"nodeType": "YulFunctionCall",
"src": "979:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "979:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "880:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1092:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1109:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1112:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1102:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1102:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1102:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "1003:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1174:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1184:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1202:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1209:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1198:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1198:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1218:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1214:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1194:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1194:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1184:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1157:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1167:6:1",
"type": ""
}
],
"src": "1126:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1262:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1279:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1282:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1272:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1272:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "1272:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1376:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1379:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1369:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1369:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1369:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1400:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1403:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1393:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1393:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1393:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "1234:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1463:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1473:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1495:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1525:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1503:21:1"
},
"nodeType": "YulFunctionCall",
"src": "1503:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1491:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1491:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "1477:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1642:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1644:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1644:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1644:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1585:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1597:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1582:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1582:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1621:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1633:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1618:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1618:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1579:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1579:62:1"
},
"nodeType": "YulIf",
"src": "1576:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1680:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1684:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1673:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1673:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "1673:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1449:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1457:4:1",
"type": ""
}
],
"src": "1420:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1748:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1758:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1768:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1768:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1758:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1817:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1825:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1797:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1797:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1797:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1732:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1741:6:1",
"type": ""
}
],
"src": "1707:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1909:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2014:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "2016:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2016:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2016:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1986:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1994:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1983:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1983:30:1"
},
"nodeType": "YulIf",
"src": "1980:56:1"
},
{
"nodeType": "YulAssignment",
"src": "2046:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2076:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2054:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2054:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2046:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2120:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2132:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2138:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2128:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2128:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2120:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1893:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1904:4:1",
"type": ""
}
],
"src": "1842:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2205:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2215:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2224:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "2219:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2284:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2309:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2314:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2305:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2305:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2328:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2333:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2324:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2324:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2318:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2318:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2298:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2298:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "2298:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2245:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2248:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2242:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2242:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2256:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2258:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2267:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2270:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2263:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2263:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2258:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2238:3:1",
"statements": []
},
"src": "2234:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2381:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2431:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2436:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2427:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2427:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2445:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2420:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2420:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "2420:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2362:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2365:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2359:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2359:13:1"
},
"nodeType": "YulIf",
"src": "2356:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2187:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2192:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2197:6:1",
"type": ""
}
],
"src": "2156:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2564:326:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2574:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2641:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2599:41:1"
},
"nodeType": "YulFunctionCall",
"src": "2599:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2583:15:1"
},
"nodeType": "YulFunctionCall",
"src": "2583:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2574:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2665:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2672:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2658:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2658:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "2658:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2688:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2703:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2710:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2699:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2699:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2692:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2753:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "2755:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2755:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2755:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2734:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2739:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2730:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2730:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2748:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2727:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2727:25:1"
},
"nodeType": "YulIf",
"src": "2724:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2867:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2872:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2877:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2845:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2845:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "2845:39:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2537:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2542:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2550:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2558:5:1",
"type": ""
}
],
"src": "2469:421:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2983:282:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3032:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "3034:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3034:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3034:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3011:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3019:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3007:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3007:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3026:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3003:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3003:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2996:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2996:35:1"
},
"nodeType": "YulIf",
"src": "2993:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "3124:27:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3144:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3138:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3138:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3128:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3160:99:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3232:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3240:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3228:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3228:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3247:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3255:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3169:58:1"
},
"nodeType": "YulFunctionCall",
"src": "3169:90:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "3160:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2961:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2969:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2977:5:1",
"type": ""
}
],
"src": "2910:355:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3375:576:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3421:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3423:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3423:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3423:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3396:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3405:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3392:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3392:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3417:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3388:32:1"
},
"nodeType": "YulIf",
"src": "3385:119:1"
},
{
"nodeType": "YulBlock",
"src": "3514:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3529:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3543:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3533:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3558:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3604:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3615:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3600:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3600:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3624:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "3568:31:1"
},
"nodeType": "YulFunctionCall",
"src": "3568:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3558:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3652:292:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3667:39:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3691:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3702:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3687:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3687:18:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3681:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3681:25:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3671:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3753:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3755:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3755:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3755:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3725:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3733:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3722:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3722:30:1"
},
"nodeType": "YulIf",
"src": "3719:117:1"
},
{
"nodeType": "YulAssignment",
"src": "3850:84:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3906:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3917:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3902:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3902:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3926:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3860:41:1"
},
"nodeType": "YulFunctionCall",
"src": "3860:74:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3850:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3337:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3348:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3360:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3368:6:1",
"type": ""
}
],
"src": "3271:680:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3985:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4002:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4005:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3995:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3995:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3995:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4099:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4102:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4092:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4092:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4092:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4123:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4126:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4116:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4116:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4116:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "3957:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4194:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4204:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4218:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4224:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "4214:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4214:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4204:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4235:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4265:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4271:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4261:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4261:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "4239:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4312:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4326:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4340:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4348:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4336:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4336:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4326:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4292:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4285:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4285:26:1"
},
"nodeType": "YulIf",
"src": "4282:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4415:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "4429:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4429:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4429:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "4379:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4402:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4410:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4399:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4399:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4376:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4376:38:1"
},
"nodeType": "YulIf",
"src": "4373:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "4178:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4187:6:1",
"type": ""
}
],
"src": "4143:320:1"
}
]
},
"contents": "{\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040526000600360006101000a81548160ff021916908360028111156200002d576200002c62000186565b5b02179055503480156200003f57600080fd5b5060405162000bd338038062000bd383398181016040528101906200006591906200038d565b816000800181905550806000600101908051906020019062000089929190620000d6565b5033600060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000458565b828054620000e49062000422565b90600052602060002090601f01602090048101928262000108576000855562000154565b82601f106200012357805160ff191683800117855562000154565b8280016001018555821562000154579182015b828111156200015357825182559160200191906001019062000136565b5b50905062000163919062000167565b5090565b5b808211156200018257600081600090555060010162000168565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000604051905090565b600080fd5b600080fd5b6000819050919050565b620001de81620001c9565b8114620001ea57600080fd5b50565b600081519050620001fe81620001d3565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000259826200020e565b810181811067ffffffffffffffff821117156200027b576200027a6200021f565b5b80604052505050565b600062000290620001b5565b90506200029e82826200024e565b919050565b600067ffffffffffffffff821115620002c157620002c06200021f565b5b620002cc826200020e565b9050602081019050919050565b60005b83811015620002f9578082015181840152602081019050620002dc565b8381111562000309576000848401525b50505050565b6000620003266200032084620002a3565b62000284565b90508281526020810184848401111562000345576200034462000209565b5b62000352848285620002d9565b509392505050565b600082601f83011262000372576200037162000204565b5b8151620003848482602086016200030f565b91505092915050565b60008060408385031215620003a757620003a6620001bf565b5b6000620003b785828601620001ed565b925050602083015167ffffffffffffffff811115620003db57620003da620001c4565b5b620003e9858286016200035a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200043b57607f821691505b60208210811415620004525762000451620003f3565b5b50919050565b61076b80620004686000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806323b8ca9f146100465780635424884114610064578063a46878fb14610084575b600080fd5b61004e6100a0565b60405161005b9190610378565b60405180910390f35b61006c6100b3565b60405161007b93929190610486565b60405180910390f35b61009e60048036038101906100999190610665565b610173565b005b600360009054906101000a900460ff1681565b60008060000154908060010180546100ca90610703565b80601f01602080910402602001604051908101604052809291908181526020018280546100f690610703565b80156101435780601f1061011857610100808354040283529160200191610143565b820191906000526020600020905b81548152906001019060200180831161012657829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000600281111561018757610186610301565b5b600360009054906101000a900460ff1660028111156101a9576101a8610301565b5b141561025957600060405180606001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509050806000808201518160000155602082015181600101908051906020019061020c92919061025e565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050505b505050565b82805461026a90610703565b90600052602060002090601f01602090048101928261028c57600085556102d3565b82601f106102a557805160ff19168380011785556102d3565b828001600101855582156102d3579182015b828111156102d25782518255916020019190600101906102b7565b5b5090506102e091906102e4565b5090565b5b808211156102fd5760008160009055506001016102e5565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061034157610340610301565b5b50565b600081905061035282610330565b919050565b600061036282610344565b9050919050565b61037281610357565b82525050565b600060208201905061038d6000830184610369565b92915050565b6000819050919050565b6103a681610393565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103e65780820151818401526020810190506103cb565b838111156103f5576000848401525b50505050565b6000601f19601f8301169050919050565b6000610417826103ac565b61042181856103b7565b93506104318185602086016103c8565b61043a816103fb565b840191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061047082610445565b9050919050565b61048081610465565b82525050565b600060608201905061049b600083018661039d565b81810360208301526104ad818561040c565b90506104bc6040830184610477565b949350505050565b6000604051905090565b600080fd5b600080fd5b6104e181610393565b81146104ec57600080fd5b50565b6000813590506104fe816104d8565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610546826103fb565b810181811067ffffffffffffffff821117156105655761056461050e565b5b80604052505050565b60006105786104c4565b9050610584828261053d565b919050565b600067ffffffffffffffff8211156105a4576105a361050e565b5b6105ad826103fb565b9050602081019050919050565b82818337600083830152505050565b60006105dc6105d784610589565b61056e565b9050828152602081018484840111156105f8576105f7610509565b5b6106038482856105ba565b509392505050565b600082601f8301126106205761061f610504565b5b81356106308482602086016105c9565b91505092915050565b61064281610465565b811461064d57600080fd5b50565b60008135905061065f81610639565b92915050565b60008060006060848603121561067e5761067d6104ce565b5b600061068c868287016104ef565b935050602084013567ffffffffffffffff8111156106ad576106ac6104d3565b5b6106b98682870161060b565b92505060406106ca86828701610650565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061071b57607f821691505b6020821081141561072f5761072e6106d4565b5b5091905056fea264697066735822122098363789547f1a138bc5b33cca203e70a8c0ec3203b4f18a6e6fd4d5c639637c64736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x2D JUMPI PUSH3 0x2C PUSH3 0x186 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH3 0x3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xBD3 CODESIZE SUB DUP1 PUSH3 0xBD3 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x65 SWAP2 SWAP1 PUSH3 0x38D JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 ADD DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x89 SWAP3 SWAP2 SWAP1 PUSH3 0xD6 JUMP JUMPDEST POP CALLER PUSH1 0x0 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP PUSH3 0x458 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0xE4 SWAP1 PUSH3 0x422 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x108 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x154 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x123 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x154 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x154 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x153 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x136 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x163 SWAP2 SWAP1 PUSH3 0x167 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x182 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x168 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x1DE DUP2 PUSH3 0x1C9 JUMP JUMPDEST DUP2 EQ PUSH3 0x1EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x1FE DUP2 PUSH3 0x1D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x259 DUP3 PUSH3 0x20E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x27B JUMPI PUSH3 0x27A PUSH3 0x21F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x290 PUSH3 0x1B5 JUMP JUMPDEST SWAP1 POP PUSH3 0x29E DUP3 DUP3 PUSH3 0x24E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x2C1 JUMPI PUSH3 0x2C0 PUSH3 0x21F JUMP JUMPDEST JUMPDEST PUSH3 0x2CC DUP3 PUSH3 0x20E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x2F9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x2DC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x309 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x326 PUSH3 0x320 DUP5 PUSH3 0x2A3 JUMP JUMPDEST PUSH3 0x284 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x345 JUMPI PUSH3 0x344 PUSH3 0x209 JUMP JUMPDEST JUMPDEST PUSH3 0x352 DUP5 DUP3 DUP6 PUSH3 0x2D9 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x372 JUMPI PUSH3 0x371 PUSH3 0x204 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x384 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x30F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x3A7 JUMPI PUSH3 0x3A6 PUSH3 0x1BF JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x3B7 DUP6 DUP3 DUP7 ADD PUSH3 0x1ED JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x3DB JUMPI PUSH3 0x3DA PUSH3 0x1C4 JUMP JUMPDEST JUMPDEST PUSH3 0x3E9 DUP6 DUP3 DUP7 ADD PUSH3 0x35A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x43B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x452 JUMPI PUSH3 0x451 PUSH3 0x3F3 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x76B DUP1 PUSH3 0x468 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 0x23B8CA9F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x54248841 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xA46878FB EQ PUSH2 0x84 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x378 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x486 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x99 SWAP2 SWAP1 PUSH2 0x665 JUMP JUMPDEST PUSH2 0x173 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xCA SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xF6 SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x118 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x143 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x126 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x187 JUMPI PUSH2 0x186 PUSH2 0x301 JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x1A8 PUSH2 0x301 JUMP JUMPDEST JUMPDEST EQ ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x20C SWAP3 SWAP2 SWAP1 PUSH2 0x25E JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x26A SWAP1 PUSH2 0x703 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x28C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2A5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2D3 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2D2 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2B7 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2E0 SWAP2 SWAP1 PUSH2 0x2E4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x2E5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x341 JUMPI PUSH2 0x340 PUSH2 0x301 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x352 DUP3 PUSH2 0x330 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP3 PUSH2 0x344 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x372 DUP2 PUSH2 0x357 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x369 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A6 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3CB JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3F5 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x417 DUP3 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0x421 DUP2 DUP6 PUSH2 0x3B7 JUMP JUMPDEST SWAP4 POP PUSH2 0x431 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x43A DUP2 PUSH2 0x3FB JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x470 DUP3 PUSH2 0x445 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x480 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x49B PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x39D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4AD DUP2 DUP6 PUSH2 0x40C JUMP JUMPDEST SWAP1 POP PUSH2 0x4BC PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x477 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E1 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP2 EQ PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4FE DUP2 PUSH2 0x4D8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x546 DUP3 PUSH2 0x3FB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x565 JUMPI PUSH2 0x564 PUSH2 0x50E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x578 PUSH2 0x4C4 JUMP JUMPDEST SWAP1 POP PUSH2 0x584 DUP3 DUP3 PUSH2 0x53D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x5A3 PUSH2 0x50E JUMP JUMPDEST JUMPDEST PUSH2 0x5AD DUP3 PUSH2 0x3FB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DC PUSH2 0x5D7 DUP5 PUSH2 0x589 JUMP JUMPDEST PUSH2 0x56E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5F8 JUMPI PUSH2 0x5F7 PUSH2 0x509 JUMP JUMPDEST JUMPDEST PUSH2 0x603 DUP5 DUP3 DUP6 PUSH2 0x5BA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x620 JUMPI PUSH2 0x61F PUSH2 0x504 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x630 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x642 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP2 EQ PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x65F DUP2 PUSH2 0x639 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x67E JUMPI PUSH2 0x67D PUSH2 0x4CE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x68C DUP7 DUP3 DUP8 ADD PUSH2 0x4EF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6AD JUMPI PUSH2 0x6AC PUSH2 0x4D3 JUMP JUMPDEST JUMPDEST PUSH2 0x6B9 DUP7 DUP3 DUP8 ADD PUSH2 0x60B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x6CA DUP7 DUP3 DUP8 ADD PUSH2 0x650 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x71B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x72F JUMPI PUSH2 0x72E PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP9 CALLDATASIZE CALLDATACOPY DUP10 SLOAD PUSH32 0x1A138BC5B33CCA203E70A8C0EC3203B4F18A6E6FD4D5C639637C64736F6C6343 STOP ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "166:642:0:-:0;;;267:10;239:38;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;284:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;362:4;338:17;:21;;:28;;;;401:5;376:17;:22;;:30;;;;;;;;;;;;:::i;:::-;;441:10;416:17;:22;;;:35;;;;;;;;;;;;;;;;;;284:174;;166:642;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:180:1:-;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:75;226:6;259:2;253:9;243:19;;193:75;:::o;274:117::-;383:1;380;373:12;397:117;506:1;503;496:12;520:77;557:7;586:5;575:16;;520:77;;;:::o;603:122::-;676:24;694:5;676:24;:::i;:::-;669:5;666:35;656:63;;715:1;712;705:12;656:63;603:122;:::o;731:143::-;788:5;819:6;813:13;804:22;;835:33;862:5;835:33;:::i;:::-;731:143;;;;:::o;880:117::-;989:1;986;979:12;1003:117;1112:1;1109;1102:12;1126:102;1167:6;1218:2;1214:7;1209:2;1202:5;1198:14;1194:28;1184:38;;1126:102;;;:::o;1234:180::-;1282:77;1279:1;1272:88;1379:4;1376:1;1369:15;1403:4;1400:1;1393:15;1420:281;1503:27;1525:4;1503:27;:::i;:::-;1495:6;1491:40;1633:6;1621:10;1618:22;1597:18;1585:10;1582:34;1579:62;1576:88;;;1644:18;;:::i;:::-;1576:88;1684:10;1680:2;1673:22;1463:238;1420:281;;:::o;1707:129::-;1741:6;1768:20;;:::i;:::-;1758:30;;1797:33;1825:4;1817:6;1797:33;:::i;:::-;1707:129;;;:::o;1842:308::-;1904:4;1994:18;1986:6;1983:30;1980:56;;;2016:18;;:::i;:::-;1980:56;2054:29;2076:6;2054:29;:::i;:::-;2046:37;;2138:4;2132;2128:15;2120:23;;1842:308;;;:::o;2156:307::-;2224:1;2234:113;2248:6;2245:1;2242:13;2234:113;;;2333:1;2328:3;2324:11;2318:18;2314:1;2309:3;2305:11;2298:39;2270:2;2267:1;2263:10;2258:15;;2234:113;;;2365:6;2362:1;2359:13;2356:101;;;2445:1;2436:6;2431:3;2427:16;2420:27;2356:101;2205:258;2156:307;;;:::o;2469:421::-;2558:5;2583:66;2599:49;2641:6;2599:49;:::i;:::-;2583:66;:::i;:::-;2574:75;;2672:6;2665:5;2658:21;2710:4;2703:5;2699:16;2748:3;2739:6;2734:3;2730:16;2727:25;2724:112;;;2755:79;;:::i;:::-;2724:112;2845:39;2877:6;2872:3;2867;2845:39;:::i;:::-;2564:326;2469:421;;;;;:::o;2910:355::-;2977:5;3026:3;3019:4;3011:6;3007:17;3003:27;2993:122;;3034:79;;:::i;:::-;2993:122;3144:6;3138:13;3169:90;3255:3;3247:6;3240:4;3232:6;3228:17;3169:90;:::i;:::-;3160:99;;2983:282;2910:355;;;;:::o;3271:680::-;3360:6;3368;3417:2;3405:9;3396:7;3392:23;3388:32;3385:119;;;3423:79;;:::i;:::-;3385:119;3543:1;3568:64;3624:7;3615:6;3604:9;3600:22;3568:64;:::i;:::-;3558:74;;3514:128;3702:2;3691:9;3687:18;3681:25;3733:18;3725:6;3722:30;3719:117;;;3755:79;;:::i;:::-;3719:117;3860:74;3926:7;3917:6;3906:9;3902:22;3860:74;:::i;:::-;3850:84;;3652:292;3271:680;;;;;:::o;3957:180::-;4005:77;4002:1;3995:88;4102:4;4099:1;4092:15;4126:4;4123:1;4116:15;4143:320;4187:6;4224:1;4218:4;4214:12;4204:22;;4271:1;4265:4;4261:12;4292:18;4282:81;;4348:4;4340:6;4336:17;4326:27;;4282:81;4410:2;4402:6;4399:14;4379:18;4376:38;4373:84;;;4429:18;;:::i;:::-;4373:84;4194:269;4143:320;;;:::o;166:642:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@academyInstructor_15": {
"entryPoint": 179,
"id": 15,
"parameterSlots": 0,
"returnSlots": 0
},
"@academyState_20": {
"entryPoint": 160,
"id": 20,
"parameterSlots": 0,
"returnSlots": 0
},
"@changeInstructor_76": {
"entryPoint": 371,
"id": 76,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 1481,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 1616,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 1547,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1263,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_string_memory_ptrt_address": {
"entryPoint": 1637,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1143,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_enum$_State_$5_to_t_uint8_fromStack": {
"entryPoint": 873,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1036,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 925,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_enum$_State_$5__to_t_uint8__fromStack_reversed": {
"entryPoint": 888,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address__to_t_uint256_t_string_memory_ptr_t_address__fromStack_reversed": {
"entryPoint": 1158,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1390,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1220,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 1417,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 940,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 951,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1125,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_enum$_State_$5": {
"entryPoint": 836,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1093,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 915,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_enum$_State_$5_to_t_uint8": {
"entryPoint": 855,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 1466,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 968,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 1795,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1341,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x21": {
"entryPoint": 769,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 1748,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1294,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1284,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1289,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1235,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1230,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1019,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_assert_t_enum$_State_$5": {
"entryPoint": 816,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 1593,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1240,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:7426:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "35:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "52:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "55:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "45:6:1"
},
"nodeType": "YulFunctionCall",
"src": "45:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "45:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "149:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "152:4:1",
"type": "",
"value": "0x21"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "142:6:1"
},
"nodeType": "YulFunctionCall",
"src": "142:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "142:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "173:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "176:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "166:6:1"
},
"nodeType": "YulFunctionCall",
"src": "166:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "166:15:1"
}
]
},
"name": "panic_error_0x21",
"nodeType": "YulFunctionDefinition",
"src": "7:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "243:62:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "277:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x21",
"nodeType": "YulIdentifier",
"src": "279:16:1"
},
"nodeType": "YulFunctionCall",
"src": "279:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "279:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "266:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "273:1:1",
"type": "",
"value": "3"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "263:2:1"
},
"nodeType": "YulFunctionCall",
"src": "263:12:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "256:6:1"
},
"nodeType": "YulFunctionCall",
"src": "256:20:1"
},
"nodeType": "YulIf",
"src": "253:46:1"
}
]
},
"name": "validator_assert_t_enum$_State_$5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "236:5:1",
"type": ""
}
],
"src": "193:112:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "363:73:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "373:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "384:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "373:7:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "424:5:1"
}
],
"functionName": {
"name": "validator_assert_t_enum$_State_$5",
"nodeType": "YulIdentifier",
"src": "390:33:1"
},
"nodeType": "YulFunctionCall",
"src": "390:40:1"
},
"nodeType": "YulExpressionStatement",
"src": "390:40:1"
}
]
},
"name": "cleanup_t_enum$_State_$5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "345:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "355:7:1",
"type": ""
}
],
"src": "311:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "507:60:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "517:44:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "555:5:1"
}
],
"functionName": {
"name": "cleanup_t_enum$_State_$5",
"nodeType": "YulIdentifier",
"src": "530:24:1"
},
"nodeType": "YulFunctionCall",
"src": "530:31:1"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "517:9:1"
}
]
}
]
},
"name": "convert_t_enum$_State_$5_to_t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "487:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "497:9:1",
"type": ""
}
],
"src": "442:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "643:71:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "660:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "701:5:1"
}
],
"functionName": {
"name": "convert_t_enum$_State_$5_to_t_uint8",
"nodeType": "YulIdentifier",
"src": "665:35:1"
},
"nodeType": "YulFunctionCall",
"src": "665:42:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "653:6:1"
},
"nodeType": "YulFunctionCall",
"src": "653:55:1"
},
"nodeType": "YulExpressionStatement",
"src": "653:55:1"
}
]
},
"name": "abi_encode_t_enum$_State_$5_to_t_uint8_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "631:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "638:3:1",
"type": ""
}
],
"src": "573:141:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "823:129:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "833:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "845:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "856:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "841:3:1"
},
"nodeType": "YulFunctionCall",
"src": "841:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "833:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "918:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "931:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "942:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "927:3:1"
},
"nodeType": "YulFunctionCall",
"src": "927:17:1"
}
],
"functionName": {
"name": "abi_encode_t_enum$_State_$5_to_t_uint8_fromStack",
"nodeType": "YulIdentifier",
"src": "869:48:1"
},
"nodeType": "YulFunctionCall",
"src": "869:76:1"
},
"nodeType": "YulExpressionStatement",
"src": "869:76:1"
}
]
},
"name": "abi_encode_tuple_t_enum$_State_$5__to_t_uint8__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "795:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "807:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "818:4:1",
"type": ""
}
],
"src": "720:232:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1003:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1013:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1024:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1013:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "985:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "995:7:1",
"type": ""
}
],
"src": "958:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1106:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1123:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1146:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1128:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1128:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1116:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1116:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1116:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1094:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1101:3:1",
"type": ""
}
],
"src": "1041:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1224:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1235:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1251:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1245:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1245:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1235:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1207:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1217:6:1",
"type": ""
}
],
"src": "1165:99:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1366:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1383:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1388:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1376:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1376:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "1376:19:1"
},
{
"nodeType": "YulAssignment",
"src": "1404:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1423:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1428:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1419:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1419:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1404:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1338:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1343:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1354:11:1",
"type": ""
}
],
"src": "1270:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1494:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1504:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1513:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1508:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1573:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1598:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1603:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1594:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1594:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1617:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1622:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1613:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1613:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1607:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1607:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1587:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1587:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "1587:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1534:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1537:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1531:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1531:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1545:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1547:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1556:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1559:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1552:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1552:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1547:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1527:3:1",
"statements": []
},
"src": "1523:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1670:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1720:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1725:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1716:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1716:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1734:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1709:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1709:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "1709:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1651:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1654:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1648:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1648:13:1"
},
"nodeType": "YulIf",
"src": "1645:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1476:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1481:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1486:6:1",
"type": ""
}
],
"src": "1445:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1806:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1816:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1834:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1841:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1830:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1830:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1850:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1846:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1846:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1826:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1826:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1816:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1789:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1799:6:1",
"type": ""
}
],
"src": "1758:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1958:272:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1968:53:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2015:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1982:32:1"
},
"nodeType": "YulFunctionCall",
"src": "1982:39:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1972:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2030:78:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2096:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2101:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2037:58:1"
},
"nodeType": "YulFunctionCall",
"src": "2037:71:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2030:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2143:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2150:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2139:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2139:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2157:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2162:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2117:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2117:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "2117:52:1"
},
{
"nodeType": "YulAssignment",
"src": "2178:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2189:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2216:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2194:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2194:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2185:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2185:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2178:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1939:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1946:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1954:3:1",
"type": ""
}
],
"src": "1866:364:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2281:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2291:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2306:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2313:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2302:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2302:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2291:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2263:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2273:7:1",
"type": ""
}
],
"src": "2236:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2413:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2423:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2452:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2434:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2434:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2423:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2395:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2405:7:1",
"type": ""
}
],
"src": "2368:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2535:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2552:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2575:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "2557:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2557:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2545:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2545:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "2545:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2523:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2530:3:1",
"type": ""
}
],
"src": "2470:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2768:359:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2778:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2790:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2801:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2786:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2786:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2778:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2858:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2871:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2882:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2867:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2867:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "2814:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2814:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "2814:71:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2906:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2917:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2902:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2902:18:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2926:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2932:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2922:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2922:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2895:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2895:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "2895:48:1"
},
{
"nodeType": "YulAssignment",
"src": "2952:86:1",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3024:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3033:4:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2960:63:1"
},
"nodeType": "YulFunctionCall",
"src": "2960:78:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2952:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3092:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3105:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3116:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3101:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3101:18:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3048:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3048:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "3048:72:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address__to_t_uint256_t_string_memory_ptr_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2724:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2736:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2744:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2752:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2763:4:1",
"type": ""
}
],
"src": "2594:533:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3173:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3183:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3199:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3193:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3193:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3183:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3166:6:1",
"type": ""
}
],
"src": "3133:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3303:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3320:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3323:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3313:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3313:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3313:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "3214:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3426:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3443:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3446:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3436:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3436:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3436:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "3337:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3503:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3560:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3569:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3572:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3562:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3562:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3562:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3526:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3551:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3533:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3533:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3523:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3523:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3516:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3516:43:1"
},
"nodeType": "YulIf",
"src": "3513:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3496:5:1",
"type": ""
}
],
"src": "3460:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3640:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3650:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3672:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3659:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3659:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3650:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3715:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "3688:26:1"
},
"nodeType": "YulFunctionCall",
"src": "3688:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "3688:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3618:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3626:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3634:5:1",
"type": ""
}
],
"src": "3588:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3822:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3839:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3842:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3832:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3832:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3832:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "3733:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3945:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3962:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3965:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3955:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3955:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3955:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "3856:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4007:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4024:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4027:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4017:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4017:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "4017:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4121:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4124:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4114:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4114:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4114:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4145:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4148:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4138:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4138:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4138:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "3979:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4208:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4218:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4240:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4270:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "4248:21:1"
},
"nodeType": "YulFunctionCall",
"src": "4248:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4236:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4236:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "4222:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4387:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4389:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4389:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4389:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4330:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4342:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4327:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4327:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4366:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4378:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4363:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4363:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "4324:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4324:62:1"
},
"nodeType": "YulIf",
"src": "4321:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4425:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "4429:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4418:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4418:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "4418:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4194:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4202:4:1",
"type": ""
}
],
"src": "4165:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4493:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4503:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "4513:18:1"
},
"nodeType": "YulFunctionCall",
"src": "4513:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4503:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4562:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4570:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "4542:19:1"
},
"nodeType": "YulFunctionCall",
"src": "4542:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "4542:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4477:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4486:6:1",
"type": ""
}
],
"src": "4452:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4654:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4759:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4761:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4761:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4761:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4731:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4739:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4728:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4728:30:1"
},
"nodeType": "YulIf",
"src": "4725:56:1"
},
{
"nodeType": "YulAssignment",
"src": "4791:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4821:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "4799:21:1"
},
"nodeType": "YulFunctionCall",
"src": "4799:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4791:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4865:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4877:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4883:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4873:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4873:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4865:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4638:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4649:4:1",
"type": ""
}
],
"src": "4587:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4952:103:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4975:3:1"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4980:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4985:6:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "4962:12:1"
},
"nodeType": "YulFunctionCall",
"src": "4962:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "4962:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5033:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5038:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5029:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5029:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5047:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5022:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5022:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "5022:27:1"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4934:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4939:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4944:6:1",
"type": ""
}
],
"src": "4901:154:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5145:328:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5155:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5222:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5180:41:1"
},
"nodeType": "YulFunctionCall",
"src": "5180:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "5164:15:1"
},
"nodeType": "YulFunctionCall",
"src": "5164:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5155:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5246:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5253:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5239:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5239:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "5239:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5269:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5284:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5291:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5280:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5280:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "5273:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5334:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "5336:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5336:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5336:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5315:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5320:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5311:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5311:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5329:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5308:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5308:25:1"
},
"nodeType": "YulIf",
"src": "5305:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5450:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5455:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5460:6:1"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "5426:23:1"
},
"nodeType": "YulFunctionCall",
"src": "5426:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "5426:41:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "5118:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5123:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5131:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "5139:5:1",
"type": ""
}
],
"src": "5061:412:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5555:278:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5604:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "5606:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5606:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5606:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5583:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5591:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5579:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5579:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5598:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5575:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5575:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5568:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5568:35:1"
},
"nodeType": "YulIf",
"src": "5565:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5696:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5723:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5710:12:1"
},
"nodeType": "YulFunctionCall",
"src": "5710:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5700:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5739:88:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5800:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5808:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5796:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5796:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5815:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5823:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5748:47:1"
},
"nodeType": "YulFunctionCall",
"src": "5748:79:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "5739:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5533:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5541:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "5549:5:1",
"type": ""
}
],
"src": "5493:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5882:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5939:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5948:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5951:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5941:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5941:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "5941:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5905:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5930:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "5912:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5912:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "5902:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5902:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5895:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5895:43:1"
},
"nodeType": "YulIf",
"src": "5892:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5875:5:1",
"type": ""
}
],
"src": "5839:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6019:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6029:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6051:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "6038:12:1"
},
"nodeType": "YulFunctionCall",
"src": "6038:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6029:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6094:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "6067:26:1"
},
"nodeType": "YulFunctionCall",
"src": "6067:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "6067:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5997:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6005:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6013:5:1",
"type": ""
}
],
"src": "5967:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6222:689:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6268:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "6270:77:1"
},
"nodeType": "YulFunctionCall",
"src": "6270:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "6270:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6243:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6252:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6239:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6239:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6264:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "6235:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6235:32:1"
},
"nodeType": "YulIf",
"src": "6232:119:1"
},
{
"nodeType": "YulBlock",
"src": "6361:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6376:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6390:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6380:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6405:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6440:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6451:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6436:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6436:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6460:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "6415:20:1"
},
"nodeType": "YulFunctionCall",
"src": "6415:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6405:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6488:288:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6503:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6534:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6545:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6530:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6530:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "6517:12:1"
},
"nodeType": "YulFunctionCall",
"src": "6517:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6507:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6596:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "6598:77:1"
},
"nodeType": "YulFunctionCall",
"src": "6598:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "6598:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6568:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6576:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6565:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6565:30:1"
},
"nodeType": "YulIf",
"src": "6562:117:1"
},
{
"nodeType": "YulAssignment",
"src": "6693:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6738:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6749:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6734:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6734:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6758:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6703:30:1"
},
"nodeType": "YulFunctionCall",
"src": "6703:63:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6693:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6786:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6801:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6815:2:1",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6805:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6831:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6866:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6877:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6862:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6862:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6886:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "6841:20:1"
},
"nodeType": "YulFunctionCall",
"src": "6841:53:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6831:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_string_memory_ptrt_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6176:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "6187:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6199:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "6207:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "6215:6:1",
"type": ""
}
],
"src": "6112:799:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6945:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6962:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6965:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6955:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6955:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6955:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7059:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7062:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7052:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7052:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7052:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7083:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7086:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7076:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7076:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7076:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "6917:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7154:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7164:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7178:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7184:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "7174:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7174:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7164:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "7195:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "7225:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7231:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7221:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7221:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "7199:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7272:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7286:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7300:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7308:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7296:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7296:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7286:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "7252:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "7245:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7245:26:1"
},
"nodeType": "YulIf",
"src": "7242:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7375:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "7389:16:1"
},
"nodeType": "YulFunctionCall",
"src": "7389:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "7389:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "7339:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7362:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7370:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "7359:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7359:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "7336:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7336:38:1"
},
"nodeType": "YulIf",
"src": "7333:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "7138:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7147:6:1",
"type": ""
}
],
"src": "7103:320:1"
}
]
},
"contents": "{\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_State_$5(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_State_$5(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_State_$5(value)\n }\n\n function convert_t_enum$_State_$5_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_State_$5(value)\n }\n\n function abi_encode_t_enum$_State_$5_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_State_$5_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_State_$5__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_State_$5_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_address__to_t_uint256_t_string_memory_ptr_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806323b8ca9f146100465780635424884114610064578063a46878fb14610084575b600080fd5b61004e6100a0565b60405161005b9190610378565b60405180910390f35b61006c6100b3565b60405161007b93929190610486565b60405180910390f35b61009e60048036038101906100999190610665565b610173565b005b600360009054906101000a900460ff1681565b60008060000154908060010180546100ca90610703565b80601f01602080910402602001604051908101604052809291908181526020018280546100f690610703565b80156101435780601f1061011857610100808354040283529160200191610143565b820191906000526020600020905b81548152906001019060200180831161012657829003601f168201915b5050505050908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000600281111561018757610186610301565b5b600360009054906101000a900460ff1660028111156101a9576101a8610301565b5b141561025957600060405180606001604052808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff168152509050806000808201518160000155602082015181600101908051906020019061020c92919061025e565b5060408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050505b505050565b82805461026a90610703565b90600052602060002090601f01602090048101928261028c57600085556102d3565b82601f106102a557805160ff19168380011785556102d3565b828001600101855582156102d3579182015b828111156102d25782518255916020019190600101906102b7565b5b5090506102e091906102e4565b5090565b5b808211156102fd5760008160009055506001016102e5565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061034157610340610301565b5b50565b600081905061035282610330565b919050565b600061036282610344565b9050919050565b61037281610357565b82525050565b600060208201905061038d6000830184610369565b92915050565b6000819050919050565b6103a681610393565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103e65780820151818401526020810190506103cb565b838111156103f5576000848401525b50505050565b6000601f19601f8301169050919050565b6000610417826103ac565b61042181856103b7565b93506104318185602086016103c8565b61043a816103fb565b840191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061047082610445565b9050919050565b61048081610465565b82525050565b600060608201905061049b600083018661039d565b81810360208301526104ad818561040c565b90506104bc6040830184610477565b949350505050565b6000604051905090565b600080fd5b600080fd5b6104e181610393565b81146104ec57600080fd5b50565b6000813590506104fe816104d8565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610546826103fb565b810181811067ffffffffffffffff821117156105655761056461050e565b5b80604052505050565b60006105786104c4565b9050610584828261053d565b919050565b600067ffffffffffffffff8211156105a4576105a361050e565b5b6105ad826103fb565b9050602081019050919050565b82818337600083830152505050565b60006105dc6105d784610589565b61056e565b9050828152602081018484840111156105f8576105f7610509565b5b6106038482856105ba565b509392505050565b600082601f8301126106205761061f610504565b5b81356106308482602086016105c9565b91505092915050565b61064281610465565b811461064d57600080fd5b50565b60008135905061065f81610639565b92915050565b60008060006060848603121561067e5761067d6104ce565b5b600061068c868287016104ef565b935050602084013567ffffffffffffffff8111156106ad576106ac6104d3565b5b6106b98682870161060b565b92505060406106ca86828701610650565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061071b57607f821691505b6020821081141561072f5761072e6106d4565b5b5091905056fea264697066735822122098363789547f1a138bc5b33cca203e70a8c0ec3203b4f18a6e6fd4d5c639637c64736f6c634300080b0033",
"opcodes": "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 0x23B8CA9F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x54248841 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xA46878FB EQ PUSH2 0x84 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x378 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x486 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x99 SWAP2 SWAP1 PUSH2 0x665 JUMP JUMPDEST PUSH2 0x173 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0xCA SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xF6 SWAP1 PUSH2 0x703 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x143 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x118 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x143 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x126 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x187 JUMPI PUSH2 0x186 PUSH2 0x301 JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1A9 JUMPI PUSH2 0x1A8 PUSH2 0x301 JUMP JUMPDEST JUMPDEST EQ ISZERO PUSH2 0x259 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x20C SWAP3 SWAP2 SWAP1 PUSH2 0x25E JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP1 POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x26A SWAP1 PUSH2 0x703 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x28C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x2A5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x2D3 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x2D3 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x2D2 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2B7 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x2E0 SWAP2 SWAP1 PUSH2 0x2E4 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x2FD JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x2E5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x341 JUMPI PUSH2 0x340 PUSH2 0x301 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x352 DUP3 PUSH2 0x330 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x362 DUP3 PUSH2 0x344 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x372 DUP2 PUSH2 0x357 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x369 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A6 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3E6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3CB JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3F5 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x417 DUP3 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0x421 DUP2 DUP6 PUSH2 0x3B7 JUMP JUMPDEST SWAP4 POP PUSH2 0x431 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x43A DUP2 PUSH2 0x3FB JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x470 DUP3 PUSH2 0x445 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x480 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x49B PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x39D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x4AD DUP2 DUP6 PUSH2 0x40C JUMP JUMPDEST SWAP1 POP PUSH2 0x4BC PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x477 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E1 DUP2 PUSH2 0x393 JUMP JUMPDEST DUP2 EQ PUSH2 0x4EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4FE DUP2 PUSH2 0x4D8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x546 DUP3 PUSH2 0x3FB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x565 JUMPI PUSH2 0x564 PUSH2 0x50E JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x578 PUSH2 0x4C4 JUMP JUMPDEST SWAP1 POP PUSH2 0x584 DUP3 DUP3 PUSH2 0x53D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x5A3 PUSH2 0x50E JUMP JUMPDEST JUMPDEST PUSH2 0x5AD DUP3 PUSH2 0x3FB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5DC PUSH2 0x5D7 DUP5 PUSH2 0x589 JUMP JUMPDEST PUSH2 0x56E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5F8 JUMPI PUSH2 0x5F7 PUSH2 0x509 JUMP JUMPDEST JUMPDEST PUSH2 0x603 DUP5 DUP3 DUP6 PUSH2 0x5BA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x620 JUMPI PUSH2 0x61F PUSH2 0x504 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x630 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x642 DUP2 PUSH2 0x465 JUMP JUMPDEST DUP2 EQ PUSH2 0x64D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x65F DUP2 PUSH2 0x639 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x67E JUMPI PUSH2 0x67D PUSH2 0x4CE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x68C DUP7 DUP3 DUP8 ADD PUSH2 0x4EF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6AD JUMPI PUSH2 0x6AC PUSH2 0x4D3 JUMP JUMPDEST JUMPDEST PUSH2 0x6B9 DUP7 DUP3 DUP8 ADD PUSH2 0x60B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x6CA DUP7 DUP3 DUP8 ADD PUSH2 0x650 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x71B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x72F JUMPI PUSH2 0x72E PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP9 CALLDATASIZE CALLDATACOPY DUP10 SLOAD PUSH32 0x1A138BC5B33CCA203E70A8C0EC3203B4F18A6E6FD4D5C639637C64736F6C6343 STOP ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "166:642:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;239:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;199:34;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;464:342;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;239:38;;;;;;;;;;;;;:::o;199:34::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;464:342::-;574:10;558:26;;;;;;;;:::i;:::-;;:12;;;;;;;;;;;:26;;;;;;;;:::i;:::-;;;555:245;;;599:30;632:110;;;;;;;;665:4;632:110;;;;693:5;632:110;;;;722:5;632:110;;;;;599:143;;776:13;756:17;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;585:215;555:245;464:342;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:180:1:-;55:77;52:1;45:88;152:4;149:1;142:15;176:4;173:1;166:15;193:112;273:1;266:5;263:12;253:46;;279:18;;:::i;:::-;253:46;193:112;:::o;311:125::-;355:7;384:5;373:16;;390:40;424:5;390:40;:::i;:::-;311:125;;;:::o;442:::-;497:9;530:31;555:5;530:31;:::i;:::-;517:44;;442:125;;;:::o;573:141::-;665:42;701:5;665:42;:::i;:::-;660:3;653:55;573:141;;:::o;720:232::-;818:4;856:2;845:9;841:18;833:26;;869:76;942:1;931:9;927:17;918:6;869:76;:::i;:::-;720:232;;;;:::o;958:77::-;995:7;1024:5;1013:16;;958:77;;;:::o;1041:118::-;1128:24;1146:5;1128:24;:::i;:::-;1123:3;1116:37;1041:118;;:::o;1165:99::-;1217:6;1251:5;1245:12;1235:22;;1165:99;;;:::o;1270:169::-;1354:11;1388:6;1383:3;1376:19;1428:4;1423:3;1419:14;1404:29;;1270:169;;;;:::o;1445:307::-;1513:1;1523:113;1537:6;1534:1;1531:13;1523:113;;;1622:1;1617:3;1613:11;1607:18;1603:1;1598:3;1594:11;1587:39;1559:2;1556:1;1552:10;1547:15;;1523:113;;;1654:6;1651:1;1648:13;1645:101;;;1734:1;1725:6;1720:3;1716:16;1709:27;1645:101;1494:258;1445:307;;;:::o;1758:102::-;1799:6;1850:2;1846:7;1841:2;1834:5;1830:14;1826:28;1816:38;;1758:102;;;:::o;1866:364::-;1954:3;1982:39;2015:5;1982:39;:::i;:::-;2037:71;2101:6;2096:3;2037:71;:::i;:::-;2030:78;;2117:52;2162:6;2157:3;2150:4;2143:5;2139:16;2117:52;:::i;:::-;2194:29;2216:6;2194:29;:::i;:::-;2189:3;2185:39;2178:46;;1958:272;1866:364;;;;:::o;2236:126::-;2273:7;2313:42;2306:5;2302:54;2291:65;;2236:126;;;:::o;2368:96::-;2405:7;2434:24;2452:5;2434:24;:::i;:::-;2423:35;;2368:96;;;:::o;2470:118::-;2557:24;2575:5;2557:24;:::i;:::-;2552:3;2545:37;2470:118;;:::o;2594:533::-;2763:4;2801:2;2790:9;2786:18;2778:26;;2814:71;2882:1;2871:9;2867:17;2858:6;2814:71;:::i;:::-;2932:9;2926:4;2922:20;2917:2;2906:9;2902:18;2895:48;2960:78;3033:4;3024:6;2960:78;:::i;:::-;2952:86;;3048:72;3116:2;3105:9;3101:18;3092:6;3048:72;:::i;:::-;2594:533;;;;;;:::o;3133:75::-;3166:6;3199:2;3193:9;3183:19;;3133:75;:::o;3214:117::-;3323:1;3320;3313:12;3337:117;3446:1;3443;3436:12;3460:122;3533:24;3551:5;3533:24;:::i;:::-;3526:5;3523:35;3513:63;;3572:1;3569;3562:12;3513:63;3460:122;:::o;3588:139::-;3634:5;3672:6;3659:20;3650:29;;3688:33;3715:5;3688:33;:::i;:::-;3588:139;;;;:::o;3733:117::-;3842:1;3839;3832:12;3856:117;3965:1;3962;3955:12;3979:180;4027:77;4024:1;4017:88;4124:4;4121:1;4114:15;4148:4;4145:1;4138:15;4165:281;4248:27;4270:4;4248:27;:::i;:::-;4240:6;4236:40;4378:6;4366:10;4363:22;4342:18;4330:10;4327:34;4324:62;4321:88;;;4389:18;;:::i;:::-;4321:88;4429:10;4425:2;4418:22;4208:238;4165:281;;:::o;4452:129::-;4486:6;4513:20;;:::i;:::-;4503:30;;4542:33;4570:4;4562:6;4542:33;:::i;:::-;4452:129;;;:::o;4587:308::-;4649:4;4739:18;4731:6;4728:30;4725:56;;;4761:18;;:::i;:::-;4725:56;4799:29;4821:6;4799:29;:::i;:::-;4791:37;;4883:4;4877;4873:15;4865:23;;4587:308;;;:::o;4901:154::-;4985:6;4980:3;4975;4962:30;5047:1;5038:6;5033:3;5029:16;5022:27;4901:154;;;:::o;5061:412::-;5139:5;5164:66;5180:49;5222:6;5180:49;:::i;:::-;5164:66;:::i;:::-;5155:75;;5253:6;5246:5;5239:21;5291:4;5284:5;5280:16;5329:3;5320:6;5315:3;5311:16;5308:25;5305:112;;;5336:79;;:::i;:::-;5305:112;5426:41;5460:6;5455:3;5450;5426:41;:::i;:::-;5145:328;5061:412;;;;;:::o;5493:340::-;5549:5;5598:3;5591:4;5583:6;5579:17;5575:27;5565:122;;5606:79;;:::i;:::-;5565:122;5723:6;5710:20;5748:79;5823:3;5815:6;5808:4;5800:6;5796:17;5748:79;:::i;:::-;5739:88;;5555:278;5493:340;;;;:::o;5839:122::-;5912:24;5930:5;5912:24;:::i;:::-;5905:5;5902:35;5892:63;;5951:1;5948;5941:12;5892:63;5839:122;:::o;5967:139::-;6013:5;6051:6;6038:20;6029:29;;6067:33;6094:5;6067:33;:::i;:::-;5967:139;;;;:::o;6112:799::-;6199:6;6207;6215;6264:2;6252:9;6243:7;6239:23;6235:32;6232:119;;;6270:79;;:::i;:::-;6232:119;6390:1;6415:53;6460:7;6451:6;6440:9;6436:22;6415:53;:::i;:::-;6405:63;;6361:117;6545:2;6534:9;6530:18;6517:32;6576:18;6568:6;6565:30;6562:117;;;6598:79;;:::i;:::-;6562:117;6703:63;6758:7;6749:6;6738:9;6734:22;6703:63;:::i;:::-;6693:73;;6488:288;6815:2;6841:53;6886:7;6877:6;6866:9;6862:22;6841:53;:::i;:::-;6831:63;;6786:118;6112:799;;;;;:::o;6917:180::-;6965:77;6962:1;6955:88;7062:4;7059:1;7052:15;7086:4;7083:1;7076:15;7103:320;7147:6;7184:1;7178:4;7174:12;7164:22;;7231:1;7225:4;7221:12;7252:18;7242:81;;7308:4;7300:6;7296:17;7286:27;;7242:81;7370:2;7362:6;7359:14;7339:18;7336:38;7333:84;;;7389:18;;:::i;:::-;7333:84;7154:269;7103:320;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "379800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"academyInstructor()": "infinite",
"academyState()": "2538",
"changeInstructor(uint256,string,address)": "infinite"
}
},
"methodIdentifiers": {
"academyInstructor()": "54248841",
"academyState()": "23b8ca9f",
"changeInstructor(uint256,string,address)": "a46878fb"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "academyInstructor",
"outputs": [
{
"internalType": "uint256",
"name": "age",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "academyState",
"outputs": [
{
"internalType": "enum State",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "address",
"name": "_addr",
"type": "address"
}
],
"name": "changeInstructor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.11+commit.d7f03943"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "academyInstructor",
"outputs": [
{
"internalType": "uint256",
"name": "age",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "academyState",
"outputs": [
{
"internalType": "enum State",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_age",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "address",
"name": "_addr",
"type": "address"
}
],
"name": "changeInstructor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Structs.sol": "AcademyInstructor"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Structs.sol": {
"keccak256": "0xf64e4d978adcbd80452e93d4d7b42cdeb3f60ea3166ed2eb70929ecf4b136d63",
"license": "GPL-3.0",
"urls": [
"bzz-raw://1dda87e215422ecc308e4e25d9b87d443482176128459c78e61d964e0b9a1e3b",
"dweb:/ipfs/QmUb1KgrkoBtNazv4YkaZpG8XEUA471RGxH2VyKJEMqZtK"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"gรถrli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506101cc806100206000396000f3fe6080604052600436106100295760003560e01c80631998aeef1461002e57806362ea82db14610038575b600080fd5b610036610075565b005b34801561004457600080fd5b5061005f600480360381019061005a9190610135565b6100ba565b60405161006c919061017b565b60405180910390f35b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b60006020528060005260406000206000915090505481565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610102826100d7565b9050919050565b610112816100f7565b811461011d57600080fd5b50565b60008135905061012f81610109565b92915050565b60006020828403121561014b5761014a6100d2565b5b600061015984828501610120565b91505092915050565b6000819050919050565b61017581610162565b82525050565b6000602082019050610190600083018461016c565b9291505056fea2646970667358221220aa0b83ddefe326fffefcad5d066ccaea620252f7784bf61e8e420cfb598de85264736f6c634300080b0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CC DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1998AEEF EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0x62EA82DB EQ PUSH2 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x36 PUSH2 0x75 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5A SWAP2 SWAP1 PUSH2 0x135 JUMP JUMPDEST PUSH2 0xBA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6C SWAP2 SWAP1 PUSH2 0x17B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x102 DUP3 PUSH2 0xD7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x112 DUP2 PUSH2 0xF7 JUMP JUMPDEST DUP2 EQ PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12F DUP2 PUSH2 0x109 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14B JUMPI PUSH2 0x14A PUSH2 0xD2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x159 DUP5 DUP3 DUP6 ADD PUSH2 0x120 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x175 DUP2 PUSH2 0x162 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x190 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x16C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA SIGNEXTEND DUP4 0xDD 0xEF 0xE3 0x26 SELFDESTRUCT INVALID 0xFC 0xAD 0x5D MOD PUSH13 0xCAEA620252F7784BF61E8E420C 0xFB MSIZE DUP14 0xE8 MSTORE PUSH5 0x736F6C6343 STOP ADDMOD SIGNEXTEND STOP CALLER ",
"sourceMap": "62:251:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@bid_17": {
"entryPoint": 117,
"id": 17,
"parameterSlots": 0,
"returnSlots": 0
},
"@bids_5": {
"entryPoint": 186,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 288,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 309,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 364,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 379,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 247,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 215,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 354,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 210,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 265,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1608:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:1"
},
"nodeType": "YulFunctionCall",
"src": "400:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:1"
},
"nodeType": "YulFunctionCall",
"src": "532:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:1",
"type": ""
}
],
"src": "466:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "668:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "677:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "680:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "670:6:1"
},
"nodeType": "YulFunctionCall",
"src": "670:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "670:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "634:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "659:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "641:17:1"
},
"nodeType": "YulFunctionCall",
"src": "641:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "631:2:1"
},
"nodeType": "YulFunctionCall",
"src": "631:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "624:6:1"
},
"nodeType": "YulFunctionCall",
"src": "624:43:1"
},
"nodeType": "YulIf",
"src": "621:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "604:5:1",
"type": ""
}
],
"src": "568:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "748:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "758:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "780:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "767:12:1"
},
"nodeType": "YulFunctionCall",
"src": "767:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "758:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "823:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "796:26:1"
},
"nodeType": "YulFunctionCall",
"src": "796:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "796:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "726:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "734:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "742:5:1",
"type": ""
}
],
"src": "696:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "907:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "953:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "955:77:1"
},
"nodeType": "YulFunctionCall",
"src": "955:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "955:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "928:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "937:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "924:3:1"
},
"nodeType": "YulFunctionCall",
"src": "924:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "949:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "920:3:1"
},
"nodeType": "YulFunctionCall",
"src": "920:32:1"
},
"nodeType": "YulIf",
"src": "917:119:1"
},
{
"nodeType": "YulBlock",
"src": "1046:117:1&