UNPKG

@daostack/upgrades

Version:
1,084 lines (1,083 loc) 41.7 kB
{ "fileName": "SingleInheritanceInitializableMocks.sol", "contractName": "MigratableMockV1", "source": "pragma solidity ^0.6.0;\n// SPDX-License-Identifier: MIT\n\nimport '../Initializable.sol';\n\n/**\n * @title MigratableMockV1\n * @dev This contract is a mock to test initializable functionality through migrations\n */\ncontract MigratableMockV1 is Initializable {\n uint256 public x;\n\n function initialize(uint256 value) initializer public payable {\n x = value;\n }\n}\n\n/**\n * @title MigratableMockV2\n * @dev This contract is a mock to test migratable functionality with params\n */\ncontract MigratableMockV2 is MigratableMockV1 {\n bool migratedV2;\n uint256 public y;\n\n function migrate(uint256 value, uint256 anotherValue) public payable {\n require(!migratedV2);\n x = value;\n y = anotherValue;\n migratedV2 = true;\n }\n}\n\n/**\n * @title MigratableMockV3\n * @dev This contract is a mock to test migratable functionality without params\n */\ncontract MigratableMockV3 is MigratableMockV2 {\n bool migratedV3;\n\n function migrate() public payable {\n require(!migratedV3);\n uint256 oldX = x;\n x = y;\n y = oldX;\n migratedV3 = true;\n }\n}\n", "sourcePath": "contracts/mocks/SingleInheritanceInitializableMocks.sol", "sourceMap": "211:152:17:-:0;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "211:152:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:16;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;279:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;258:16;;;;;;:::o;279:82::-;1056:12:0;;;;;;;;;;;:31;;;;1072:15;:13;:15;;:::i;:::-;1056:31;:47;;;;1092:11;;;;;;;;;;;1091:12;1056:47;1048:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1161:19;1184:12;;;;;;;;;;;1183:13;1161:35;;1206:14;1202:80;;;1245:4;1230:12;;:19;;;;;;;;;;;;;;;;;;1271:4;1257:11;;:18;;;;;;;;;;;;;;;;;;1202:80;351:5:17::1;347:1;;:9;;;;;;;1288:1:0;1300:14:::0;1296:55;;;1339:5;1324:12;;:20;;;;;;;;;;;;;;;;;;1296:55;279:82:17;;;:::o;1441:498:0:-;1488:4;1829:12;1852:4;1829:28;;1863:10;1908:4;1896:17;1890:23;;1933:1;1927:2;:7;1920:14;;;;;;1441:498;;;;:::o", "abi": [ { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "initialize", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "x", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "ast": { "absolutePath": "contracts/mocks/SingleInheritanceInitializableMocks.sol", "exportedSymbols": { "MigratableMockV1": [ 4521 ], "MigratableMockV2": [ 4554 ], "MigratableMockV3": [ 4585 ] }, "id": 4586, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 4502, "literals": [ "solidity", "^", "0.6", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:17" }, { "absolutePath": "contracts/Initializable.sol", "file": "../Initializable.sol", "id": 4503, "nodeType": "ImportDirective", "scope": 4586, "sourceUnit": 75, "src": "57:30:17", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 4505, "name": "Initializable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 74, "src": "240:13:17", "typeDescriptions": { "typeIdentifier": "t_contract$_Initializable_$74", "typeString": "contract Initializable" } }, "id": 4506, "nodeType": "InheritanceSpecifier", "src": "240:13:17" } ], "contractDependencies": [ 74 ], "contractKind": "contract", "documentation": { "id": 4504, "nodeType": "StructuredDocumentation", "src": "89:121:17", "text": " @title MigratableMockV1\n @dev This contract is a mock to test initializable functionality through migrations" }, "fullyImplemented": true, "id": 4521, "linearizedBaseContracts": [ 4521, 74 ], "name": "MigratableMockV1", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "functionSelector": "0c55699c", "id": 4508, "mutability": "mutable", "name": "x", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4521, "src": "258:16:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4507, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "258:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "body": { "id": 4519, "nodeType": "Block", "src": "341:20:17", "statements": [ { "expression": { "argumentTypes": null, "id": 4517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4515, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4508, "src": "347:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4516, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4510, "src": "351:5:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "347:9:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4518, "nodeType": "ExpressionStatement", "src": "347:9:17" } ] }, "documentation": null, "functionSelector": "fe4b84df", "id": 4520, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 4513, "modifierName": { "argumentTypes": null, "id": 4512, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "314:11:17", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "314:11:17" } ], "name": "initialize", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 4511, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4510, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4520, "src": "299:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4509, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "299:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "298:15:17" }, "returnParameters": { "id": 4514, "nodeType": "ParameterList", "parameters": [], "src": "341:0:17" }, "scope": 4521, "src": "279:82:17", "stateMutability": "payable", "virtual": false, "visibility": "public" } ], "scope": 4586, "src": "211:152:17" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 4523, "name": "MigratableMockV1", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4521, "src": "506:16:17", "typeDescriptions": { "typeIdentifier": "t_contract$_MigratableMockV1_$4521", "typeString": "contract MigratableMockV1" } }, "id": 4524, "nodeType": "InheritanceSpecifier", "src": "506:16:17" } ], "contractDependencies": [ 74, 4521 ], "contractKind": "contract", "documentation": { "id": 4522, "nodeType": "StructuredDocumentation", "src": "365:111:17", "text": " @title MigratableMockV2\n @dev This contract is a mock to test migratable functionality with params" }, "fullyImplemented": true, "id": 4554, "linearizedBaseContracts": [ 4554, 4521, 74 ], "name": "MigratableMockV2", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 4526, "mutability": "mutable", "name": "migratedV2", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4554, "src": "527:15:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4525, "name": "bool", "nodeType": "ElementaryTypeName", "src": "527:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "functionSelector": "a56dfe4a", "id": 4528, "mutability": "mutable", "name": "y", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4554, "src": "546:16:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4527, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "546:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "body": { "id": 4552, "nodeType": "Block", "src": "636:91:17", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "650:11:17", "subExpression": { "argumentTypes": null, "id": 4536, "name": "migratedV2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4526, "src": "651:10:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 4535, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "642:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 4538, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "642:20:17", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4539, "nodeType": "ExpressionStatement", "src": "642:20:17" }, { "expression": { "argumentTypes": null, "id": 4542, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4540, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4508, "src": "668:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4541, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4530, "src": "672:5:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "668:9:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4543, "nodeType": "ExpressionStatement", "src": "668:9:17" }, { "expression": { "argumentTypes": null, "id": 4546, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4544, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4528, "src": "683:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4545, "name": "anotherValue", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4532, "src": "687:12:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "683:16:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4547, "nodeType": "ExpressionStatement", "src": "683:16:17" }, { "expression": { "argumentTypes": null, "id": 4550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4548, "name": "migratedV2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4526, "src": "705:10:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 4549, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "718:4:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "705:17:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 4551, "nodeType": "ExpressionStatement", "src": "705:17:17" } ] }, "documentation": null, "functionSelector": "3e54bacb", "id": 4553, "implemented": true, "kind": "function", "modifiers": [], "name": "migrate", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 4533, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4530, "mutability": "mutable", "name": "value", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4553, "src": "584:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4529, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "584:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4532, "mutability": "mutable", "name": "anotherValue", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4553, "src": "599:20:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4531, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "599:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "583:37:17" }, "returnParameters": { "id": 4534, "nodeType": "ParameterList", "parameters": [], "src": "636:0:17" }, "scope": 4554, "src": "567:160:17", "stateMutability": "payable", "virtual": false, "visibility": "public" } ], "scope": 4586, "src": "477:252:17" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 4556, "name": "MigratableMockV2", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4554, "src": "875:16:17", "typeDescriptions": { "typeIdentifier": "t_contract$_MigratableMockV2_$4554", "typeString": "contract MigratableMockV2" } }, "id": 4557, "nodeType": "InheritanceSpecifier", "src": "875:16:17" } ], "contractDependencies": [ 74, 4521, 4554 ], "contractKind": "contract", "documentation": { "id": 4555, "nodeType": "StructuredDocumentation", "src": "731:114:17", "text": " @title MigratableMockV3\n @dev This contract is a mock to test migratable functionality without params" }, "fullyImplemented": true, "id": 4585, "linearizedBaseContracts": [ 4585, 4554, 4521, 74 ], "name": "MigratableMockV3", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 4559, "mutability": "mutable", "name": "migratedV3", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4585, "src": "896:15:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4558, "name": "bool", "nodeType": "ElementaryTypeName", "src": "896:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "body": { "id": 4583, "nodeType": "Block", "src": "950:101:17", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "964:11:17", "subExpression": { "argumentTypes": null, "id": 4563, "name": "migratedV3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4559, "src": "965:10:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 4562, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "956:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 4565, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "956:20:17", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4566, "nodeType": "ExpressionStatement", "src": "956:20:17" }, { "assignments": [ 4568 ], "declarations": [ { "constant": false, "id": 4568, "mutability": "mutable", "name": "oldX", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4583, "src": "982:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4567, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "982:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 4570, "initialValue": { "argumentTypes": null, "id": 4569, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4508, "src": "997:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "982:16:17" }, { "expression": { "argumentTypes": null, "id": 4573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4571, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4508, "src": "1004:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4572, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4528, "src": "1008:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1004:5:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4574, "nodeType": "ExpressionStatement", "src": "1004:5:17" }, { "expression": { "argumentTypes": null, "id": 4577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4575, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4528, "src": "1015:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 4576, "name": "oldX", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4568, "src": "1019:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1015:8:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 4578, "nodeType": "ExpressionStatement", "src": "1015:8:17" }, { "expression": { "argumentTypes": null, "id": 4581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4579, "name": "migratedV3", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4559, "src": "1029:10:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 4580, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1042:4:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "1029:17:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 4582, "nodeType": "ExpressionStatement", "src": "1029:17:17" } ] }, "documentation": null, "functionSelector": "8fd3ab80", "id": 4584, "implemented": true, "kind": "function", "modifiers": [], "name": "migrate", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 4560, "nodeType": "ParameterList", "parameters": [], "src": "932:2:17" }, "returnParameters": { "id": 4561, "nodeType": "ParameterList", "parameters": [], "src": "950:0:17" }, "scope": 4585, "src": "916:135:17", "stateMutability": "payable", "virtual": false, "visibility": "public" } ], "scope": 4586, "src": "846:207:17" } ], "src": "0:1054:17" }, "bytecode": "0x60806040523480156100115760006000fd5b50610017565b610234806100266000396000f3fe60806040526004361061002d5760003560e01c80630c55699c14610033578063fe4b84df1461005f5761002d565b60006000fd5b3480156100405760006000fd5b5061004961008e565b6040518082815260200191505060405180910390f35b61008c600480360360208110156100765760006000fd5b8101908080359060200190929190505050610097565b005b60336000505481565b600060019054906101000a900460ff16806100bc57506100bb6101b163ffffffff16565b5b806100d45750600060009054906101000a900460ff16155b151561012b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806101d1602e913960400191505060405180910390fd5b6000600060019054906101000a900460ff16159050801561017d576001600060016101000a81548160ff0219169083151502179055506001600060006101000a81548160ff0219169083151502179055505b8160336000508190909055505b80156101ac576000600060016101000a81548160ff0219169083151502179055505b505b50565b600060003090506000813b905060008114925050506101cd5650505b9056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a264697066735822122041bba1a74b14446d5f313a52345f4dc83bae0bf1398e30aa843895e171e4d76864736f6c634300060a0033", "deployedBytecode": "0x60806040526004361061002d5760003560e01c80630c55699c14610033578063fe4b84df1461005f5761002d565b60006000fd5b3480156100405760006000fd5b5061004961008e565b6040518082815260200191505060405180910390f35b61008c600480360360208110156100765760006000fd5b8101908080359060200190929190505050610097565b005b60336000505481565b600060019054906101000a900460ff16806100bc57506100bb6101b163ffffffff16565b5b806100d45750600060009054906101000a900460ff16155b151561012b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806101d1602e913960400191505060405180910390fd5b6000600060019054906101000a900460ff16159050801561017d576001600060016101000a81548160ff0219169083151502179055506001600060006101000a81548160ff0219169083151502179055505b8160336000508190909055505b80156101ac576000600060016101000a81548160ff0219169083151502179055505b505b50565b600060003090506000813b905060008114925050506101cd5650505b9056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a264697066735822122041bba1a74b14446d5f313a52345f4dc83bae0bf1398e30aa843895e171e4d76864736f6c634300060a0033", "compiler": { "name": "solc", "version": "0.6.10+commit.00c0fcaf.Emscripten.clang", "optimizer": {}, "evmVersion": "constantinople" } }