@daostack/upgrades
Version:
Proxy upgadable contracts based on openzeppelin-sdk
1,122 lines (1,121 loc) • 44.3 kB
JSON
{
"fileName": "SingleInheritanceInitializableMocks.sol",
"contractName": "MigratableMockV3",
"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": "846:207:17:-:0;;;;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "846:207:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:16;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;567:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;916:135;;;:::i;:::-;;546:16;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;279:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;258:16;;;;;;:::o;567:160::-;651:10;;;;;;;;;;;650:11;642:20;;;;;;;;672:5;668:1;;:9;;;;;;;687:12;683:1;;:16;;;;;;;718:4;705:10;;:17;;;;;;;;;;;;;;;;;;567:160;;;:::o;916:135::-;965:10;;;;;;;;;;;964:11;956:20;;;;;;;;982:12;997:1;;;;982:16;;1008:1;;;;1004;;:5;;;;;;;1019:4;1015:1;;:8;;;;;;;1042:4;1029:10;;:17;;;;;;;;;;;;;;;;;;916:135;;:::o;546: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": [
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "anotherValue",
"type": "uint256"
}
],
"name": "migrate",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "migrate",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "x",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "y",
"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": "0x60806040523480156100115760006000fd5b50610017565b610385806100266000396000f3fe60806040526004361061004e5760003560e01c80630c55699c146100545780633e54bacb146100805780638fd3ab80146100b9578063a56dfe4a146100c3578063fe4b84df146100ef5761004e565b60006000fd5b3480156100615760006000fd5b5061006a61011e565b6040518082815260200191505060405180910390f35b6100b7600480360360408110156100975760006000fd5b810190808035906020019092919080359060200190929190505050610127565b005b6100c161017c565b005b3480156100d05760006000fd5b506100d96101df565b6040518082815260200191505060405180910390f35b61011c600480360360208110156101065760006000fd5b81019080803590602001909291905050506101e8565b005b60336000505481565b603460009054906101000a900460ff161515156101445760006000fd5b8160336000508190909055508060356000508190909055506001603460006101000a81548160ff0219169083151502179055505b5050565b603660009054906101000a900460ff161515156101995760006000fd5b6000603360005054905060356000505460336000508190909055508060356000508190909055506001603660006101000a81548160ff021916908315150217905550505b565b60356000505481565b600060019054906101000a900460ff168061020d575061020c61030263ffffffff16565b5b806102255750600060009054906101000a900460ff16155b151561027c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610322602e913960400191505060405180910390fd5b6000600060019054906101000a900460ff1615905080156102ce576001600060016101000a81548160ff0219169083151502179055506001600060006101000a81548160ff0219169083151502179055505b8160336000508190909055505b80156102fd576000600060016101000a81548160ff0219169083151502179055505b505b50565b600060003090506000813b9050600081149250505061031e5650505b9056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a2646970667358221220dde0811c9d6aa48e0a36a4443bef8788d3e27882120b8edc643fe896fdd6c62a64736f6c634300060a0033",
"deployedBytecode": "0x60806040526004361061004e5760003560e01c80630c55699c146100545780633e54bacb146100805780638fd3ab80146100b9578063a56dfe4a146100c3578063fe4b84df146100ef5761004e565b60006000fd5b3480156100615760006000fd5b5061006a61011e565b6040518082815260200191505060405180910390f35b6100b7600480360360408110156100975760006000fd5b810190808035906020019092919080359060200190929190505050610127565b005b6100c161017c565b005b3480156100d05760006000fd5b506100d96101df565b6040518082815260200191505060405180910390f35b61011c600480360360208110156101065760006000fd5b81019080803590602001909291905050506101e8565b005b60336000505481565b603460009054906101000a900460ff161515156101445760006000fd5b8160336000508190909055508060356000508190909055506001603460006101000a81548160ff0219169083151502179055505b5050565b603660009054906101000a900460ff161515156101995760006000fd5b6000603360005054905060356000505460336000508190909055508060356000508190909055506001603660006101000a81548160ff021916908315150217905550505b565b60356000505481565b600060019054906101000a900460ff168061020d575061020c61030263ffffffff16565b5b806102255750600060009054906101000a900460ff16155b151561027c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180610322602e913960400191505060405180910390fd5b6000600060019054906101000a900460ff1615905080156102ce576001600060016101000a81548160ff0219169083151502179055506001600060006101000a81548160ff0219169083151502179055505b8160336000508190909055505b80156102fd576000600060016101000a81548160ff0219169083151502179055505b505b50565b600060003090506000813b9050600081149250505061031e5650505b9056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a2646970667358221220dde0811c9d6aa48e0a36a4443bef8788d3e27882120b8edc643fe896fdd6c62a64736f6c634300060a0033",
"compiler": {
"name": "solc",
"version": "0.6.10+commit.00c0fcaf.Emscripten.clang",
"optimizer": {},
"evmVersion": "constantinople"
}
}