@daostack/upgrades
Version:
Proxy upgadable contracts based on openzeppelin-sdk
988 lines (987 loc) • 47.9 kB
JSON
{
"fileName": "WithStructInConstructor.sol",
"contractName": "WithStructInConstructor",
"source": "pragma solidity ^0.6.10;\npragma experimental ABIEncoderV2;\n// SPDX-License-Identifier: MIT\n\ncontract WithStructInConstructor {\n\n struct Data {\n string foo;\n string bar;\n uint256 buz;\n }\n\n Data public localData;\n address public sender;\n\n constructor(Data memory _data) public {\n localData.foo = _data.foo;\n localData.bar = _data.bar;\n localData.buz = _data.buz;\n sender = msg.sender;\n }\n\n function foo() public view returns (string memory) {\n return localData.foo;\n }\n\n function bar() public view returns (string memory) {\n return localData.bar;\n }\n\n function buz() public view returns (uint256) {\n return localData.buz;\n }\n}\n",
"sourcePath": "contracts/mocks/WithStructInConstructor.sol",
"sourceMap": "92:574:26:-:0;;;251:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;311:5;:9;;;295;;;:13;;;:25;;;;;;;;;;;;;:::i;:::-;;342:5;:9;;;326;;;:13;;;:25;;;;;;;;;;;;;:::i;:::-;;373:5;:9;;;357;;;:13;;;:25;;;;;;;397:10;388:6;;:19;;;;;;;;;;;;;;;;;;251:161;;92:574;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6:444:-1:-;;;;119:3;112:4;104:6;100:17;96:27;89:35;86:2;;;137:1;134;127:12;86:2;167:6;161:13;189:65;204:49;246:6;204:49;;;189:65;;;180:74;;274:6;267:5;260:21;310:4;302:6;298:17;343:4;336:5;332:16;378:3;369:6;364:3;360:16;357:25;354:2;;;395:1;392;385:12;354:2;405:39;437:6;432:3;427;405:39;;;79:371;;;;;;;;;500:827;;622:4;610:9;605:3;601:19;597:30;594:2;;;640:1;637;630:12;594:2;658:20;673:4;658:20;;;649:29;;748:1;737:9;733:17;727:24;771:18;763:6;760:30;757:2;;;803:1;800;793:12;757:2;838:70;904:3;895:6;884:9;880:22;838:70;;;831:4;824:5;820:16;813:96;688:232;990:2;979:9;975:18;969:25;1014:18;1006:6;1003:30;1000:2;;;1046:1;1043;1036:12;1000:2;1081:70;1147:3;1138:6;1127:9;1123:22;1081:70;;;1074:4;1067:5;1063:16;1056:96;930:233;1212:2;1245:60;1301:3;1292:6;1281:9;1277:22;1245:60;;;1238:4;1231:5;1227:16;1220:86;1173:144;588:739;;;;;;1334:134;;1418:6;1412:13;1403:22;;1430:33;1457:5;1430:33;;;1397:71;;;;;;1475:386;;1612:2;1600:9;1591:7;1587:23;1583:32;1580:2;;;1628:1;1625;1618:12;1580:2;1684:1;1673:9;1669:17;1663:24;1707:18;1699:6;1696:30;1693:2;;;1739:1;1736;1729:12;1693:2;1759:86;1837:7;1828:6;1817:9;1813:22;1759:86;;;1749:96;;1642:209;1574:287;;;;;;1868:256;;1930:2;1924:9;1914:19;;1968:4;1960:6;1956:17;2067:6;2055:10;2052:22;2031:18;2019:10;2016:34;2013:62;2010:2;;;2088:1;2085;2078:12;2010:2;2108:10;2104:2;2097:22;1908:216;;;;;;2131:322;;2275:18;2267:6;2264:30;2261:2;;;2307:1;2304;2297:12;2261:2;2374:4;2370:9;2363:4;2355:6;2351:17;2347:33;2339:41;;2438:4;2432;2428:15;2420:23;;2198:255;;;;;2460:72;;2522:5;2511:16;;2505:27;;;;;2540:268;2605:1;2612:101;2626:6;2623:1;2620:13;2612:101;;;2702:1;2697:3;2693:11;2687:18;2683:1;2678:3;2674:11;2667:39;2612:101;2648:2;2645:1;2641:10;2636:15;;2612:101;;;2728:6;2725:1;2722:13;2719:2;;;2793:1;2784:6;2779:3;2775:16;2768:27;2719:2;2589:219;;;;;;2816:117;2885:24;2903:5;2885:24;;;2878:5;2875:35;2868:43;2865:2;;;2924:1;2921;2914:12;2865:2;2859:74;;;;92:574:26;;;;;;;",
"deployedSourceMap": "92:574:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;200:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;225;;;:::i;:::-;;;;;;;;;;;;;;;;588:76;;;:::i;:::-;;;;;;;;;;;;;;;;416:82;;;:::i;:::-;;;;;;;;;;;;;;;;502;;;:::i;:::-;;;;;;;;;;;;;;;;200:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;225:::-;;;;;;;;;;;;;:::o;588:76::-;624:7;646:9;;;:13;;;;;639:20;;;;588:76;;:::o;416:82::-;452:13;480:9;;;:13;;;;473:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;416:82;;:::o;502:::-;538:13;566:9;;;:13;;;;559:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;502:82;;:::o;5:113:-1:-;;;88:24;106:5;88:24;;;83:3;76:37;70:48;;;;125:347;;237:39;270:5;237:39;;;288:71;352:6;347:3;288:71;;;281:78;;364:52;409:6;404:3;397:4;390:5;386:16;364:52;;;437:29;459:6;437:29;;;432:3;428:39;421:46;;217:255;;;;;;;479:113;562:24;580:5;562:24;;;557:3;550:37;544:48;;;;599:222;;726:2;715:9;711:18;703:26;;740:71;808:1;797:9;793:17;784:6;740:71;;;697:124;;;;;;828:310;;975:2;964:9;960:18;952:26;;1025:9;1019:4;1015:20;1011:1;1000:9;996:17;989:47;1050:78;1123:4;1114:6;1050:78;;;1042:86;;946:192;;;;;;1145:620;;1368:2;1357:9;1353:18;1345:26;;1418:9;1412:4;1408:20;1404:1;1393:9;1389:17;1382:47;1443:78;1516:4;1507:6;1443:78;;;1435:86;;1569:9;1563:4;1559:20;1554:2;1543:9;1539:18;1532:48;1594:78;1667:4;1658:6;1594:78;;;1586:86;;1683:72;1751:2;1740:9;1736:18;1727:6;1683:72;;;1339:426;;;;;;;;1772:222;;1899:2;1888:9;1884:18;1876:26;;1913:71;1981:1;1970:9;1966:17;1957:6;1913:71;;;1870:124;;;;;;2001:122;;2095:5;2089:12;2079:22;;2060:63;;;;;2131:163;;2246:6;2241:3;2234:19;2283:4;2278:3;2274:14;2259:29;;2227:67;;;;;;2302:91;;2364:24;2382:5;2364:24;;;2353:35;;2347:46;;;;;2400:121;;2473:42;2466:5;2462:54;2451:65;;2445:76;;;;;2528:72;;2590:5;2579:16;;2573:27;;;;;2608:268;2673:1;2680:101;2694:6;2691:1;2688:13;2680:101;;;2770:1;2765:3;2761:11;2755:18;2751:1;2746:3;2742:11;2735:39;2680:101;2716:2;2713:1;2709:10;2704:15;;2680:101;;;2796:6;2793:1;2790:13;2787:2;;;2861:1;2852:6;2847:3;2843:16;2836:27;2787:2;2657:219;;;;;;2884:97;;2972:2;2968:7;2963:2;2956:5;2952:14;2948:28;2938:38;;2932:49;;;;;",
"abi": [
{
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "foo",
"type": "string"
},
{
"internalType": "string",
"name": "bar",
"type": "string"
},
{
"internalType": "uint256",
"name": "buz",
"type": "uint256"
}
],
"internalType": "struct WithStructInConstructor.Data",
"name": "_data",
"type": "tuple"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "bar",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "buz",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "foo",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "localData",
"outputs": [
{
"internalType": "string",
"name": "foo",
"type": "string"
},
{
"internalType": "string",
"name": "bar",
"type": "string"
},
{
"internalType": "uint256",
"name": "buz",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "sender",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"ast": {
"absolutePath": "contracts/mocks/WithStructInConstructor.sol",
"exportedSymbols": {
"WithStructInConstructor": [
5221
]
},
"id": 5222,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 5149,
"literals": [
"solidity",
"^",
"0.6",
".10"
],
"nodeType": "PragmaDirective",
"src": "0:24:26"
},
{
"id": 5150,
"literals": [
"experimental",
"ABIEncoderV2"
],
"nodeType": "PragmaDirective",
"src": "25:33:26"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 5221,
"linearizedBaseContracts": [
5221
],
"name": "WithStructInConstructor",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "WithStructInConstructor.Data",
"id": 5157,
"members": [
{
"constant": false,
"id": 5152,
"mutability": "mutable",
"name": "foo",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5157,
"src": "148:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 5151,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "148:6:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5154,
"mutability": "mutable",
"name": "bar",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5157,
"src": "164:10:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 5153,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "164:6:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 5156,
"mutability": "mutable",
"name": "buz",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5157,
"src": "180:11:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5155,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "180:7:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Data",
"nodeType": "StructDefinition",
"scope": 5221,
"src": "130:66:26",
"visibility": "public"
},
{
"constant": false,
"functionSelector": "4efe8268",
"id": 5159,
"mutability": "mutable",
"name": "localData",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5221,
"src": "200:21:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_storage",
"typeString": "struct WithStructInConstructor.Data"
},
"typeName": {
"contractScope": null,
"id": 5158,
"name": "Data",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5157,
"src": "200:4:26",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_storage_ptr",
"typeString": "struct WithStructInConstructor.Data"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"functionSelector": "67e404ce",
"id": 5161,
"mutability": "mutable",
"name": "sender",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5221,
"src": "225:21:26",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 5160,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "225:7:26",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 5192,
"nodeType": "Block",
"src": "289:123:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 5171,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5166,
"name": "localData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5159,
"src": "295:9:26",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_storage",
"typeString": "struct WithStructInConstructor.Data storage ref"
}
},
"id": 5168,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "foo",
"nodeType": "MemberAccess",
"referencedDeclaration": 5152,
"src": "295:13:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5169,
"name": "_data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5163,
"src": "311:5:26",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_memory_ptr",
"typeString": "struct WithStructInConstructor.Data memory"
}
},
"id": 5170,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "foo",
"nodeType": "MemberAccess",
"referencedDeclaration": 5152,
"src": "311:9:26",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "295:25:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 5172,
"nodeType": "ExpressionStatement",
"src": "295:25:26"
},
{
"expression": {
"argumentTypes": null,
"id": 5178,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5173,
"name": "localData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5159,
"src": "326:9:26",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_storage",
"typeString": "struct WithStructInConstructor.Data storage ref"
}
},
"id": 5175,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "bar",
"nodeType": "MemberAccess",
"referencedDeclaration": 5154,
"src": "326:13:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5176,
"name": "_data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5163,
"src": "342:5:26",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_memory_ptr",
"typeString": "struct WithStructInConstructor.Data memory"
}
},
"id": 5177,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "bar",
"nodeType": "MemberAccess",
"referencedDeclaration": 5154,
"src": "342:9:26",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "326:25:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 5179,
"nodeType": "ExpressionStatement",
"src": "326:25:26"
},
{
"expression": {
"argumentTypes": null,
"id": 5185,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5180,
"name": "localData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5159,
"src": "357:9:26",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_storage",
"typeString": "struct WithStructInConstructor.Data storage ref"
}
},
"id": 5182,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "buz",
"nodeType": "MemberAccess",
"referencedDeclaration": 5156,
"src": "357:13:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5183,
"name": "_data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5163,
"src": "373:5:26",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_memory_ptr",
"typeString": "struct WithStructInConstructor.Data memory"
}
},
"id": 5184,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "buz",
"nodeType": "MemberAccess",
"referencedDeclaration": 5156,
"src": "373:9:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "357:25:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5186,
"nodeType": "ExpressionStatement",
"src": "357:25:26"
},
{
"expression": {
"argumentTypes": null,
"id": 5190,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 5187,
"name": "sender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5161,
"src": "388:6:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5188,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "397:3:26",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 5189,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "397:10:26",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "388:19:26",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 5191,
"nodeType": "ExpressionStatement",
"src": "388:19:26"
}
]
},
"documentation": null,
"id": 5193,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 5164,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5163,
"mutability": "mutable",
"name": "_data",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5193,
"src": "263:17:26",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_memory_ptr",
"typeString": "struct WithStructInConstructor.Data"
},
"typeName": {
"contractScope": null,
"id": 5162,
"name": "Data",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5157,
"src": "263:4:26",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_storage_ptr",
"typeString": "struct WithStructInConstructor.Data"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "262:19:26"
},
"returnParameters": {
"id": 5165,
"nodeType": "ParameterList",
"parameters": [],
"src": "289:0:26"
},
"scope": 5221,
"src": "251:161:26",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 5201,
"nodeType": "Block",
"src": "467:31:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5198,
"name": "localData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5159,
"src": "480:9:26",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_storage",
"typeString": "struct WithStructInConstructor.Data storage ref"
}
},
"id": 5199,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "foo",
"nodeType": "MemberAccess",
"referencedDeclaration": 5152,
"src": "480:13:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 5197,
"id": 5200,
"nodeType": "Return",
"src": "473:20:26"
}
]
},
"documentation": null,
"functionSelector": "c2985578",
"id": 5202,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "foo",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 5194,
"nodeType": "ParameterList",
"parameters": [],
"src": "428:2:26"
},
"returnParameters": {
"id": 5197,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5196,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5202,
"src": "452:13:26",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 5195,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "452:6:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "451:15:26"
},
"scope": 5221,
"src": "416:82:26",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 5210,
"nodeType": "Block",
"src": "553:31:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5207,
"name": "localData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5159,
"src": "566:9:26",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_storage",
"typeString": "struct WithStructInConstructor.Data storage ref"
}
},
"id": 5208,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "bar",
"nodeType": "MemberAccess",
"referencedDeclaration": 5154,
"src": "566:13:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 5206,
"id": 5209,
"nodeType": "Return",
"src": "559:20:26"
}
]
},
"documentation": null,
"functionSelector": "febb0f7e",
"id": 5211,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "bar",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 5203,
"nodeType": "ParameterList",
"parameters": [],
"src": "514:2:26"
},
"returnParameters": {
"id": 5206,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5205,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5211,
"src": "538:13:26",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 5204,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "538:6:26",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "537:15:26"
},
"scope": 5221,
"src": "502:82:26",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 5219,
"nodeType": "Block",
"src": "633:31:26",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 5216,
"name": "localData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5159,
"src": "646:9:26",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Data_$5157_storage",
"typeString": "struct WithStructInConstructor.Data storage ref"
}
},
"id": 5217,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "buz",
"nodeType": "MemberAccess",
"referencedDeclaration": 5156,
"src": "646:13:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 5215,
"id": 5218,
"nodeType": "Return",
"src": "639:20:26"
}
]
},
"documentation": null,
"functionSelector": "bbe8f084",
"id": 5220,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "buz",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 5212,
"nodeType": "ParameterList",
"parameters": [],
"src": "600:2:26"
},
"returnParameters": {
"id": 5215,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5214,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5220,
"src": "624:7:26",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5213,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "624:7:26",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "623:9:26"
},
"scope": 5221,
"src": "588:76:26",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
}
],
"scope": 5222,
"src": "92:574:26"
}
],
"src": "0:667:26"
},
"bytecode": "0x6080604052348015620000125760006000fd5b506040516200099b3803806200099b8339818101604052810190620000389190620002bc565b5b8060000151600060005060000160005090805190602001906200005e929190620000e4565b5080602001516000600050600101600050908051906020019062000084929190620000e4565b508060400151600060005060020160005081909090555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50620003c5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012757805160ff19168380011785556200015d565b828001600101855582156200015d579182015b828111156200015c57825182600050909055916020019190600101906200013a565b5b5090506200016c919062000170565b5090565b6200019c91906200017c565b808211156200019857600081815060009055506001016200017c565b5090565b9056620003c4565b600082601f8301121515620001b95760006000fd5b8151620001d0620001ca8262000334565b62000304565b91508082526020830160208301858383011115620001ee5760006000fd5b620001fb8382846200036e565b5050505b92915050565b600060608284031215620002195760006000fd5b62000225606062000304565b9050600082015167ffffffffffffffff811115620002435760006000fd5b6200025184828501620001a4565b600083015250602082015167ffffffffffffffff811115620002735760006000fd5b6200028184828501620001a4565b60208301525060406200029784828501620002a4565b6040830152505b92915050565b600081519050620002b581620003a6565b5b92915050565b600060208284031215620002d05760006000fd5b600082015167ffffffffffffffff811115620002ec5760006000fd5b620002fa8482850162000205565b9150505b92915050565b6000604051905081810181811067ffffffffffffffff82111715620003295760006000fd5b80604052505b919050565b600067ffffffffffffffff8211156200034d5760006000fd5b601f19601f83011690506020810190505b919050565b60008190505b919050565b60005b838110156200038f5780820151818401525b60208101905062000371565b838111156200039f576000848401525b505b505050565b620003b18162000363565b81141515620003c05760006000fd5b5b50565b5b6105c680620003d56000396000f3fe60806040523480156100115760006000fd5b506004361061005c5760003560e01c80634efe82681461006257806367e404ce14610082578063bbe8f084146100a0578063c2985578146100be578063febb0f7e146100dc5761005c565b60006000fd5b61006a6100fa565b60405161007993929190610489565b60405180910390f35b61008a61024e565b604051610097919061044a565b60405180910390f35b6100a8610274565b6040516100b591906104cf565b60405180910390f35b6100c661028c565b6040516100d39190610466565b60405180910390f35b6100e461033c565b6040516100f19190610466565b60405180910390f35b6000600050806000016000508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561019a5780601f1061016f5761010080835404028352916020019161019a565b820191906000526020600020905b81548152906001019060200180831161017d57829003601f168201915b505050505090806001016000508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561023b5780601f106102105761010080835404028352916020019161023b565b820191906000526020600020905b81548152906001019060200180831161021e57829003601f168201915b5050505050908060020160005054905083565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006000600050600201600050549050610289565b90565b606060006000506000016000508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561032d5780601f106103025761010080835404028352916020019161032d565b820191906000526020600020905b81548152906001019060200180831161031057829003601f168201915b50505050509050610339565b90565b606060006000506001016000508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103dd5780601f106103b2576101008083540402835291602001916103dd565b820191906000526020600020905b8154815290600101906020018083116103c057829003601f168201915b505050505090506103e9565b905661058f565b6103f981610509565b82525b5050565b600061040b826104eb565b61041581856104f7565b9350610425818560208601610548565b61042e8161057d565b84019150505b92915050565b6104438161053d565b82525b5050565b600060208201905061045f60008301846103f0565b5b92915050565b600060208201905081810360008301526104808184610400565b90505b92915050565b600060608201905081810360008301526104a38186610400565b905081810360208301526104b78185610400565b90506104c6604083018461043a565b5b949350505050565b60006020820190506104e4600083018461043a565b5b92915050565b6000815190505b919050565b60008282526020820190505b92915050565b60006105148261051c565b90505b919050565b600073ffffffffffffffffffffffffffffffffffffffff821690505b919050565b60008190505b919050565b60005b838110156105675780820151818401525b60208101905061054b565b83811115610576576000848401525b505b505050565b6000601f19601f83011690505b919050565bfea2646970667358221220520ac470a1ed0af6eb86592087078bc83e0ce40f30b68765d50296b264c60e6f64736f6c634300060a0033",
"deployedBytecode": "0x60806040523480156100115760006000fd5b506004361061005c5760003560e01c80634efe82681461006257806367e404ce14610082578063bbe8f084146100a0578063c2985578146100be578063febb0f7e146100dc5761005c565b60006000fd5b61006a6100fa565b60405161007993929190610489565b60405180910390f35b61008a61024e565b604051610097919061044a565b60405180910390f35b6100a8610274565b6040516100b591906104cf565b60405180910390f35b6100c661028c565b6040516100d39190610466565b60405180910390f35b6100e461033c565b6040516100f19190610466565b60405180910390f35b6000600050806000016000508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561019a5780601f1061016f5761010080835404028352916020019161019a565b820191906000526020600020905b81548152906001019060200180831161017d57829003601f168201915b505050505090806001016000508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561023b5780601f106102105761010080835404028352916020019161023b565b820191906000526020600020905b81548152906001019060200180831161021e57829003601f168201915b5050505050908060020160005054905083565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006000600050600201600050549050610289565b90565b606060006000506000016000508054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561032d5780601f106103025761010080835404028352916020019161032d565b820191906000526020600020905b81548152906001019060200180831161031057829003601f168201915b50505050509050610339565b90565b606060006000506001016000508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103dd5780601f106103b2576101008083540402835291602001916103dd565b820191906000526020600020905b8154815290600101906020018083116103c057829003601f168201915b505050505090506103e9565b905661058f565b6103f981610509565b82525b5050565b600061040b826104eb565b61041581856104f7565b9350610425818560208601610548565b61042e8161057d565b84019150505b92915050565b6104438161053d565b82525b5050565b600060208201905061045f60008301846103f0565b5b92915050565b600060208201905081810360008301526104808184610400565b90505b92915050565b600060608201905081810360008301526104a38186610400565b905081810360208301526104b78185610400565b90506104c6604083018461043a565b5b949350505050565b60006020820190506104e4600083018461043a565b5b92915050565b6000815190505b919050565b60008282526020820190505b92915050565b60006105148261051c565b90505b919050565b600073ffffffffffffffffffffffffffffffffffffffff821690505b919050565b60008190505b919050565b60005b838110156105675780820151818401525b60208101905061054b565b83811115610576576000848401525b505b505050565b6000601f19601f83011690505b919050565bfea2646970667358221220520ac470a1ed0af6eb86592087078bc83e0ce40f30b68765d50296b264c60e6f64736f6c634300060a0033",
"compiler": {
"name": "solc",
"version": "0.6.10+commit.00c0fcaf.Emscripten.clang",
"optimizer": {},
"evmVersion": "constantinople"
}
}