@newos/upgrades
Version:
Core JavaScript library for the NewOS
853 lines (852 loc) • 37 kB
JSON
{
"fileName": "InitializableMock.sol",
"contractName": "InitializableMock",
"source": "pragma solidity ^0.5.0;\n\nimport \"../Initializable.sol\";\n\n/**\n * @title InitializableMock\n * @dev This contract is a mock to test initializable functionality\n */\ncontract InitializableMock is Initializable {\n\n bool public initializerRan;\n uint256 public x;\n\n function initialize() public initializer {\n initializerRan = true;\n }\n\n function initializeNested() public initializer {\n initialize();\n }\n\n function initializeWithX(uint256 _x) public payable initializer {\n x = _x;\n }\n\n function nonInitializable(uint256 _x) public payable {\n x = _x;\n }\n\n function fail() public pure {\n require(false, \"InitializableMock forced failure\");\n }\n\n function secret() private pure returns (string memory) {\n return 'Im secret';\n }\n\n}\n",
"sourcePath": "contracts/mocks/InitializableMock.sol",
"sourceMap": "161:590:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;161:590:11;;;;;;;",
"deployedSourceMap": "161:590:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;412:81;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;412:81:11;;;;;;;;;;;;;;;;;:::i;:::-;;240:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;240:16:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;261:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;261:73:11;;;:::i;:::-;;571:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;571:89:11;;;:::i;:::-;;210:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;210:26:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;338:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;338:70:11;;;:::i;:::-;;497;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;497:70:11;;;;;;;;;;;;;;;;;:::i;:::-;;412:81;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;486:2:11;482:1;:6;;;;1268:14:0;1264:55;;;1307:5;1292:12;;:20;;;;;;;;;;;;;;;;;;1264:55;412:81:11;;:::o;240:16::-;;;;:::o;261:73::-;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;325:4:11;308:14;;:21;;;;;;;;;;;;;;;;;;1268:14:0;1264:55;;;1307:5;1292:12;;:20;;;;;;;;;;;;;;;;;;1264:55;261:73:11;:::o;571:89::-;613:5;605:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;571:89::o;210:26::-;;;;;;;;;;;;;:::o;338:70::-;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;391:12:11;:10;:12::i;:::-;1268:14:0;1264:55;;;1307:5;1292:12;;:20;;;;;;;;;;;;;;;;;;1264:55;338:70:11;:::o;497:::-;560:2;556:1;:6;;;;497:70;:::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": false,
"inputs": [
{
"name": "_x",
"type": "uint256"
}
],
"name": "initializeWithX",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "x",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "initialize",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "fail",
"outputs": [],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "initializerRan",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "initializeNested",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_x",
"type": "uint256"
}
],
"name": "nonInitializable",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
}
],
"ast": {
"absolutePath": "contracts/mocks/InitializableMock.sol",
"exportedSymbols": {
"InitializableMock": [
1704
]
},
"id": 1705,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1638,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:11"
},
{
"absolutePath": "contracts/Initializable.sol",
"file": "../Initializable.sol",
"id": 1639,
"nodeType": "ImportDirective",
"scope": 1705,
"sourceUnit": 69,
"src": "25:30:11",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1640,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 68,
"src": "191:13:11",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$68",
"typeString": "contract Initializable"
}
},
"id": 1641,
"nodeType": "InheritanceSpecifier",
"src": "191:13:11"
}
],
"contractDependencies": [
68
],
"contractKind": "contract",
"documentation": "@title InitializableMock\n@dev This contract is a mock to test initializable functionality",
"fullyImplemented": true,
"id": 1704,
"linearizedBaseContracts": [
1704,
68
],
"name": "InitializableMock",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 1643,
"name": "initializerRan",
"nodeType": "VariableDeclaration",
"scope": 1704,
"src": "210:26:11",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1642,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "210:4:11",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 1645,
"name": "x",
"nodeType": "VariableDeclaration",
"scope": 1704,
"src": "240:16:11",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1644,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "240:7:11",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 1654,
"nodeType": "Block",
"src": "302:32:11",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1652,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1650,
"name": "initializerRan",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1643,
"src": "308:14:11",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 1651,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "325:4:11",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "308:21:11",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 1653,
"nodeType": "ExpressionStatement",
"src": "308:21:11"
}
]
},
"documentation": null,
"id": 1655,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 1648,
"modifierName": {
"argumentTypes": null,
"id": 1647,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "290:11:11",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "290:11:11"
}
],
"name": "initialize",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1646,
"nodeType": "ParameterList",
"parameters": [],
"src": "280:2:11"
},
"returnParameters": {
"id": 1649,
"nodeType": "ParameterList",
"parameters": [],
"src": "302:0:11"
},
"scope": 1704,
"src": "261:73:11",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1663,
"nodeType": "Block",
"src": "385:23:11",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 1660,
"name": "initialize",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1655,
"src": "391:10:11",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 1661,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "391:12:11",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1662,
"nodeType": "ExpressionStatement",
"src": "391:12:11"
}
]
},
"documentation": null,
"id": 1664,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 1658,
"modifierName": {
"argumentTypes": null,
"id": 1657,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "373:11:11",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "373:11:11"
}
],
"name": "initializeNested",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1656,
"nodeType": "ParameterList",
"parameters": [],
"src": "363:2:11"
},
"returnParameters": {
"id": 1659,
"nodeType": "ParameterList",
"parameters": [],
"src": "385:0:11"
},
"scope": 1704,
"src": "338:70:11",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1675,
"nodeType": "Block",
"src": "476:17:11",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1673,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1671,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1645,
"src": "482:1:11",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1672,
"name": "_x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1666,
"src": "486:2:11",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "482:6:11",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1674,
"nodeType": "ExpressionStatement",
"src": "482:6:11"
}
]
},
"documentation": null,
"id": 1676,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 1669,
"modifierName": {
"argumentTypes": null,
"id": 1668,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "464:11:11",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "464:11:11"
}
],
"name": "initializeWithX",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1667,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1666,
"name": "_x",
"nodeType": "VariableDeclaration",
"scope": 1676,
"src": "437:10:11",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1665,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "437:7:11",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "436:12:11"
},
"returnParameters": {
"id": 1670,
"nodeType": "ParameterList",
"parameters": [],
"src": "476:0:11"
},
"scope": 1704,
"src": "412:81:11",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1685,
"nodeType": "Block",
"src": "550:17:11",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1683,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1681,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1645,
"src": "556:1:11",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1682,
"name": "_x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1678,
"src": "560:2:11",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "556:6:11",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1684,
"nodeType": "ExpressionStatement",
"src": "556:6:11"
}
]
},
"documentation": null,
"id": 1686,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "nonInitializable",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1679,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1678,
"name": "_x",
"nodeType": "VariableDeclaration",
"scope": 1686,
"src": "523:10:11",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1677,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "523:7:11",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "522:12:11"
},
"returnParameters": {
"id": 1680,
"nodeType": "ParameterList",
"parameters": [],
"src": "550:0:11"
},
"scope": 1704,
"src": "497:70:11",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1694,
"nodeType": "Block",
"src": "599:61:11",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 1690,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "613:5:11",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"hexValue": "496e697469616c697a61626c654d6f636b20666f72636564206661696c757265",
"id": 1691,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "620:34:11",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_70458f305ab12a5814a8a6125666b5faf9428e7481e52fe1e943f8addb4009b7",
"typeString": "literal_string \"InitializableMock forced failure\""
},
"value": "InitializableMock forced failure"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_70458f305ab12a5814a8a6125666b5faf9428e7481e52fe1e943f8addb4009b7",
"typeString": "literal_string \"InitializableMock forced failure\""
}
],
"id": 1689,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
6466,
6467
],
"referencedDeclaration": 6467,
"src": "605:7:11",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 1692,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "605:50:11",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1693,
"nodeType": "ExpressionStatement",
"src": "605:50:11"
}
]
},
"documentation": null,
"id": 1695,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "fail",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1687,
"nodeType": "ParameterList",
"parameters": [],
"src": "584:2:11"
},
"returnParameters": {
"id": 1688,
"nodeType": "ParameterList",
"parameters": [],
"src": "599:0:11"
},
"scope": 1704,
"src": "571:89:11",
"stateMutability": "pure",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1702,
"nodeType": "Block",
"src": "719:29:11",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "496d20736563726574",
"id": 1700,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "732:11:11",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_917e1920cd22ea08a6fe16f962e32a49c23ad423aee4a52a1181dc229099e711",
"typeString": "literal_string \"Im secret\""
},
"value": "Im secret"
},
"functionReturnParameters": 1699,
"id": 1701,
"nodeType": "Return",
"src": "725:18:11"
}
]
},
"documentation": null,
"id": 1703,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "secret",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1696,
"nodeType": "ParameterList",
"parameters": [],
"src": "679:2:11"
},
"returnParameters": {
"id": 1699,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1698,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1703,
"src": "704:13:11",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1697,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "704:6:11",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "703:15:11"
},
"scope": 1704,
"src": "664:84:11",
"stateMutability": "pure",
"superFunction": null,
"visibility": "private"
}
],
"scope": 1705,
"src": "161:590:11"
}
],
"src": "0:752:11"
},
"bytecode": "0x608060405234801561001057600080fd5b506105a9806100206000396000f3fe60806040526004361061006f5760003560e01c8063a9cc47181161004e578063a9cc4718146100e4578063c3b8ef2a146100fb578063cb3a528d1461012a578063e955c9ec146101415761006f565b806218eaa8146100745780630c55699c146100a25780638129fc1c146100cd575b600080fd5b6100a06004803603602081101561008a57600080fd5b810190808035906020019092919050505061016f565b005b3480156100ae57600080fd5b506100b7610278565b6040518082815260200191505060405180910390f35b3480156100d957600080fd5b506100e261027e565b005b3480156100f057600080fd5b506100f961039a565b005b34801561010757600080fd5b50610110610412565b604051808215151515815260200191505060405180910390f35b34801561013657600080fd5b5061013f610425565b005b61016d6004803603602081101561015757600080fd5b810190808035906020019092919050505061052e565b005b600060019054906101000a900460ff168061018e575061018d610538565b5b806101a557506000809054906101000a900460ff16155b15156101fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610550602e913960400191505060405180910390fd5b60008060019054906101000a900460ff16159050801561024c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8160348190555080156102745760008060016101000a81548160ff0219169083151502179055505b5050565b60345481565b600060019054906101000a900460ff168061029d575061029c610538565b5b806102b457506000809054906101000a900460ff16155b151561030b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610550602e913960400191505060405180910390fd5b60008060019054906101000a900460ff16159050801561035b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6001603360006101000a81548160ff02191690831515021790555080156103975760008060016101000a81548160ff0219169083151502179055505b50565b60001515610410576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e697469616c697a61626c654d6f636b20666f72636564206661696c75726581525060200191505060405180910390fd5b565b603360009054906101000a900460ff1681565b600060019054906101000a900460ff16806104445750610443610538565b5b8061045b57506000809054906101000a900460ff16155b15156104b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610550602e913960400191505060405180910390fd5b60008060019054906101000a900460ff161590508015610502576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61050a61027e565b801561052b5760008060016101000a81548160ff0219169083151502179055505b50565b8060348190555050565b6000803090506000813b905060008114925050509056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a72305820287277f186cfd0868034fed958b0abf0f28439fe9d0569dbc87cecb63ecb49cf0029",
"deployedBytecode": "0x60806040526004361061006f5760003560e01c8063a9cc47181161004e578063a9cc4718146100e4578063c3b8ef2a146100fb578063cb3a528d1461012a578063e955c9ec146101415761006f565b806218eaa8146100745780630c55699c146100a25780638129fc1c146100cd575b600080fd5b6100a06004803603602081101561008a57600080fd5b810190808035906020019092919050505061016f565b005b3480156100ae57600080fd5b506100b7610278565b6040518082815260200191505060405180910390f35b3480156100d957600080fd5b506100e261027e565b005b3480156100f057600080fd5b506100f961039a565b005b34801561010757600080fd5b50610110610412565b604051808215151515815260200191505060405180910390f35b34801561013657600080fd5b5061013f610425565b005b61016d6004803603602081101561015757600080fd5b810190808035906020019092919050505061052e565b005b600060019054906101000a900460ff168061018e575061018d610538565b5b806101a557506000809054906101000a900460ff16155b15156101fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610550602e913960400191505060405180910390fd5b60008060019054906101000a900460ff16159050801561024c576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8160348190555080156102745760008060016101000a81548160ff0219169083151502179055505b5050565b60345481565b600060019054906101000a900460ff168061029d575061029c610538565b5b806102b457506000809054906101000a900460ff16155b151561030b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610550602e913960400191505060405180910390fd5b60008060019054906101000a900460ff16159050801561035b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6001603360006101000a81548160ff02191690831515021790555080156103975760008060016101000a81548160ff0219169083151502179055505b50565b60001515610410576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e697469616c697a61626c654d6f636b20666f72636564206661696c75726581525060200191505060405180910390fd5b565b603360009054906101000a900460ff1681565b600060019054906101000a900460ff16806104445750610443610538565b5b8061045b57506000809054906101000a900460ff16155b15156104b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610550602e913960400191505060405180910390fd5b60008060019054906101000a900460ff161590508015610502576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61050a61027e565b801561052b5760008060016101000a81548160ff0219169083151502179055505b50565b8060348190555050565b6000803090506000813b905060008114925050509056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a165627a7a72305820287277f186cfd0868034fed958b0abf0f28439fe9d0569dbc87cecb63ecb49cf0029",
"compiler": {
"name": "solc",
"version": "0.5.3+commit.10d17f24.Emscripten.clang",
"optimizer": {},
"evmVersion": "constantinople"
}
}