@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
JSON
{
"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"