UNPKG

@newos/upgrades

Version:
647 lines (646 loc) 34.3 kB
{ "fileName": "ProxyCreator.sol", "contractName": "ProxyCreator", "source": "pragma solidity ^0.5.0;\n\nimport \"../application/App.sol\";\nimport \"../Initializable.sol\";\n\ncontract ProxyCreator is Initializable {\n\n address public created;\n\n function initialize(App app, string memory packageName, string memory contractName, address admin, bytes memory data) public initializer {\n created = address(app.create(packageName, contractName, admin, data));\n }\n\n function name() public pure returns (string memory) {\n return \"ProxyCreator\";\n }\n\n}\n", "sourcePath": "contracts/mocks/ProxyCreator.sol", "sourceMap": "90:379:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;90:379:15;;;;;;;", "deployedSourceMap": "90:379:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;90:379:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;382:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;382:84:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;134:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;161:217;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;161:217:15;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;161:217:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;161:217:15;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;161:217:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;161:217:15;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;161:217:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;161:217:15;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;161:217:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;161:217:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;161:217:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;161:217:15;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;161:217:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;161:217:15;;;;;;;;;;;;;;;:::i;:::-;;382:84;419:13;440:21;;;;;;;;;;;;;;;;;;;;382:84;:::o;134:22::-;;;;;;;;;;;;;:::o;161:217::-;1024:12:0;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:19;1152:12;;;;;;;;;;;1151:13;1129:35;;1174:14;1170:80;;;1213:4;1198:12;;:19;;;;;;;;;;;;;;;;;;1239:4;1225:11;;:18;;;;;;;;;;;;;;;;;;1170:80;322:3:15;:10;;;333:11;346:12;360:5;367:4;322:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;322:50:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;322:50:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;322:50:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;322:50:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;322:50:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;322:50:15;;;;;;;;;;;;;;;;304:7;;:69;;;;;;;;;;;;;;;;;;1268:14:0;1264:55;;;1307:5;1292:12;;:20;;;;;;;;;;;;;;;;;;1264:55;161:217:15;;;;;;:::o;1409:498:0:-;1456:4;1797:12;1820:4;1797:28;;1831:10;1876:4;1864:17;1858:23;;1901:1;1895:2;:7;1888:14;;;;1409:498;:::o", "abi": [ { "constant": true, "inputs": [], "name": "name", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": true, "inputs": [], "name": "created", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "app", "type": "address" }, { "name": "packageName", "type": "string" }, { "name": "contractName", "type": "string" }, { "name": "admin", "type": "address" }, { "name": "data", "type": "bytes" } ], "name": "initialize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "ast": { "absolutePath": "contracts/mocks/ProxyCreator.sol", "exportedSymbols": { "ProxyCreator": [ 4157 ] }, "id": 4158, "nodeType": "SourceUnit", "nodes": [ { "id": 4114, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:15" }, { "absolutePath": "contracts/application/App.sol", "file": "../application/App.sol", "id": 4115, "nodeType": "ImportDirective", "scope": 4158, "sourceUnit": 326, "src": "25:32:15", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "contracts/Initializable.sol", "file": "../Initializable.sol", "id": 4116, "nodeType": "ImportDirective", "scope": 4158, "sourceUnit": 69, "src": "58:30:15", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 4117, "name": "Initializable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 68, "src": "115:13:15", "typeDescriptions": { "typeIdentifier": "t_contract$_Initializable_$68", "typeString": "contract Initializable" } }, "id": 4118, "nodeType": "InheritanceSpecifier", "src": "115:13:15" } ], "contractDependencies": [ 68 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 4157, "linearizedBaseContracts": [ 4157, 68 ], "name": "ProxyCreator", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 4120, "name": "created", "nodeType": "VariableDeclaration", "scope": 4157, "src": "134:22:15", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4119, "name": "address", "nodeType": "ElementaryTypeName", "src": "134:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "body": { "id": 4147, "nodeType": "Block", "src": "298:80:15", "statements": [ { "expression": { "argumentTypes": null, "id": 4145, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4135, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4120, "src": "304:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4139, "name": "packageName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4124, "src": "333:11:15", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 4140, "name": "contractName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4126, "src": "346:12:15", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 4141, "name": "admin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4128, "src": "360:5:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 4142, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4130, "src": "367:4:15", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 4137, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4122, "src": "322:3:15", "typeDescriptions": { "typeIdentifier": "t_contract$_App_$325", "typeString": "contract App" } }, "id": 4138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "create", "nodeType": "MemberAccess", "referencedDeclaration": 324, "src": "322:10:15", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$_t_contract$_AdminUpgradeabilityProxy_$5533_$", "typeString": "function (string memory,string memory,address,bytes memory) payable external returns (contract AdminUpgradeabilityProxy)" } }, "id": 4143, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "322:50:15", "typeDescriptions": { "typeIdentifier": "t_contract$_AdminUpgradeabilityProxy_$5533", "typeString": "contract AdminUpgradeabilityProxy" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_AdminUpgradeabilityProxy_$5533", "typeString": "contract AdminUpgradeabilityProxy" } ], "id": 4136, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "314:7:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 4144, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "314:59:15", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "304:69:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 4146, "nodeType": "ExpressionStatement", "src": "304:69:15" } ] }, "documentation": null, "id": 4148, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 4133, "modifierName": { "argumentTypes": null, "id": 4132, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, "src": "286:11:15", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "286:11:15" } ], "name": "initialize", "nodeType": "FunctionDefinition", "parameters": { "id": 4131, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4122, "name": "app", "nodeType": "VariableDeclaration", "scope": 4148, "src": "181:7:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_App_$325", "typeString": "contract App" }, "typeName": { "contractScope": null, "id": 4121, "name": "App", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 325, "src": "181:3:15", "typeDescriptions": { "typeIdentifier": "t_contract$_App_$325", "typeString": "contract App" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4124, "name": "packageName", "nodeType": "VariableDeclaration", "scope": 4148, "src": "190:25:15", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 4123, "name": "string", "nodeType": "ElementaryTypeName", "src": "190:6:15", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4126, "name": "contractName", "nodeType": "VariableDeclaration", "scope": 4148, "src": "217:26:15", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 4125, "name": "string", "nodeType": "ElementaryTypeName", "src": "217:6:15", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4128, "name": "admin", "nodeType": "VariableDeclaration", "scope": 4148, "src": "245:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4127, "name": "address", "nodeType": "ElementaryTypeName", "src": "245:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4130, "name": "data", "nodeType": "VariableDeclaration", "scope": 4148, "src": "260:17:15", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4129, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "260:5:15", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "180:98:15" }, "returnParameters": { "id": 4134, "nodeType": "ParameterList", "parameters": [], "src": "298:0:15" }, "scope": 4157, "src": "161:217:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 4155, "nodeType": "Block", "src": "434:32:15", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "50726f787943726561746f72", "id": 4153, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "447:14:15", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f386af0e192358159c576d9cb03b2fccac834c116b8b7298f6ce24e796a80da2", "typeString": "literal_string \"ProxyCreator\"" }, "value": "ProxyCreator" }, "functionReturnParameters": 4152, "id": 4154, "nodeType": "Return", "src": "440:21:15" } ] }, "documentation": null, "id": 4156, "implemented": true, "kind": "function", "modifiers": [], "name": "name", "nodeType": "FunctionDefinition", "parameters": { "id": 4149, "nodeType": "ParameterList", "parameters": [], "src": "395:2:15" }, "returnParameters": { "id": 4152, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4151, "name": "", "nodeType": "VariableDeclaration", "scope": 4156, "src": "419:13:15", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 4150, "name": "string", "nodeType": "ElementaryTypeName", "src": "419:6:15", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "418:15:15" }, "scope": 4157, "src": "382:84:15", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], "scope": 4158, "src": "90:379:15" } ], "src": "0:470:15" }, "bytecode": "0x608060405234801561001057600080fd5b50610757806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806306fdde0314610046578063325a19f1146100c95780636f7b86be14610113575b600080fd5b61004e61033c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561008e578082015181840152602081019050610073565b50505050905090810190601f1680156100bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100d1610379565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61033a600480360360a081101561012957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561016657600080fd5b82018360208201111561017857600080fd5b8035906020019184600183028401116401000000008311171561019a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156101fd57600080fd5b82018360208201111561020f57600080fd5b8035906020019184600183028401116401000000008311171561023157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156102b457600080fd5b8201836020820111156102c657600080fd5b803590602001918460018302840111640100000000831117156102e857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061039f565b005b60606040805190810160405280600c81526020017f50726f787943726561746f720000000000000000000000000000000000000000815250905090565b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900460ff16806103be57506103bd6106e6565b5b806103d557506000809054906101000a900460ff16155b151561042c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806106fe602e913960400191505060405180910390fd5b60008060019054906101000a900460ff16159050801561047c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8573ffffffffffffffffffffffffffffffffffffffff1663cd3e318a868686866040518563ffffffff1660e01b81526004018080602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001848103845288818151815260200191508051906020019080838360005b8381101561052557808201518184015260208101905061050a565b50505050905090810190601f1680156105525780820380516001836020036101000a031916815260200191505b50848103835287818151815260200191508051906020019080838360005b8381101561058b578082015181840152602081019050610570565b50505050905090810190601f1680156105b85780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b838110156105f15780820151818401526020810190506105d6565b50505050905090810190601f16801561061e5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b15801561064257600080fd5b505af1158015610656573d6000803e3d6000fd5b505050506040513d602081101561066c57600080fd5b8101908080519060200190929190505050603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080156106de5760008060016101000a81548160ff0219169083151502179055505b505050505050565b6000803090506000813b905060008114925050509056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a72305820377e8232e7a24e62e2f1002aed6e4384a11996d8fcbfa5cfaa671266a1f92d8c0029", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806306fdde0314610046578063325a19f1146100c95780636f7b86be14610113575b600080fd5b61004e61033c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561008e578082015181840152602081019050610073565b50505050905090810190601f1680156100bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100d1610379565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61033a600480360360a081101561012957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561016657600080fd5b82018360208201111561017857600080fd5b8035906020019184600183028401116401000000008311171561019a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156101fd57600080fd5b82018360208201111561020f57600080fd5b8035906020019184600183028401116401000000008311171561023157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156102b457600080fd5b8201836020820111156102c657600080fd5b803590602001918460018302840111640100000000831117156102e857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061039f565b005b60606040805190810160405280600c81526020017f50726f787943726561746f720000000000000000000000000000000000000000815250905090565b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900460ff16806103be57506103bd6106e6565b5b806103d557506000809054906101000a900460ff16155b151561042c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806106fe602e913960400191505060405180910390fd5b60008060019054906101000a900460ff16159050801561047c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8573ffffffffffffffffffffffffffffffffffffffff1663cd3e318a868686866040518563ffffffff1660e01b81526004018080602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001848103845288818151815260200191508051906020019080838360005b8381101561052557808201518184015260208101905061050a565b50505050905090810190601f1680156105525780820380516001836020036101000a031916815260200191505b50848103835287818151815260200191508051906020019080838360005b8381101561058b578082015181840152602081019050610570565b50505050905090810190601f1680156105b85780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b838110156105f15780820151818401526020810190506105d6565b50505050905090810190601f16801561061e5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b15801561064257600080fd5b505af1158015610656573d6000803e3d6000fd5b505050506040513d602081101561066c57600080fd5b8101908080519060200190929190505050603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080156106de5760008060016101000a81548160ff0219169083151502179055505b505050505050565b6000803090506000813b905060008114925050509056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a72305820377e8232e7a24e62e2f1002aed6e4384a11996d8fcbfa5cfaa671266a1f92d8c0029", "compiler": { "name": "solc", "version": "0.5.3+commit.10d17f24.Emscripten.clang", "optimizer": {}, "evmVersion": "constantinople" } }