@daostack/upgrades
Version:
Proxy upgadable contracts based on openzeppelin-sdk
1,406 lines (1,405 loc) • 63.4 kB
JSON
{
"fileName": "DummyImplementation.sol",
"contractName": "DummyImplementation",
"source": "pragma solidity ^0.6.0;\n// SPDX-License-Identifier: MIT\n\nabstract contract Impl {\n function version() public pure virtual returns (string memory);\n}\n\ncontract DummyImplementation {\n uint256 public value;\n string public text;\n uint256[] public values;\n\n function initializeNonPayable() public {\n value = 10;\n }\n\n function initializePayable() payable public {\n value = 100;\n }\n\n function initializeNonPayable(uint256 _value) public {\n value = _value;\n }\n\n function initializePayable(uint256 _value) payable public {\n value = _value;\n }\n\n function initialize(uint256 _value, string memory _text, uint256[] memory _values) public {\n value = _value;\n text = _text;\n values = _values;\n }\n\n function get() public pure returns (bool) {\n return true;\n }\n\n function version() public pure virtual returns (string memory) {\n return \"V1\";\n }\n\n function reverts() public pure {\n require(false);\n }\n}\n\ncontract DummyImplementationV2 is DummyImplementation {\n function migrate(uint256 newVal) payable public {\n value = newVal;\n }\n\n function version() public override(DummyImplementation) pure returns (string memory) {\n return \"V2\";\n }\n}\n",
"sourcePath": "contracts/mocks/DummyImplementation.sol",
"sourceMap": "151:784:9:-:0;;;;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "151:784:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;474:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;208:18;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;258:60;;;;;;;;;;;;;:::i;:::-;;877:56;;;;;;;;;;;;;:::i;:::-;;184:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;788:85;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;392:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;230:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;720:64;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;322:66;;;:::i;:::-;;561:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;474:83;546:6;538:5;;:14;;;;;;;474:83;;:::o;208:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;258:60::-;311:2;303:5;;:10;;;;;;;258:60;:::o;877:56::-;922:5;914:14;;;;;;;;877:56;:::o;184:20::-;;;;;;:::o;788:85::-;836:13;857:11;;;;;;;;;;;;;;;;;;;;;;;788:85;;:::o;392:78::-;459:6;451:5;;:14;;;;;;;392:78;;:::o;230:23::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;720:64::-;756:4;775;768:11;;;;720:64;;:::o;322:66::-;380:3;372:5;;:11;;;;;;;322:66;:::o;561:155::-;665:6;657:5;;:14;;;;;;;684:5;677:4;;:12;;;;;;;;;;;;;:::i;:::-;;704:7;695:6;;:16;;;;;;;;;;;;;:::i;:::-;;561:155;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
"abi": [
{
"inputs": [],
"name": "get",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
},
{
"internalType": "string",
"name": "_text",
"type": "string"
},
{
"internalType": "uint256[]",
"name": "_values",
"type": "uint256[]"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "initializeNonPayable",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "initializeNonPayable",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "initializePayable",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "initializePayable",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "reverts",
"outputs": [],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "text",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "value",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "values",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "version",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"ast": {
"absolutePath": "contracts/mocks/DummyImplementation.sol",
"exportedSymbols": {
"DummyImplementation": [
1629
],
"DummyImplementationV2": [
1652
],
"Impl": [
1538
]
},
"id": 1653,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1532,
"literals": [
"solidity",
"^",
"0.6",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:9"
},
{
"abstract": true,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 1538,
"linearizedBaseContracts": [
1538
],
"name": "Impl",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"functionSelector": "54fd4d50",
"id": 1537,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "version",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1533,
"nodeType": "ParameterList",
"parameters": [],
"src": "100:2:9"
},
"returnParameters": {
"id": 1536,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1535,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1537,
"src": "132:13:9",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1534,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "132:6:9",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "131:15:9"
},
"scope": 1538,
"src": "84:63:9",
"stateMutability": "pure",
"virtual": true,
"visibility": "public"
}
],
"scope": 1653,
"src": "57:92:9"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 1629,
"linearizedBaseContracts": [
1629
],
"name": "DummyImplementation",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "3fa4f245",
"id": 1540,
"mutability": "mutable",
"name": "value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1629,
"src": "184:20:9",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1539,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "184:7:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"functionSelector": "1f1bd692",
"id": 1542,
"mutability": "mutable",
"name": "text",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1629,
"src": "208:18:9",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 1541,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "208:6:9",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"functionSelector": "5e383d21",
"id": 1545,
"mutability": "mutable",
"name": "values",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1629,
"src": "230:23:9",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 1543,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "230:7:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1544,
"length": null,
"nodeType": "ArrayTypeName",
"src": "230:9:9",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 1552,
"nodeType": "Block",
"src": "297:21:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1550,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1548,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1540,
"src": "303:5:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3130",
"id": 1549,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "311:2:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10_by_1",
"typeString": "int_const 10"
},
"value": "10"
},
"src": "303:10:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1551,
"nodeType": "ExpressionStatement",
"src": "303:10:9"
}
]
},
"documentation": null,
"functionSelector": "227367d5",
"id": 1553,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "initializeNonPayable",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1546,
"nodeType": "ParameterList",
"parameters": [],
"src": "287:2:9"
},
"returnParameters": {
"id": 1547,
"nodeType": "ParameterList",
"parameters": [],
"src": "297:0:9"
},
"scope": 1629,
"src": "258:60:9",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 1560,
"nodeType": "Block",
"src": "366:22:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1558,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1556,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1540,
"src": "372:5:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "313030",
"id": 1557,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "380:3:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100_by_1",
"typeString": "int_const 100"
},
"value": "100"
},
"src": "372:11:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1559,
"nodeType": "ExpressionStatement",
"src": "372:11:9"
}
]
},
"documentation": null,
"functionSelector": "9fba1f9a",
"id": 1561,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "initializePayable",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1554,
"nodeType": "ParameterList",
"parameters": [],
"src": "348:2:9"
},
"returnParameters": {
"id": 1555,
"nodeType": "ParameterList",
"parameters": [],
"src": "366:0:9"
},
"scope": 1629,
"src": "322:66:9",
"stateMutability": "payable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 1570,
"nodeType": "Block",
"src": "445:25:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1568,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1566,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1540,
"src": "451:5:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1567,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1563,
"src": "459:6:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "451:14:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1569,
"nodeType": "ExpressionStatement",
"src": "451:14:9"
}
]
},
"documentation": null,
"functionSelector": "5ba8d2ad",
"id": 1571,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "initializeNonPayable",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1564,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1563,
"mutability": "mutable",
"name": "_value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1571,
"src": "422:14:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1562,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "422:7:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "421:16:9"
},
"returnParameters": {
"id": 1565,
"nodeType": "ParameterList",
"parameters": [],
"src": "445:0:9"
},
"scope": 1629,
"src": "392:78:9",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 1580,
"nodeType": "Block",
"src": "532:25:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1578,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1576,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1540,
"src": "538:5:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1577,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1573,
"src": "546:6:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "538:14:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1579,
"nodeType": "ExpressionStatement",
"src": "538:14:9"
}
]
},
"documentation": null,
"functionSelector": "16eaa247",
"id": 1581,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "initializePayable",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1574,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1573,
"mutability": "mutable",
"name": "_value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1581,
"src": "501:14:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1572,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "501:7:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "500:16:9"
},
"returnParameters": {
"id": 1575,
"nodeType": "ParameterList",
"parameters": [],
"src": "532:0:9"
},
"scope": 1629,
"src": "474:83:9",
"stateMutability": "payable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 1603,
"nodeType": "Block",
"src": "651:65:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1593,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1591,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1540,
"src": "657:5:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1592,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1583,
"src": "665:6:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "657:14:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1594,
"nodeType": "ExpressionStatement",
"src": "657:14:9"
},
{
"expression": {
"argumentTypes": null,
"id": 1597,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1595,
"name": "text",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1542,
"src": "677:4:9",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1596,
"name": "_text",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1585,
"src": "684:5:9",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "677:12:9",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 1598,
"nodeType": "ExpressionStatement",
"src": "677:12:9"
},
{
"expression": {
"argumentTypes": null,
"id": 1601,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1599,
"name": "values",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1545,
"src": "695:6:9",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1600,
"name": "_values",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1588,
"src": "704:7:9",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[] memory"
}
},
"src": "695:16:9",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1602,
"nodeType": "ExpressionStatement",
"src": "695:16:9"
}
]
},
"documentation": null,
"functionSelector": "d31f8b6b",
"id": 1604,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "initialize",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1589,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1583,
"mutability": "mutable",
"name": "_value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1604,
"src": "581:14:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1582,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "581:7:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1585,
"mutability": "mutable",
"name": "_text",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1604,
"src": "597:19:9",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1584,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "597:6:9",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1588,
"mutability": "mutable",
"name": "_values",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1604,
"src": "618:24:9",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 1586,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "618:7:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1587,
"length": null,
"nodeType": "ArrayTypeName",
"src": "618:9:9",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "580:63:9"
},
"returnParameters": {
"id": 1590,
"nodeType": "ParameterList",
"parameters": [],
"src": "651:0:9"
},
"scope": 1629,
"src": "561:155:9",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 1611,
"nodeType": "Block",
"src": "762:22:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 1609,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "775:4:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 1608,
"id": 1610,
"nodeType": "Return",
"src": "768:11:9"
}
]
},
"documentation": null,
"functionSelector": "6d4ce63c",
"id": 1612,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "get",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1605,
"nodeType": "ParameterList",
"parameters": [],
"src": "732:2:9"
},
"returnParameters": {
"id": 1608,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1607,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1612,
"src": "756:4:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1606,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "756:4:9",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "755:6:9"
},
"scope": 1629,
"src": "720:64:9",
"stateMutability": "pure",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 1619,
"nodeType": "Block",
"src": "851:22:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "5631",
"id": 1617,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "864:4:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4c23426613a5dc69e08fbd2787e6210aa679d4522e95a89d4dd88c4fd13a2283",
"typeString": "literal_string \"V1\""
},
"value": "V1"
},
"functionReturnParameters": 1616,
"id": 1618,
"nodeType": "Return",
"src": "857:11:9"
}
]
},
"documentation": null,
"functionSelector": "54fd4d50",
"id": 1620,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "version",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1613,
"nodeType": "ParameterList",
"parameters": [],
"src": "804:2:9"
},
"returnParameters": {
"id": 1616,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1615,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1620,
"src": "836:13:9",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1614,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "836:6:9",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "835:15:9"
},
"scope": 1629,
"src": "788:85:9",
"stateMutability": "pure",
"virtual": true,
"visibility": "public"
},
{
"body": {
"id": 1627,
"nodeType": "Block",
"src": "908:25:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 1624,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "922:5:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 1623,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "914:7:9",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 1625,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "914:14:9",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1626,
"nodeType": "ExpressionStatement",
"src": "914:14:9"
}
]
},
"documentation": null,
"functionSelector": "3bccbbc9",
"id": 1628,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "reverts",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1621,
"nodeType": "ParameterList",
"parameters": [],
"src": "893:2:9"
},
"returnParameters": {
"id": 1622,
"nodeType": "ParameterList",
"parameters": [],
"src": "908:0:9"
},
"scope": 1629,
"src": "877:56:9",
"stateMutability": "pure",
"virtual": false,
"visibility": "public"
}
],
"scope": 1653,
"src": "151:784:9"
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1630,
"name": "DummyImplementation",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1629,
"src": "971:19:9",
"typeDescriptions": {
"typeIdentifier": "t_contract$_DummyImplementation_$1629",
"typeString": "contract DummyImplementation"
}
},
"id": 1631,
"nodeType": "InheritanceSpecifier",
"src": "971:19:9"
}
],
"contractDependencies": [
1629
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 1652,
"linearizedBaseContracts": [
1652,
1629
],
"name": "DummyImplementationV2",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 1640,
"nodeType": "Block",
"src": "1043:25:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1638,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1636,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1540,
"src": "1049:5:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1637,
"name": "newVal",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1633,
"src": "1057:6:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1049:14:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1639,
"nodeType": "ExpressionStatement",
"src": "1049:14:9"
}
]
},
"documentation": null,
"functionSelector": "454b0608",
"id": 1641,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "migrate",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1634,
"nodeType": "ParameterList",