UNPKG

@etherisc/gif-contracts

Version:

This repository holds the GIF core contracts and tools to develop, test and deploy GIF instances.

2,037 lines (2,036 loc) 62 kB
{ "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "last_completed_migration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_completed", "type": "uint256" } ], "name": "setCompleted", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newAddress", "type": "address" } ], "name": "upgrade", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "allSourcePaths": { "65": "contracts/Migrations.sol" }, "ast": { "absolutePath": "contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 57 ] }, "id": 58, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "0.8", ".2" ], "nodeType": "PragmaDirective", "src": "39:22:65" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 57, "linearizedBaseContracts": [ 57 ], "name": "Migrations", "nameLocation": "72:10:65", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "functionSelector": "8da5cb5b", "id": 3, "mutability": "mutable", "name": "owner", "nameLocation": "104:5:65", "nodeType": "VariableDeclaration", "scope": 57, "src": "89:20:65", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2, "name": "address", "nodeType": "ElementaryTypeName", "src": "89:7:65", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "public" }, { "constant": false, "functionSelector": "445df0ac", "id": 5, "mutability": "mutable", "name": "last_completed_migration", "nameLocation": "130:24:65", "nodeType": "VariableDeclaration", "scope": 57, "src": "115:39:65", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "115:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "public" }, { "body": { "id": 13, "nodeType": "Block", "src": "199:35:65", "statements": [ { "expression": { "id": 11, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 8, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, "src": "209:5:65", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 9, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "217:3:65", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 10, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "217:10:65", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "209:18:65", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 12, "nodeType": "ExpressionStatement", "src": "209:18:65" } ] }, "id": 14, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 6, "nodeType": "ParameterList", "parameters": [], "src": "196:2:65" }, "returnParameters": { "id": 7, "nodeType": "ParameterList", "parameters": [], "src": "199:0:65" }, "scope": 57, "src": "185:49:65", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 22, "nodeType": "Block", "src": "262:43:65", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 19, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 16, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "276:3:65", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 17, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "276:10:65", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 18, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, "src": "290:5:65", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "276:19:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 21, "nodeType": "IfStatement", "src": "272:26:65", "trueBody": { "id": 20, "nodeType": "PlaceholderStatement", "src": "297:1:65" } } ] }, "id": 23, "name": "restricted", "nameLocation": "249:10:65", "nodeType": "ModifierDefinition", "parameters": { "id": 15, "nodeType": "ParameterList", "parameters": [], "src": "259:2:65" }, "src": "240:65:65", "virtual": false, "visibility": "internal" }, { "body": { "id": 34, "nodeType": "Block", "src": "371:54:65", "statements": [ { "expression": { "id": 32, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 30, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "381:24:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 31, "name": "_completed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, "src": "408:10:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "381:37:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 33, "nodeType": "ExpressionStatement", "src": "381:37:65" } ] }, "functionSelector": "fdacd576", "id": 35, "implemented": true, "kind": "function", "modifiers": [ { "id": 28, "modifierName": { "id": 27, "name": "restricted", "nodeType": "IdentifierPath", "referencedDeclaration": 23, "src": "360:10:65" }, "nodeType": "ModifierInvocation", "src": "360:10:65" } ], "name": "setCompleted", "nameLocation": "320:12:65", "nodeType": "FunctionDefinition", "parameters": { "id": 26, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25, "mutability": "mutable", "name": "_completed", "nameLocation": "341:10:65", "nodeType": "VariableDeclaration", "scope": 35, "src": "333:18:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 24, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "333:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "332:20:65" }, "returnParameters": { "id": 29, "nodeType": "ParameterList", "parameters": [], "src": "371:0:65" }, "scope": 57, "src": "311:114:65", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 55, "nodeType": "Block", "src": "487:119:65", "statements": [ { "assignments": [ 44 ], "declarations": [ { "constant": false, "id": 44, "mutability": "mutable", "name": "upgraded", "nameLocation": "508:8:65", "nodeType": "VariableDeclaration", "scope": 55, "src": "497:19:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$57", "typeString": "contract Migrations" }, "typeName": { "id": 43, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 42, "name": "Migrations", "nodeType": "IdentifierPath", "referencedDeclaration": 57, "src": "497:10:65" }, "referencedDeclaration": 57, "src": "497:10:65", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$57", "typeString": "contract Migrations" } }, "visibility": "internal" } ], "id": 48, "initialValue": { "arguments": [ { "id": 46, "name": "_newAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 37, "src": "530:11:65", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 45, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 57, "src": "519:10:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Migrations_$57_$", "typeString": "type(contract Migrations)" } }, "id": 47, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "519:23:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$57", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", "src": "497:45:65" }, { "expression": { "arguments": [ { "id": 52, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "574:24:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 49, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 44, "src": "552:8:65", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$57", "typeString": "contract Migrations" } }, "id": 51, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", "referencedDeclaration": 35, "src": "552:21:65", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, "id": 53, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "552:47:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 54, "nodeType": "ExpressionStatement", "src": "552:47:65" } ] }, "functionSelector": "0900f010", "id": 56, "implemented": true, "kind": "function", "modifiers": [ { "id": 40, "modifierName": { "id": 39, "name": "restricted", "nodeType": "IdentifierPath", "referencedDeclaration": 23, "src": "476:10:65" }, "nodeType": "ModifierInvocation", "src": "476:10:65" } ], "name": "upgrade", "nameLocation": "440:7:65", "nodeType": "FunctionDefinition", "parameters": { "id": 38, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 37, "mutability": "mutable", "name": "_newAddress", "nameLocation": "456:11:65", "nodeType": "VariableDeclaration", "scope": 56, "src": "448:19:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 36, "name": "address", "nodeType": "ElementaryTypeName", "src": "448:7:65", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "447:21:65" }, "returnParameters": { "id": 41, "nodeType": "ParameterList", "parameters": [], "src": "487:0:65" }, "scope": 57, "src": "431:175:65", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 58, "src": "63:545:65" } ], "src": "39:570:65" }, "bytecode": "608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101d1806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100665780638da5cb5b14610082578063fdacd576146100ad575b600080fd5b61006461005f366004610155565b6100c0565b005b61006f60015481565b6040519081526020015b60405180910390f35b600054610095906001600160a01b031681565b6040516001600160a01b039091168152602001610079565b6100646100bb366004610183565b61013d565b6000546001600160a01b031633141561013a57600154604051637ed66abb60e11b815282916001600160a01b0383169163fdacd576916101069160040190815260200190565b600060405180830381600087803b15801561012057600080fd5b505af1158015610134573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031633141561013a57600155565b600060208284031215610166578081fd5b81356001600160a01b038116811461017c578182fd5b9392505050565b600060208284031215610194578081fd5b503591905056fea264697066735822122052378155a84a206e1e135b6c19b6a9d992f7a2a046ba0e8f8a427e6bdaa00b9c64736f6c63430008020033", "bytecodeSha1": "1fb9ca8d1635310be750f56272887b454dad300a", "compiler": { "evm_version": "istanbul", "optimizer": { "enabled": true, "runs": 200 }, "version": "0.8.2+commit.661d1103" }, "contractName": "Migrations", "coverageMap": { "branches": { "65": {} }, "statements": { "65": { "Migrations.setCompleted": { "1": [ 381, 418 ] }, "Migrations.upgrade": { "0": [ 552, 599 ] } } } }, "dependencies": [], "deployedBytecode": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100665780638da5cb5b14610082578063fdacd576146100ad575b600080fd5b61006461005f366004610155565b6100c0565b005b61006f60015481565b6040519081526020015b60405180910390f35b600054610095906001600160a01b031681565b6040516001600160a01b039091168152602001610079565b6100646100bb366004610183565b61013d565b6000546001600160a01b031633141561013a57600154604051637ed66abb60e11b815282916001600160a01b0383169163fdacd576916101069160040190815260200190565b600060405180830381600087803b15801561012057600080fd5b505af1158015610134573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031633141561013a57600155565b600060208284031215610166578081fd5b81356001600160a01b038116811461017c578182fd5b9392505050565b600060208284031215610194578081fd5b503591905056fea264697066735822122052378155a84a206e1e135b6c19b6a9d992f7a2a046ba0e8f8a427e6bdaa00b9c64736f6c63430008020033", "deployedSourceMap": "63:545:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;431:175;;;;;;:::i;:::-;;:::i;:::-;;115:39;;;;;;;;;874:25:103;;;862:2;847:18;115:39:65;;;;;;;;89:20;;;;;-1:-1:-1;;;;;89:20:65;;;;;;-1:-1:-1;;;;;684:32:103;;;666:51;;654:2;639:18;89:20:65;621:102:103;311:114:65;;;;;;:::i;:::-;;:::i;431:175::-;290:5;;-1:-1:-1;;;;;290:5:65;276:10;:19;272:26;;;574:24:::1;::::0;552:47:::1;::::0;-1:-1:-1;;;552:47:65;;530:11;;-1:-1:-1;;;;;552:21:65;::::1;::::0;::::1;::::0;:47:::1;::::0;::::1;;874:25:103::0;;;862:2;847:18;;829:76;552:47:65::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;297:1;272:26:::0;431:175;:::o;311:114::-;290:5;;-1:-1:-1;;;;;290:5:65;276:10;:19;272:26;;;381:24:::1;:37:::0;311:114::o;14:306:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;178:23;;-1:-1:-1;;;;;230:31:103;;220:42;;210:2;;281:6;273;266:22;210:2;309:5;84:236;-1:-1:-1;;;84:236:103:o;325:190::-;;437:2;425:9;416:7;412:23;408:32;405:2;;;458:6;450;443:22;405:2;-1:-1:-1;486:23:103;;395:120;-1:-1:-1;395:120:103:o", "language": "Solidity", "natspec": { "kind": "dev", "methods": {}, "version": 1 }, "offset": [ 63, 608 ], "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x900F010 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0xAD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x5F CALLDATASIZE PUSH1 0x4 PUSH2 0x155 JUMP JUMPDEST PUSH2 0xC0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6F PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x95 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79 JUMP JUMPDEST PUSH2 0x64 PUSH2 0xBB CALLDATASIZE PUSH1 0x4 PUSH2 0x183 JUMP JUMPDEST PUSH2 0x13D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x13A JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7ED66ABB PUSH1 0xE1 SHL DUP2 MSTORE DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP2 PUSH4 0xFDACD576 SWAP2 PUSH2 0x106 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x134 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x13A JUMPI PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x166 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x17C JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x194 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE CALLDATACOPY DUP2 SSTORE 0xA8 0x4A KECCAK256 PUSH15 0x1E135B6C19B6A9D992F7A2A046BA0E DUP16 DUP11 TIMESTAMP PUSH31 0x6BDAA00B9C64736F6C63430008020033000000000000000000000000000000 ", "pcMap": { "0": { "offset": [ 63, 608 ], "op": "PUSH1", "path": "65", "value": "0x80" }, "2": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH1", "path": "65", "value": "0x40" }, "4": { "fn": null, "offset": [ 63, 608 ], "op": "MSTORE", "path": "65" }, "5": { "fn": null, "offset": [ 63, 608 ], "op": "CALLVALUE", "path": "65" }, "6": { "fn": null, "offset": [ 63, 608 ], "op": "DUP1", "path": "65" }, "7": { "fn": null, "offset": [ 63, 608 ], "op": "ISZERO", "path": "65" }, "8": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH2", "path": "65", "value": "0x10" }, "11": { "fn": null, "offset": [ 63, 608 ], "op": "JUMPI", "path": "65" }, "12": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH1", "path": "65", "value": "0x0" }, "14": { "fn": null, "offset": [ 63, 608 ], "op": "DUP1", "path": "65" }, "15": { "dev": "Cannot send ether to nonpayable function", "fn": null, "offset": [ 63, 608 ], "op": "REVERT", "path": "65" }, "16": { "fn": null, "offset": [ 63, 608 ], "op": "JUMPDEST", "path": "65" }, "17": { "fn": null, "offset": [ 63, 608 ], "op": "POP", "path": "65" }, "18": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH1", "path": "65", "value": "0x4" }, "20": { "fn": null, "offset": [ 63, 608 ], "op": "CALLDATASIZE", "path": "65" }, "21": { "fn": null, "offset": [ 63, 608 ], "op": "LT", "path": "65" }, "22": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH2", "path": "65", "value": "0x4C" }, "25": { "fn": null, "offset": [ 63, 608 ], "op": "JUMPI", "path": "65" }, "26": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH1", "path": "65", "value": "0x0" }, "28": { "fn": null, "offset": [ 63, 608 ], "op": "CALLDATALOAD", "path": "65" }, "29": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH1", "path": "65", "value": "0xE0" }, "31": { "fn": null, "offset": [ 63, 608 ], "op": "SHR", "path": "65" }, "32": { "fn": null, "offset": [ 63, 608 ], "op": "DUP1", "path": "65" }, "33": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH4", "path": "65", "value": "0x900F010" }, "38": { "fn": null, "offset": [ 63, 608 ], "op": "EQ", "path": "65" }, "39": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH2", "path": "65", "value": "0x51" }, "42": { "fn": null, "offset": [ 63, 608 ], "op": "JUMPI", "path": "65" }, "43": { "fn": null, "offset": [ 63, 608 ], "op": "DUP1", "path": "65" }, "44": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH4", "path": "65", "value": "0x445DF0AC" }, "49": { "fn": null, "offset": [ 63, 608 ], "op": "EQ", "path": "65" }, "50": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH2", "path": "65", "value": "0x66" }, "53": { "fn": null, "offset": [ 63, 608 ], "op": "JUMPI", "path": "65" }, "54": { "fn": null, "offset": [ 63, 608 ], "op": "DUP1", "path": "65" }, "55": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH4", "path": "65", "value": "0x8DA5CB5B" }, "60": { "fn": null, "offset": [ 63, 608 ], "op": "EQ", "path": "65" }, "61": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH2", "path": "65", "value": "0x82" }, "64": { "fn": null, "offset": [ 63, 608 ], "op": "JUMPI", "path": "65" }, "65": { "fn": null, "offset": [ 63, 608 ], "op": "DUP1", "path": "65" }, "66": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH4", "path": "65", "value": "0xFDACD576" }, "71": { "fn": null, "offset": [ 63, 608 ], "op": "EQ", "path": "65" }, "72": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH2", "path": "65", "value": "0xAD" }, "75": { "fn": null, "offset": [ 63, 608 ], "op": "JUMPI", "path": "65" }, "76": { "fn": null, "offset": [ 63, 608 ], "op": "JUMPDEST", "path": "65" }, "77": { "fn": null, "offset": [ 63, 608 ], "op": "PUSH1", "path": "65", "value": "0x0" }, "79": { "fn": null, "offset": [ 63, 608 ], "op": "DUP1", "path": "65" }, "80": { "first_revert": true, "fn": null, "offset": [ 63, 608 ], "op": "REVERT", "path": "65" }, "81": { "fn": "Migrations.upgrade", "offset": [ 431, 606 ], "op": "JUMPDEST", "path": "65" }, "82": { "fn": "Migrations.upgrade", "offset": [ 431, 606 ], "op": "PUSH2", "path": "65", "value": "0x64" }, "85": { "fn": "Migrations.upgrade", "offset": [ 431, 606 ], "op": "PUSH2", "path": "65", "value": "0x5F" }, "88": { "fn": "Migrations.upgrade", "offset": [ 431, 606 ], "op": "CALLDATASIZE", "path": "65" }, "89": { "fn": "Migrations.upgrade", "offset": [ 431, 606 ], "op": "PUSH1", "path": "65", "value": "0x4" }, "91": { "fn": "Migrations.upgrade", "offset": [ 431, 606 ], "op": "PUSH2", "path": "65", "value": "0x155" }, "94": { "fn": "Migrations.upgrade", "jump": "i", "offset": [ 431, 606 ], "op": "JUMP", "path": "65" }, "95": { "fn": "Migrations.upgrade", "offset": [ 431, 606 ], "op": "JUMPDEST", "path": "65" }, "96": { "fn": "Migrations.upgrade", "offset": [ 431, 606 ], "op": "PUSH2", "path": "65", "value": "0xC0" }, "99": { "fn": "Migrations.upgrade", "jump": "i", "offset": [ 431, 606 ], "op": "JUMP", "path": "65" }, "100": { "fn": "Migrations.upgrade", "offset": [ 431, 606 ], "op": "JUMPDEST", "path": "65" }, "101": { "fn": "Migrations.upgrade", "offset": [ 431, 606 ], "op": "STOP", "path": "65" }, "102": { "offset": [ 115, 154 ], "op": "JUMPDEST", "path": "65" }, "103": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "PUSH2", "path": "65", "value": "0x6F" }, "106": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "PUSH1", "path": "65", "value": "0x1" }, "108": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "SLOAD", "path": "65" }, "109": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "DUP2", "path": "65" }, "110": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "JUMP", "path": "65" }, "111": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "JUMPDEST", "path": "65" }, "112": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "PUSH1", "path": "65", "value": "0x40" }, "114": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "MLOAD", "path": "65" }, "115": { "op": "SWAP1" }, "116": { "op": "DUP2" }, "117": { "op": "MSTORE" }, "118": { "op": "PUSH1", "value": "0x20" }, "120": { "op": "ADD" }, "121": { "offset": [ 115, 154 ], "op": "JUMPDEST", "path": "65" }, "122": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "PUSH1", "path": "65", "value": "0x40" }, "124": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "MLOAD", "path": "65" }, "125": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "DUP1", "path": "65" }, "126": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "SWAP2", "path": "65" }, "127": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "SUB", "path": "65" }, "128": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "SWAP1", "path": "65" }, "129": { "fn": "Migrations.upgrade", "offset": [ 115, 154 ], "op": "RETURN", "path": "65" }, "130": { "offset": [ 89, 109 ], "op": "JUMPDEST", "path": "65" }, "131": { "fn": "Migrations.upgrade", "offset": [ 89, 109 ], "op": "PUSH1", "path": "65", "value": "0x0" }, "133": { "fn": "Migrations.upgrade", "offset": [ 89, 109 ], "op": "SLOAD", "path": "65" }, "134": { "fn": "Migrations.upgrade", "offset": [ 89, 109 ], "op": "PUSH2", "path": "65", "value": "0x95" }, "137": { "fn": "Migrations.upgrade", "offset": [ 89, 109 ], "op": "SWAP1", "path": "65" }, "138": { "op": "PUSH1", "value": "0x1" }, "140": { "op": "PUSH1", "value": "0x1" }, "142": { "op": "PUSH1", "value": "0xA0" }, "144": { "op": "SHL" }, "145": { "op": "SUB" }, "146": { "offset": [ 89, 109 ], "op": "AND", "path": "65" }, "147": { "fn": "Migrations.upgrade", "offset": [ 89, 109 ], "op": "DUP2", "path": "65" }, "148": { "fn": "Migrations.upgrade", "offset": [ 89, 109 ], "op": "JUMP", "path": "65" }, "149": { "fn": "Migrations.upgrade", "offset": [ 89, 109 ], "op": "JUMPDEST", "path": "65" }, "150": { "fn": "Migrations.upgrade", "offset": [ 89, 109 ], "op": "PUSH1", "path": "65", "value": "0x40" }, "152": { "fn": "Migrations.upgrade", "offset": [ 89, 109 ], "op": "MLOAD", "path": "65" }, "153": { "op": "PUSH1", "value": "0x1" }, "155": { "op": "PUSH1", "value": "0x1" }, "157": { "op": "PUSH1", "value": "0xA0" }, "159": { "op": "SHL" }, "160": { "op": "SUB" }, "161": { "op": "SWAP1" }, "162": { "op": "SWAP2" }, "163": { "op": "AND" }, "164": { "op": "DUP2" }, "165": { "op": "MSTORE" }, "166": { "op": "PUSH1", "value": "0x20" }, "168": { "op": "ADD" }, "169": { "offset": [ 89, 109 ], "op": "PUSH2", "path": "65", "value": "0x79" }, "172": { "op": "JUMP" }, "173": { "fn": "Migrations.setCompleted", "offset": [ 311, 425 ], "op": "JUMPDEST", "path": "65" }, "174": { "fn": "Migrations.setCompleted", "offset": [ 311, 425 ], "op": "PUSH2", "path": "65", "value": "0x64" }, "177": { "fn": "Migrations.setCompleted", "offset": [ 311, 425 ], "op": "PUSH2", "path": "65", "value": "0xBB" }, "180": { "fn": "Migrations.setCompleted", "offset": [ 311, 425 ], "op": "CALLDATASIZE", "path": "65" }, "181": { "fn": "Migrations.setCompleted", "offset": [ 311, 425 ], "op": "PUSH1", "path": "65", "value": "0x4" }, "183": { "fn": "Migrations.setCompleted", "offset": [ 311, 425 ], "op": "PUSH2", "path": "65", "value": "0x183" }, "186": { "fn": "Migrations.setCompleted", "jump": "i", "offset": [ 311, 425 ], "op": "JUMP", "path": "65" }, "187": { "fn": "Migrations.setCompleted", "offset": [ 311, 425 ], "op": "JUMPDEST", "path": "65" }, "188": { "fn": "Migrations.setCompleted", "offset": [ 311, 425 ], "op": "PUSH2", "path": "65", "value": "0x13D" }, "191": { "fn": "Migrations.setCompleted", "jump": "i", "offset": [ 311, 425 ], "op": "JUMP", "path": "65" }, "192": { "fn": "Migrations.upgrade", "offset": [ 431, 606 ], "op": "JUMPDEST", "path": "65" }, "193": { "offset": [ 290, 295 ], "op": "PUSH1", "path": "65", "value": "0x0" }, "195": { "fn": "Migrations.upgrade", "offset": [ 290, 295 ], "op": "SLOAD", "path": "65" }, "196": { "op": "PUSH1", "value": "0x1" }, "198": { "op": "PUSH1", "value": "0x1" }, "200": { "op": "PUSH1", "value": "0xA0" }, "202": { "op": "SHL" }, "203": { "op": "SUB" }, "204": { "offset": [ 290, 295 ], "op": "AND", "path": "65" }, "205": { "offset": [ 276, 286 ], "op": "CALLER", "path": "65" }, "206": { "offset": [ 276, 295 ], "op": "EQ", "path": "65" }, "207": { "offset": [ 272, 298 ], "op": "ISZERO", "path": "65" }, "208": { "fn": "Migrations.upgrade", "offset": [ 272, 298 ], "op": "PUSH2", "path": "65", "value": "0x13A" }, "211": { "offset": [ 272, 298 ], "op": "JUMPI", "path": "65" }, "212": { "fn": "Migrations.upgrade", "offset": [ 574, 598 ], "op": "PUSH1", "path": "65", "statement": 0, "value": "0x1" }, "214": { "fn": "Migrations.upgrade", "offset": [ 574, 598 ], "op": "SLOAD", "path": "65" }, "215": { "fn": "Migrations.upgrade", "offset": [ 552, 599 ], "op": "PUSH1", "path": "65", "value": "0x40" }, "217": { "fn": "Migrations.upgrade", "offset": [ 552, 599 ], "op": "MLOAD", "path": "65" }, "218": { "op": "PUSH4", "value": "0x7ED66ABB" }, "223": { "op": "PUSH1", "value": "0xE1" }, "225": { "op": "SHL" }, "226": { "fn": "Migrations.upgrade", "offset": [ 552, 599 ], "op": "DUP2", "path": "65" }, "227": { "fn": "Migrations.upgrade", "offset": [ 552, 599 ], "op": "MSTORE", "path": "65" }, "228": { "fn": "Migrations.upgrade", "offset": [ 530, 541 ], "op": "DUP3", "path": "65" }, "229": { "fn": "Migrations.upgrade", "offset": [ 530, 541 ], "op": "SWAP2", "path": "65" }, "230": { "op": "PUSH1", "value": "0x1" }, "232": { "op": "PUSH1", "value": "0x1" }, "234": { "op": "PUSH1", "value": "0xA0" }, "236": { "op": "SHL" }, "237": { "op": "SUB" }, "238": { "fn": "Migrations.upgrade", "offset": [ 552, 573 ], "op": "DUP4", "path": "65" }, "239": { "fn": "Migrations.upgrade", "offset": [ 552, 573 ], "op": "AND", "path": "65" }, "240": { "fn": "Migrations.upgrade", "offset": [ 552, 573 ], "op": "SWAP2", "path": "65" }, "241": { "fn": "Migrations.upgrade", "offset": [ 552, 573 ], "op": "PUSH4", "path": "65", "value": "0xFDACD576" }, "246": { "fn": "Migrations.upgrade", "offset": [ 552, 573 ], "op": "SWAP2", "path": "65" }, "247": { "fn": "Migrations.upgrade", "offset": [ 552, 599 ], "op": "PUSH2", "path": "65", "value": "0x106" }, "250": { "fn": "Migrations.upgrade", "offset": [ 552, 599 ], "op": "SWAP2", "path": "65" }, "251": { "fn": "Migrations.upgrade", "offset": [ 552, 599 ], "op": "PUSH1", "path": "65", "value": "0x4" }, "253": { "fn": "Migrations.upgrade", "offset": [ 552, 599 ], "op": "ADD", "path": "65" }, "254": { "op": "SWAP1" }, "255": { "op": "DUP2" }, "256": { "op": "MSTORE" }, "257": { "op": "PUSH1", "value": "0x20" }, "259": { "op": "ADD" }, "260": { "op": "SWAP1" }, "261": { "op": "JUMP" }, "262": { "fn": "Migrations.upgrade", "offset": [ 552, 599