UNPKG

@etherisc/gif-contracts

Version:

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

1,833 lines 66.5 kB
{ "abi": [ { "inputs": [], "name": "POLICY", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "QUERY", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "contracts", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "contractName", "type": "bytes32" } ], "name": "getContract", "outputs": [ { "internalType": "address", "name": "moduleAddress", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "compromisedPolicyModuleAddress", "type": "address" }, { "internalType": "address", "name": "originalQueryModuleAddress", "type": "address" } ], "name": "upgradeToV2", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "allSourcePaths": { "97": "contracts/test/TestRegistryCompromisedController.sol" }, "ast": { "absolutePath": "contracts/test/TestRegistryCompromisedController.sol", "exportedSymbols": { "TestRegistryCompromisedController": [ 16881 ] }, "id": 16882, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 16830, "literals": [ "solidity", "0.8", ".2" ], "nodeType": "PragmaDirective", "src": "39:22:97" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 16881, "linearizedBaseContracts": [ 16881 ], "name": "TestRegistryCompromisedController", "nameLocation": "72:33:97", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, "functionSelector": "dadbccee", "id": 16836, "mutability": "constant", "name": "POLICY", "nameLocation": "137:6:97", "nodeType": "VariableDeclaration", "scope": 16881, "src": "113:50:97", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 16831, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "113:7:97", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": { "arguments": [ { "hexValue": "506f6c696379", "id": 16834, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "154:8:97", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a", "typeString": "literal_string \"Policy\"" }, "value": "Policy" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a", "typeString": "literal_string \"Policy\"" } ], "id": 16833, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "146:7:97", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { "id": 16832, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "146:7:97", "typeDescriptions": {} } }, "id": 16835, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "146:17:97", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "public" }, { "constant": true, "functionSelector": "4f6fc0b1", "id": 16842, "mutability": "constant", "name": "QUERY", "nameLocation": "193:5:97", "nodeType": "VariableDeclaration", "scope": 16881, "src": "169:48:97", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 16837, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "169:7:97", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": { "arguments": [ { "hexValue": "5175657279", "id": 16840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "209:7:97", "typeDescriptions": { "typeIdentifier": "t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb", "typeString": "literal_string \"Query\"" }, "value": "Query" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb", "typeString": "literal_string \"Query\"" } ], "id": 16839, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "201:7:97", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { "id": 16838, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "201:7:97", "typeDescriptions": {} } }, "id": 16841, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "201:16:97", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "public" }, { "constant": false, "functionSelector": "ec56a373", "id": 16846, "mutability": "mutable", "name": "contracts", "nameLocation": "259:9:97", "nodeType": "VariableDeclaration", "scope": 16881, "src": "224:44:97", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "typeName": { "id": 16845, "keyType": { "id": 16843, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "232:7:97", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", "src": "224:27:97", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { "id": 16844, "name": "address", "nodeType": "ElementaryTypeName", "src": "243:7:97", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, "visibility": "public" }, { "body": { "id": 16859, "nodeType": "Block", "src": "392:56:97", "statements": [ { "expression": { "id": 16857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 16853, "name": "moduleAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16851, "src": "402:13:97", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "baseExpression": { "id": 16854, "name": "contracts", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16846, "src": "418:9:97", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, "id": 16856, "indexExpression": { "id": 16855, "name": "contractName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16848, "src": "428:12:97", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "418:23:97", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "402:39:97", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 16858, "nodeType": "ExpressionStatement", "src": "402:39:97" } ] }, "functionSelector": "e16c7d98", "id": 16860, "implemented": true, "kind": "function", "modifiers": [], "name": "getContract", "nameLocation": "284:11:97", "nodeType": "FunctionDefinition", "parameters": { "id": 16849, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 16848, "mutability": "mutable", "name": "contractName", "nameLocation": "304:12:97", "nodeType": "VariableDeclaration", "scope": 16860, "src": "296:20:97", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 16847, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "296:7:97", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "295:22:97" }, "returnParameters": { "id": 16852, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 16851, "mutability": "mutable", "name": "moduleAddress", "nameLocation": "373:13:97", "nodeType": "VariableDeclaration", "scope": 16860, "src": "365:21:97", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 16850, "name": "address", "nodeType": "ElementaryTypeName", "src": "365:7:97", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "364:23:97" }, "scope": 16881, "src": "275:173:97", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 16879, "nodeType": "Block", "src": "595:123:97", "statements": [ { "expression": { "id": 16871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 16867, "name": "contracts", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16846, "src": "606:9:97", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, "id": 16869, "indexExpression": { "id": 16868, "name": "POLICY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16836, "src": "616:6:97", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "606:17:97", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 16870, "name": "compromisedPolicyModuleAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16862, "src": "626:30:97", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "606:50:97", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 16872, "nodeType": "ExpressionStatement", "src": "606:50:97" }, { "expression": { "id": 16877, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 16873, "name": "contracts", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16846, "src": "666:9:97", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, "id": 16875, "indexExpression": { "id": 16874, "name": "QUERY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16842, "src": "676:5:97", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "666:16:97", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 16876, "name": "originalQueryModuleAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16864, "src": "685:26:97", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "666:45:97", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 16878, "nodeType": "ExpressionStatement", "src": "666:45:97" } ] }, "functionSelector": "2bc0d7fb", "id": 16880, "implemented": true, "kind": "function", "modifiers": [], "name": "upgradeToV2", "nameLocation": "463:11:97", "nodeType": "FunctionDefinition", "parameters": { "id": 16865, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 16862, "mutability": "mutable", "name": "compromisedPolicyModuleAddress", "nameLocation": "492:30:97", "nodeType": "VariableDeclaration", "scope": 16880, "src": "484:38:97", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 16861, "name": "address", "nodeType": "ElementaryTypeName", "src": "484:7:97", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 16864, "mutability": "mutable", "name": "originalQueryModuleAddress", "nameLocation": "541:26:97", "nodeType": "VariableDeclaration", "scope": 16880, "src": "533:34:97", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 16863, "name": "address", "nodeType": "ElementaryTypeName", "src": "533:7:97", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "474:99:97" }, "returnParameters": { "id": 16866, "nodeType": "ParameterList", "parameters": [], "src": "595:0:97" }, "scope": 16881, "src": "454:264:97", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 16882, "src": "63:657:97" } ], "src": "39:682:97" }, "bytecode": "608060405234801561001057600080fd5b50610223806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632bc0d7fb1461005c5780634f6fc0b1146100eb578063dadbccee1461010d578063e16c7d981461011d578063ec56a3731461015e575b600080fd5b6100e961006a3660046101a3565b600060208190527ff51ccb208f64c7678632570548cd6ba9ff8006466ec703412c917b708a19c9e080546001600160a01b039485166001600160a01b03199182161790915564517565727960d81b9091527f4bbcc452808ec518cf1b5b4bb97d91d9d8d47960bbf45a7adab13b29ddca37538054929093169116179055565b005b6100fa64517565727960d81b81565b6040519081526020015b60405180910390f35b6100fa65506f6c69637960d01b81565b61014661012b3660046101d5565b6000908152602081905260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610104565b61014661016c3660046101d5565b6000602081905290815260409020546001600160a01b031681565b80356001600160a01b038116811461019e57600080fd5b919050565b600080604083850312156101b5578182fd5b6101be83610187565b91506101cc60208401610187565b90509250929050565b6000602082840312156101e6578081fd5b503591905056fea264697066735822122045379b0042afd6e899ae655cf3ba84d1334c528e9fea19968349516807ccbb8e64736f6c63430008020033", "bytecodeSha1": "268899bb39f03285551fb7958890917e9c62147f", "compiler": { "evm_version": "istanbul", "optimizer": { "enabled": true, "runs": 200 }, "version": "0.8.2+commit.661d1103" }, "contractName": "TestRegistryCompromisedController", "coverageMap": { "branches": { "97": {} }, "statements": { "97": { "TestRegistryCompromisedController.getContract": { "2": [ 402, 441 ] }, "TestRegistryCompromisedController.upgradeToV2": { "0": [ 606, 656 ], "1": [ 666, 711 ] } } } }, "dependencies": [], "deployedBytecode": "608060405234801561001057600080fd5b50600436106100575760003560e01c80632bc0d7fb1461005c5780634f6fc0b1146100eb578063dadbccee1461010d578063e16c7d981461011d578063ec56a3731461015e575b600080fd5b6100e961006a3660046101a3565b600060208190527ff51ccb208f64c7678632570548cd6ba9ff8006466ec703412c917b708a19c9e080546001600160a01b039485166001600160a01b03199182161790915564517565727960d81b9091527f4bbcc452808ec518cf1b5b4bb97d91d9d8d47960bbf45a7adab13b29ddca37538054929093169116179055565b005b6100fa64517565727960d81b81565b6040519081526020015b60405180910390f35b6100fa65506f6c69637960d01b81565b61014661012b3660046101d5565b6000908152602081905260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610104565b61014661016c3660046101d5565b6000602081905290815260409020546001600160a01b031681565b80356001600160a01b038116811461019e57600080fd5b919050565b600080604083850312156101b5578182fd5b6101be83610187565b91506101cc60208401610187565b90509250929050565b6000602082840312156101e6578081fd5b503591905056fea264697066735822122045379b0042afd6e899ae655cf3ba84d1334c528e9fea19968349516807ccbb8e64736f6c63430008020033", "deployedSourceMap": "63:657:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;454:264;;;;;;:::i;:::-;606:9;:17;;;;;:50;;-1:-1:-1;;;;;606:50:97;;;-1:-1:-1;;;;;;606:50:97;;;;;;;-1:-1:-1;;;666:16:97;;;;:45;;;;;;;;;;;454:264;;;169:48;;-1:-1:-1;;;169:48:97;;;;;1016:25:103;;;1004:2;989:18;169:48:97;;;;;;;;113:50;;-1:-1:-1;;;113:50:97;;275:173;;;;;;:::i;:::-;365:21;418:23;;;;;;;;;;;-1:-1:-1;;;;;418:23:97;;275:173;;;;-1:-1:-1;;;;;826:32:103;;;808:51;;796:2;781:18;275:173:97;763:102:103;224:44:97;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;224:44:97;;;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:270::-;;;321:2;309:9;300:7;296:23;292:32;289:2;;;342:6;334;327:22;289:2;370:29;389:9;370:29;:::i;:::-;360:39;;418:38;452:2;441:9;437:18;418:38;:::i;:::-;408:48;;279:183;;;;;:::o;467:190::-;;579:2;567:9;558:7;554:23;550:32;547:2;;;600:6;592;585:22;547:2;-1:-1:-1;628:23:103;;537:120;-1:-1:-1;537:120:103:o", "language": "Solidity", "natspec": { "kind": "dev", "methods": {}, "version": 1 }, "offset": [ 63, 720 ], "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 0x2BC0D7FB EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x4F6FC0B1 EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xDADBCCEE EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0xEC56A373 EQ PUSH2 0x15E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE9 PUSH2 0x6A CALLDATASIZE PUSH1 0x4 PUSH2 0x1A3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH32 0xF51CCB208F64C7678632570548CD6BA9FF8006466EC703412C917B708A19C9E0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH5 0x5175657279 PUSH1 0xD8 SHL SWAP1 SWAP2 MSTORE PUSH32 0x4BBCC452808EC518CF1B5B4BB97D91D9D8D47960BBF45A7ADAB13B29DDCA3753 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFA PUSH5 0x5175657279 PUSH1 0xD8 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFA PUSH6 0x506F6C696379 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x12B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B5 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1BE DUP4 PUSH2 0x187 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CC PUSH1 0x20 DUP5 ADD PUSH2 0x187 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASLIMIT CALLDATACOPY SWAP12 STOP TIMESTAMP 0xAF 0xD6 0xE8 SWAP10 0xAE PUSH6 0x5CF3BA84D133 0x4C MSTORE DUP15 SWAP16 0xEA NOT SWAP7 DUP4 0x49 MLOAD PUSH9 0x7CCBB8E64736F6C63 NUMBER STOP ADDMOD MUL STOP CALLER ", "pcMap": { "0": { "offset": [ 63, 720 ], "op": "PUSH1", "path": "97", "value": "0x80" }, "2": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH1", "path": "97", "value": "0x40" }, "4": { "fn": null, "offset": [ 63, 720 ], "op": "MSTORE", "path": "97" }, "5": { "fn": null, "offset": [ 63, 720 ], "op": "CALLVALUE", "path": "97" }, "6": { "fn": null, "offset": [ 63, 720 ], "op": "DUP1", "path": "97" }, "7": { "fn": null, "offset": [ 63, 720 ], "op": "ISZERO", "path": "97" }, "8": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH2", "path": "97", "value": "0x10" }, "11": { "fn": null, "offset": [ 63, 720 ], "op": "JUMPI", "path": "97" }, "12": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH1", "path": "97", "value": "0x0" }, "14": { "fn": null, "offset": [ 63, 720 ], "op": "DUP1", "path": "97" }, "15": { "dev": "Cannot send ether to nonpayable function", "fn": null, "offset": [ 63, 720 ], "op": "REVERT", "path": "97" }, "16": { "fn": null, "offset": [ 63, 720 ], "op": "JUMPDEST", "path": "97" }, "17": { "fn": null, "offset": [ 63, 720 ], "op": "POP", "path": "97" }, "18": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH1", "path": "97", "value": "0x4" }, "20": { "fn": null, "offset": [ 63, 720 ], "op": "CALLDATASIZE", "path": "97" }, "21": { "fn": null, "offset": [ 63, 720 ], "op": "LT", "path": "97" }, "22": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH2", "path": "97", "value": "0x57" }, "25": { "fn": null, "offset": [ 63, 720 ], "op": "JUMPI", "path": "97" }, "26": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH1", "path": "97", "value": "0x0" }, "28": { "fn": null, "offset": [ 63, 720 ], "op": "CALLDATALOAD", "path": "97" }, "29": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH1", "path": "97", "value": "0xE0" }, "31": { "fn": null, "offset": [ 63, 720 ], "op": "SHR", "path": "97" }, "32": { "fn": null, "offset": [ 63, 720 ], "op": "DUP1", "path": "97" }, "33": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH4", "path": "97", "value": "0x2BC0D7FB" }, "38": { "fn": null, "offset": [ 63, 720 ], "op": "EQ", "path": "97" }, "39": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH2", "path": "97", "value": "0x5C" }, "42": { "fn": null, "offset": [ 63, 720 ], "op": "JUMPI", "path": "97" }, "43": { "fn": null, "offset": [ 63, 720 ], "op": "DUP1", "path": "97" }, "44": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH4", "path": "97", "value": "0x4F6FC0B1" }, "49": { "fn": null, "offset": [ 63, 720 ], "op": "EQ", "path": "97" }, "50": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH2", "path": "97", "value": "0xEB" }, "53": { "fn": null, "offset": [ 63, 720 ], "op": "JUMPI", "path": "97" }, "54": { "fn": null, "offset": [ 63, 720 ], "op": "DUP1", "path": "97" }, "55": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH4", "path": "97", "value": "0xDADBCCEE" }, "60": { "fn": null, "offset": [ 63, 720 ], "op": "EQ", "path": "97" }, "61": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH2", "path": "97", "value": "0x10D" }, "64": { "fn": null, "offset": [ 63, 720 ], "op": "JUMPI", "path": "97" }, "65": { "fn": null, "offset": [ 63, 720 ], "op": "DUP1", "path": "97" }, "66": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH4", "path": "97", "value": "0xE16C7D98" }, "71": { "fn": null, "offset": [ 63, 720 ], "op": "EQ", "path": "97" }, "72": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH2", "path": "97", "value": "0x11D" }, "75": { "fn": null, "offset": [ 63, 720 ], "op": "JUMPI", "path": "97" }, "76": { "fn": null, "offset": [ 63, 720 ], "op": "DUP1", "path": "97" }, "77": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH4", "path": "97", "value": "0xEC56A373" }, "82": { "fn": null, "offset": [ 63, 720 ], "op": "EQ", "path": "97" }, "83": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH2", "path": "97", "value": "0x15E" }, "86": { "fn": null, "offset": [ 63, 720 ], "op": "JUMPI", "path": "97" }, "87": { "fn": null, "offset": [ 63, 720 ], "op": "JUMPDEST", "path": "97" }, "88": { "fn": null, "offset": [ 63, 720 ], "op": "PUSH1", "path": "97", "value": "0x0" }, "90": { "fn": null, "offset": [ 63, 720 ], "op": "DUP1", "path": "97" }, "91": { "first_revert": true, "fn": null, "offset": [ 63, 720 ], "op": "REVERT", "path": "97" }, "92": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 454, 718 ], "op": "JUMPDEST", "path": "97" }, "93": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 454, 718 ], "op": "PUSH2", "path": "97", "value": "0xE9" }, "96": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 454, 718 ], "op": "PUSH2", "path": "97", "value": "0x6A" }, "99": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 454, 718 ], "op": "CALLDATASIZE", "path": "97" }, "100": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 454, 718 ], "op": "PUSH1", "path": "97", "value": "0x4" }, "102": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 454, 718 ], "op": "PUSH2", "path": "97", "value": "0x1A3" }, "105": { "fn": "TestRegistryCompromisedController.upgradeToV2", "jump": "i", "offset": [ 454, 718 ], "op": "JUMP", "path": "97" }, "106": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 454, 718 ], "op": "JUMPDEST", "path": "97" }, "107": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 615 ], "op": "PUSH1", "path": "97", "statement": 0, "value": "0x0" }, "109": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 623 ], "op": "PUSH1", "path": "97", "value": "0x20" }, "111": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 623 ], "op": "DUP2", "path": "97" }, "112": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 623 ], "op": "SWAP1", "path": "97" }, "113": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 623 ], "op": "MSTORE", "path": "97" }, "114": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 623 ], "op": "PUSH32", "path": "97", "value": "0xF51CCB208F64C7678632570548CD6BA9FF8006466EC703412C917B708A19C9E0" }, "147": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 656 ], "op": "DUP1", "path": "97" }, "148": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 656 ], "op": "SLOAD", "path": "97" }, "149": { "op": "PUSH1", "value": "0x1" }, "151": { "op": "PUSH1", "value": "0x1" }, "153": { "op": "PUSH1", "value": "0xA0" }, "155": { "op": "SHL" }, "156": { "op": "SUB" }, "157": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 656 ], "op": "SWAP5", "path": "97" }, "158": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 656 ], "op": "DUP6", "path": "97" }, "159": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 656 ], "op": "AND", "path": "97" }, "160": { "op": "PUSH1", "value": "0x1" }, "162": { "op": "PUSH1", "value": "0x1" }, "164": { "op": "PUSH1", "value": "0xA0" }, "166": { "op": "SHL" }, "167": { "op": "SUB" }, "168": { "op": "NOT" }, "169": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 656 ], "op": "SWAP2", "path": "97" }, "170": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 656 ], "op": "DUP3", "path": "97" }, "171": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 656 ], "op": "AND", "path": "97" }, "172": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 656 ], "op": "OR", "path": "97" }, "173": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 656 ], "op": "SWAP1", "path": "97" }, "174": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 656 ], "op": "SWAP2", "path": "97" }, "175": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 606, 656 ], "op": "SSTORE", "path": "97" }, "176": { "op": "PUSH5", "value": "0x5175657279" }, "182": { "op": "PUSH1", "value": "0xD8" }, "184": { "op": "SHL" }, "185": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 682 ], "op": "SWAP1", "path": "97", "statement": 1 }, "186": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 682 ], "op": "SWAP2", "path": "97" }, "187": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 682 ], "op": "MSTORE", "path": "97" }, "188": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 682 ], "op": "PUSH32", "path": "97", "value": "0x4BBCC452808EC518CF1B5B4BB97D91D9D8D47960BBF45A7ADAB13B29DDCA3753" }, "221": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 711 ], "op": "DUP1", "path": "97" }, "222": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 711 ], "op": "SLOAD", "path": "97" }, "223": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 711 ], "op": "SWAP3", "path": "97" }, "224": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 711 ], "op": "SWAP1", "path": "97" }, "225": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 711 ], "op": "SWAP4", "path": "97" }, "226": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 711 ], "op": "AND", "path": "97" }, "227": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 711 ], "op": "SWAP2", "path": "97" }, "228": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 711 ], "op": "AND", "path": "97" }, "229": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 711 ], "op": "OR", "path": "97" }, "230": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 711 ], "op": "SWAP1", "path": "97" }, "231": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 666, 711 ], "op": "SSTORE", "path": "97" }, "232": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 454, 718 ], "op": "JUMP", "path": "97" }, "233": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 454, 718 ], "op": "JUMPDEST", "path": "97" }, "234": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 454, 718 ], "op": "STOP", "path": "97" }, "235": { "offset": [ 169, 217 ], "op": "JUMPDEST", "path": "97" }, "236": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 169, 217 ], "op": "PUSH2", "path": "97", "value": "0xFA" }, "239": { "op": "PUSH5", "value": "0x5175657279" }, "245": { "op": "PUSH1", "value": "0xD8" }, "247": { "op": "SHL" }, "248": { "offset": [ 169, 217 ], "op": "DUP2", "path": "97" }, "249": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 169, 217 ], "op": "JUMP", "path": "97" }, "250": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 169, 217 ], "op": "JUMPDEST", "path": "97" }, "251": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 169, 217 ], "op": "PUSH1", "path": "97", "value": "0x40" }, "253": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 169, 217 ], "op": "MLOAD", "path": "97" }, "254": { "op": "SWAP1" }, "255": { "op": "DUP2" }, "256": { "op": "MSTORE" }, "257": { "op": "PUSH1", "value": "0x20" }, "259": { "op": "ADD" }, "260": { "offset": [ 169, 217 ], "op": "JUMPDEST", "path": "97" }, "261": { "fn": "TestRegistryCompromisedController.upgradeToV2", "offset": [ 169, 217 ], "op": "PUSH1", "path": "97"