@newos/upgrades
Version:
Core JavaScript library for the NewOS
647 lines (646 loc) • 34.3 kB
JSON
{
"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"
}
}