Skip to content

Instantly share code, notes, and snippets.

@rocky
Created March 7, 2019 08:35
Show Gist options
  • Save rocky/a256a6f82d9a24eefada0001f4b90c90 to your computer and use it in GitHub Desktop.
Save rocky/a256a6f82d9a24eefada0001f4b90c90 to your computer and use it in GitHub Desktop.
solc import json
This file has been truncated, but you can view the full file.
{
"compiler": {
"name": "solc",
"version": "0.4.24+commit.e67f0147.Emscripten.clang"
},
"updatedAt": "2019-03-07T07:11:10.142Z",
"sources": {
"/src/external-vcs/github/aragonOS/contracts/common/Autopetrified.sol": {
"contracts": [
{
"contractName": "Autopetrified",
"bytecode": "0x608060405234801561001057600080fd5b5061002861002d640100000000026401000000009004565b6102ff565b6000610046610160640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515610125576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156100ea5780820151818401526020810190506100cf565b50505050905090810190601f1680156101175780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061015e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101aa640100000000026401000000009004565b565b60006101a57febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166102ed64010000000002610180176401000000009004565b905090565b60006101c3610160640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a454400000000000000008152509015156102a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561026757808201518184015260208101905061024c565b50505050905090810190601f1680156102945780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506102ea817febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166102f86401000000000261018b179091906401000000009004565b50565b600081549050919050565b8082555050565b6101be8061030e6000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac01461005c5780638b3dd7491461008b578063de4796ed146100b6575b600080fd5b34801561006857600080fd5b506100716100e5565b604051808215151515815260200191505060405180910390f35b34801561009757600080fd5b506100a0610110565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610147565b604051808215151515815260200191505060405180910390f35b6000806100f0610110565b90506000811415801561010a575080610107610178565b10155b91505090565b60006101427febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916610180565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610172610110565b14905090565b600043905090565b600081549050919050565b80825550505600a165627a7a72305820954b011d1a8f11caf94f925c9e820372bae74fdc7542cfef8f77225674a389bf0029",
"deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac01461005c5780638b3dd7491461008b578063de4796ed146100b6575b600080fd5b34801561006857600080fd5b506100716100e5565b604051808215151515815260200191505060405180910390f35b34801561009757600080fd5b506100a0610110565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610147565b604051808215151515815260200191505060405180910390f35b6000806100f0610110565b90506000811415801561010a575080610107610178565b10155b91505090565b60006101427febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916610180565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610172610110565b14905090565b600043905090565b600081549050919050565b80825550505600a165627a7a72305820954b011d1a8f11caf94f925c9e820372bae74fdc7542cfef8f77225674a389bf0029",
"sourceMap": "100:262:0:-;;;144:216;8:9:-1;5:2;;;30:1;27;20:12;5:2;144:216:0;344:9;:7;;;:9;;;:::i;:::-;100:262;;590:84:2;651:1:1;623:24;:22;;;:24;;;:::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;615:65:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;637:30:2;277:2;637:13;;;:30;;;:::i;:::-;590:84::o;889:137:1:-;944:7;970:49;353:66;970:29;;:47;;;;;;;;:49;;;:::i;:::-;963:56;;889:137;:::o;1759:141::-;651:1;623:24;:22;;;:24;;;:::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;615:65:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1832:61;1880:12;353:66;1832:29;;:47;;;;;;;;;:61;;;;;:::i;:::-;1759:141;:::o;519:134:5:-;587:12;636:8;630:15;622:23;;620:27;;;:::o;1028:119::-;1134:4;1124:8;1117:22;1115:26;;:::o;100:262:0:-;;;;;;;",
"deployedSourceMap": "100:262:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:208:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1136:208:1;;;;;;;;;;;;;;;;;;;;;;;;;;;889:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;889:137:1;;;;;;;;;;;;;;;;;;;;;;;287:117:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:117:2;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:208:1;1183:4;1199:27;1229:24;:22;:24::i;:::-;1199:54;;1293:1;1270:19;:24;;:67;;;;;1318:19;1298:16;:14;:16::i;:::-;:39;;1270:67;1263:74;;1136:208;;:::o;889:137::-;944:7;970:49;353:66;970:29;;:47;;;;:49::i;:::-;963:56;;889:137;:::o;287:117:2:-;331:4;277:2;354:24;:22;:24::i;:::-;:43;347:50;;287:117;:::o;347:94:3:-;396:7;422:12;415:19;;347:94;:::o;519:134:5:-;587:12;636:8;630:15;622:23;;620:27;;;:::o;1028:119::-;1134:4;1124:8;1117:22;1115:26;;:::o"
}
],
"ast": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Autopetrified.sol",
"exportedSymbols": {
"Autopetrified": [
266
]
},
"id": 267,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 255,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "44:24:0"
},
{
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Petrifiable.sol",
"file": "./Petrifiable.sol",
"id": 256,
"nodeType": "ImportDirective",
"scope": 267,
"sourceUnit": 320,
"src": "70:27:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 257,
"name": "Petrifiable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 319,
"src": "126:11:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Petrifiable_$319",
"typeString": "contract Petrifiable"
}
},
"id": 258,
"nodeType": "InheritanceSpecifier",
"src": "126:11:0"
}
],
"contractDependencies": [
319,
417,
464
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 266,
"linearizedBaseContracts": [
266,
319,
417,
464
],
"name": "Autopetrified",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 264,
"nodeType": "Block",
"src": "165:195:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 261,
"name": "petrify",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 318,
"src": "344:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 262,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "344:9:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 263,
"nodeType": "ExpressionStatement",
"src": "344:9:0"
}
]
},
"documentation": null,
"id": 265,
"implemented": true,
"isConstructor": true,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 259,
"nodeType": "ParameterList",
"parameters": [],
"src": "155:2:0"
},
"payable": false,
"returnParameters": {
"id": 260,
"nodeType": "ParameterList",
"parameters": [],
"src": "165:0:0"
},
"scope": 266,
"src": "144:216:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 267,
"src": "100:262:0"
}
],
"src": "44:319:0"
},
"legacyAST": {
"attributes": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Autopetrified.sol",
"exportedSymbols": {
"Autopetrified": [
266
]
}
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"^",
"0.4",
".24"
]
},
"id": 255,
"name": "PragmaDirective",
"src": "44:24:0"
},
{
"attributes": {
"SourceUnit": 320,
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Petrifiable.sol",
"file": "./Petrifiable.sol",
"scope": 267,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 256,
"name": "ImportDirective",
"src": "70:27:0"
},
{
"attributes": {
"contractDependencies": [
319,
417,
464
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"linearizedBaseContracts": [
266,
319,
417,
464
],
"name": "Autopetrified",
"scope": 267
},
"children": [
{
"attributes": {
"arguments": null
},
"children": [
{
"attributes": {
"contractScope": null,
"name": "Petrifiable",
"referencedDeclaration": 319,
"type": "contract Petrifiable"
},
"id": 257,
"name": "UserDefinedTypeName",
"src": "126:11:0"
}
],
"id": 258,
"name": "InheritanceSpecifier",
"src": "126:11:0"
},
{
"attributes": {
"constant": false,
"documentation": null,
"implemented": true,
"isConstructor": true,
"modifiers": [
null
],
"name": "",
"payable": false,
"scope": 266,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 259,
"name": "ParameterList",
"src": "155:2:0"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 260,
"name": "ParameterList",
"src": "165:0:0"
},
{
"children": [
{
"children": [
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "tuple()",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 318,
"type": "function ()",
"value": "petrify"
},
"id": 261,
"name": "Identifier",
"src": "344:7:0"
}
],
"id": 262,
"name": "FunctionCall",
"src": "344:9:0"
}
],
"id": 263,
"name": "ExpressionStatement",
"src": "344:9:0"
}
],
"id": 264,
"name": "Block",
"src": "165:195:0"
}
],
"id": 265,
"name": "FunctionDefinition",
"src": "144:216:0"
}
],
"id": 266,
"name": "ContractDefinition",
"src": "100:262:0"
}
],
"id": 267,
"name": "SourceUnit",
"src": "44:319:0"
},
"id": 0,
"source": "/*\n * SPDX-License-Identitifer: MIT\n */\n\npragma solidity ^0.4.24;\n\nimport \"./Petrifiable.sol\";\n\n\ncontract Autopetrified is Petrifiable {\n constructor() public {\n // Immediately petrify base (non-proxy) instances of inherited contracts on deploy.\n // This renders them uninitializable (and unusable without a proxy).\n petrify();\n }\n}\n"
},
"/src/external-vcs/github/aragonOS/contracts/common/Initializable.sol": {
"contracts": [
{
"contractName": "Initializable",
"bytecode": "0x608060405234801561001057600080fd5b5061014c806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac0146100515780638b3dd74914610080575b600080fd5b34801561005d57600080fd5b506100666100ab565b604051808215151515815260200191505060405180910390f35b34801561008c57600080fd5b506100956100d6565b6040518082815260200191505060405180910390f35b6000806100b66100d6565b9050600081141580156100d05750806100cd61010d565b10155b91505090565b60006101087febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916610115565b905090565b600043905090565b6000815490509190505600a165627a7a72305820b315d04df77214a91c54f91ed1fa50e47ad99788a3c2ced21ff3a25dd8af29f10029",
"deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac0146100515780638b3dd74914610080575b600080fd5b34801561005d57600080fd5b506100666100ab565b604051808215151515815260200191505060405180910390f35b34801561008c57600080fd5b506100956100d6565b6040518082815260200191505060405180910390f35b6000806100b66100d6565b9050600081141580156100d05750806100cd61010d565b10155b91505090565b60006101087febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916610115565b905090565b600043905090565b6000815490509190505600a165627a7a72305820b315d04df77214a91c54f91ed1fa50e47ad99788a3c2ced21ff3a25dd8af29f10029",
"sourceMap": "144:1758:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;144:1758:1;;;;;;;",
"deployedSourceMap": "144:1758:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1136:208:1;;;;;;;;;;;;;;;;;;;;;;;;;;;889:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;889:137:1;;;;;;;;;;;;;;;;;;;;;;;1136:208;1183:4;1199:27;1229:24;:22;:24::i;:::-;1199:54;;1293:1;1270:19;:24;;:67;;;;;1318:19;1298:16;:14;:16::i;:::-;:39;;1270:67;1263:74;;1136:208;;:::o;889:137::-;944:7;970:49;353:66;970:29;;:47;;;;:49::i;:::-;963:56;;889:137;:::o;347:94:3:-;396:7;422:12;415:19;;347:94;:::o;519:134:5:-;587:12;636:8;630:15;622:23;;620:27;;;:::o"
}
],
"ast": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Initializable.sol",
"exportedSymbols": {
"Initializable": [
417
]
},
"id": 418,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 321,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "44:24:1"
},
{
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/UnstructuredStorage.sol",
"file": "./UnstructuredStorage.sol",
"id": 322,
"nodeType": "ImportDirective",
"scope": 418,
"sourceUnit": 540,
"src": "70:35:1",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/TimeHelpers.sol",
"file": "../common/TimeHelpers.sol",
"id": 323,
"nodeType": "ImportDirective",
"scope": 418,
"sourceUnit": 465,
"src": "106:35:1",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 324,
"name": "TimeHelpers",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 464,
"src": "170:11:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_TimeHelpers_$464",
"typeString": "contract TimeHelpers"
}
},
"id": 325,
"nodeType": "InheritanceSpecifier",
"src": "170:11:1"
}
],
"contractDependencies": [
464
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 417,
"linearizedBaseContracts": [
417,
464
],
"name": "Initializable",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 328,
"libraryName": {
"contractScope": null,
"id": 326,
"name": "UnstructuredStorage",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 539,
"src": "194:19:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_UnstructuredStorage_$539",
"typeString": "library UnstructuredStorage"
}
},
"nodeType": "UsingForDirective",
"src": "188:38:1",
"typeName": {
"id": 327,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "218:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
},
{
"constant": true,
"id": 331,
"name": "INITIALIZATION_BLOCK_POSITION",
"nodeType": "VariableDeclaration",
"scope": 417,
"src": "295:124:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 329,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "295:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"hexValue": "307865626230356233383661386433343838326238373131643135366634363336393039383364633437383135393830666238326165656666316161343335373965",
"id": 330,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "353:66:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_106605114080364359579522388881656407901251981291752319576997573973948972095390_by_1",
"typeString": "int_const 1066...(70 digits omitted)...5390"
},
"value": "0xebb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e"
},
"visibility": "internal"
},
{
"constant": true,
"id": 334,
"name": "ERROR_ALREADY_INITIALIZED",
"nodeType": "VariableDeclaration",
"scope": 417,
"src": "426:78:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string"
},
"typeName": {
"id": 332,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "426:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "494e49545f414c52454144595f494e495449414c495a4544",
"id": 333,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "478:26:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_7a2bad6ae343e37d141d3f47355bee0a9a7371affceb8638867384a5d0ab0e73",
"typeString": "literal_string \"INIT_ALREADY_INITIALIZED\""
},
"value": "INIT_ALREADY_INITIALIZED"
},
"visibility": "private"
},
{
"constant": true,
"id": 337,
"name": "ERROR_NOT_INITIALIZED",
"nodeType": "VariableDeclaration",
"scope": 417,
"src": "510:70:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string"
},
"typeName": {
"id": 335,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "510:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "494e49545f4e4f545f494e495449414c495a4544",
"id": 336,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "558:22:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_0447b08a3c6a0d1d9310f95dd98634a89b7d8ccef436579bfc11a41060965373",
"typeString": "literal_string \"INIT_NOT_INITIALIZED\""
},
"value": "INIT_NOT_INITIALIZED"
},
"visibility": "private"
},
{
"body": {
"id": 348,
"nodeType": "Block",
"src": "605:93:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 343,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 340,
"name": "getInitializationBlock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 369,
"src": "623:22:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 341,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "623:24:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 342,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "651:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "623:29:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"id": 344,
"name": "ERROR_ALREADY_INITIALIZED",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 334,
"src": "654:25:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
],
"id": 339,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
588,
589
],
"referencedDeclaration": 589,
"src": "615:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 345,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "615:65:1",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 346,
"nodeType": "ExpressionStatement",
"src": "615:65:1"
},
{
"id": 347,
"nodeType": "PlaceholderStatement",
"src": "690:1:1"
}
]
},
"documentation": null,
"id": 349,
"name": "onlyInit",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 338,
"nodeType": "ParameterList",
"parameters": [],
"src": "605:0:1"
},
"src": "587:111:1",
"visibility": "internal"
},
{
"body": {
"id": 358,
"nodeType": "Block",
"src": "727:76:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 352,
"name": "hasInitialized",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 389,
"src": "745:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
"typeString": "function () view returns (bool)"
}
},
"id": 353,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "745:16:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"id": 354,
"name": "ERROR_NOT_INITIALIZED",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 337,
"src": "763:21:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
],
"id": 351,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
588,
589
],
"referencedDeclaration": 589,
"src": "737:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 355,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "737:48:1",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 356,
"nodeType": "ExpressionStatement",
"src": "737:48:1"
},
{
"id": 357,
"nodeType": "PlaceholderStatement",
"src": "795:1:1"
}
]
},
"documentation": null,
"id": 359,
"name": "isInitialized",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 350,
"nodeType": "ParameterList",
"parameters": [],
"src": "727:0:1"
},
"src": "704:99:1",
"visibility": "internal"
},
{
"body": {
"id": 368,
"nodeType": "Block",
"src": "953:73:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 364,
"name": "INITIALIZATION_BLOCK_POSITION",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 331,
"src": "970:29:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 365,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "getStorageUint256",
"nodeType": "MemberAccess",
"referencedDeclaration": 502,
"src": "970:47:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$bound_to$_t_bytes32_$",
"typeString": "function (bytes32) view returns (uint256)"
}
},
"id": 366,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "970:49:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 363,
"id": 367,
"nodeType": "Return",
"src": "963:56:1"
}
]
},
"documentation": "@return Block number in which the contract was initialized",
"id": 369,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getInitializationBlock",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 360,
"nodeType": "ParameterList",
"parameters": [],
"src": "920:2:1"
},
"payable": false,
"returnParameters": {
"id": 363,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 362,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 369,
"src": "944:7:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 361,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "944:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "943:9:1"
},
"scope": 417,
"src": "889:137:1",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 388,
"nodeType": "Block",
"src": "1189:155:1",
"statements": [
{
"assignments": [
375
],
"declarations": [
{
"constant": false,
"id": 375,
"name": "initializationBlock",
"nodeType": "VariableDeclaration",
"scope": 389,
"src": "1199:27:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 374,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1199:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 378,
"initialValue": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 376,
"name": "getInitializationBlock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 369,
"src": "1229:22:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 377,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1229:24:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1199:54:1"
},
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 386,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 381,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 379,
"name": "initializationBlock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 375,
"src": "1270:19:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 380,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1293:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1270:24:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "&&",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 385,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 382,
"name": "getBlockNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 432,
"src": "1298:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 383,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1298:16:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 384,
"name": "initializationBlock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 375,
"src": "1318:19:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1298:39:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "1270:67:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 373,
"id": 387,
"nodeType": "Return",
"src": "1263:74:1"
}
]
},
"documentation": "@return Whether the contract has been initialized by the time of the current block",
"id": 389,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "hasInitialized",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 370,
"nodeType": "ParameterList",
"parameters": [],
"src": "1159:2:1"
},
"payable": false,
"returnParameters": {
"id": 373,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 372,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 389,
"src": "1183:4:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 371,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1183:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1182:6:1"
},
"scope": 417,
"src": "1136:208:1",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 401,
"nodeType": "Block",
"src": "1496:82:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 397,
"name": "getBlockNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 432,
"src": "1554:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 398,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1554:16:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 394,
"name": "INITIALIZATION_BLOCK_POSITION",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 331,
"src": "1506:29:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 396,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "setStorageUint256",
"nodeType": "MemberAccess",
"referencedDeclaration": 538,
"src": "1506:47:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_bytes32_$",
"typeString": "function (bytes32,uint256)"
}
},
"id": 399,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1506:65:1",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 400,
"nodeType": "ExpressionStatement",
"src": "1506:65:1"
}
]
},
"documentation": "@dev Function to be called by top level contract after initialization has finished.",
"id": 402,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 392,
"modifierName": {
"argumentTypes": null,
"id": 391,
"name": "onlyInit",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 349,
"src": "1487:8:1",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "1487:8:1"
}
],
"name": "initialized",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 390,
"nodeType": "ParameterList",
"parameters": [],
"src": "1475:2:1"
},
"payable": false,
"returnParameters": {
"id": 393,
"nodeType": "ParameterList",
"parameters": [],
"src": "1496:0:1"
},
"scope": 417,
"src": "1455:123:1",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 415,
"nodeType": "Block",
"src": "1822:78:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 412,
"name": "_blockNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 404,
"src": "1880:12:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 409,
"name": "INITIALIZATION_BLOCK_POSITION",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 331,
"src": "1832:29:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 411,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "setStorageUint256",
"nodeType": "MemberAccess",
"referencedDeclaration": 538,
"src": "1832:47:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_bytes32_$",
"typeString": "function (bytes32,uint256)"
}
},
"id": 413,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1832:61:1",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 414,
"nodeType": "ExpressionStatement",
"src": "1832:61:1"
}
]
},
"documentation": "@dev Function to be called by top level contract after initialization to enable the contract\n at a future block number rather than immediately.",
"id": 416,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 407,
"modifierName": {
"argumentTypes": null,
"id": 406,
"name": "onlyInit",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 349,
"src": "1813:8:1",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "1813:8:1"
}
],
"name": "initializedAt",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 405,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 404,
"name": "_blockNumber",
"nodeType": "VariableDeclaration",
"scope": 416,
"src": "1782:20:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 403,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1782:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1781:22:1"
},
"payable": false,
"returnParameters": {
"id": 408,
"nodeType": "ParameterList",
"parameters": [],
"src": "1822:0:1"
},
"scope": 417,
"src": "1759:141:1",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 418,
"src": "144:1758:1"
}
],
"src": "44:1859:1"
},
"legacyAST": {
"attributes": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Initializable.sol",
"exportedSymbols": {
"Initializable": [
417
]
}
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"^",
"0.4",
".24"
]
},
"id": 321,
"name": "PragmaDirective",
"src": "44:24:1"
},
{
"attributes": {
"SourceUnit": 540,
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/UnstructuredStorage.sol",
"file": "./UnstructuredStorage.sol",
"scope": 418,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 322,
"name": "ImportDirective",
"src": "70:35:1"
},
{
"attributes": {
"SourceUnit": 465,
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/TimeHelpers.sol",
"file": "../common/TimeHelpers.sol",
"scope": 418,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 323,
"name": "ImportDirective",
"src": "106:35:1"
},
{
"attributes": {
"contractDependencies": [
464
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"linearizedBaseContracts": [
417,
464
],
"name": "Initializable",
"scope": 418
},
"children": [
{
"attributes": {
"arguments": null
},
"children": [
{
"attributes": {
"contractScope": null,
"name": "TimeHelpers",
"referencedDeclaration": 464,
"type": "contract TimeHelpers"
},
"id": 324,
"name": "UserDefinedTypeName",
"src": "170:11:1"
}
],
"id": 325,
"name": "InheritanceSpecifier",
"src": "170:11:1"
},
{
"children": [
{
"attributes": {
"contractScope": null,
"name": "UnstructuredStorage",
"referencedDeclaration": 539,
"type": "library UnstructuredStorage"
},
"id": 326,
"name": "UserDefinedTypeName",
"src": "194:19:1"
},
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 327,
"name": "ElementaryTypeName",
"src": "218:7:1"
}
],
"id": 328,
"name": "UsingForDirective",
"src": "188:38:1"
},
{
"attributes": {
"constant": true,
"name": "INITIALIZATION_BLOCK_POSITION",
"scope": 417,
"stateVariable": true,
"storageLocation": "default",
"type": "bytes32",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 329,
"name": "ElementaryTypeName",
"src": "295:7:1"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "307865626230356233383661386433343838326238373131643135366634363336393039383364633437383135393830666238326165656666316161343335373965",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 1066...(70 digits omitted)...5390",
"value": "0xebb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e"
},
"id": 330,
"name": "Literal",
"src": "353:66:1"
}
],
"id": 331,
"name": "VariableDeclaration",
"src": "295:124:1"
},
{
"attributes": {
"constant": true,
"name": "ERROR_ALREADY_INITIALIZED",
"scope": 417,
"stateVariable": true,
"storageLocation": "default",
"type": "string",
"visibility": "private"
},
"children": [
{
"attributes": {
"name": "string",
"type": "string"
},
"id": 332,
"name": "ElementaryTypeName",
"src": "426:6:1"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "494e49545f414c52454144595f494e495449414c495a4544",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "string",
"type": "literal_string \"INIT_ALREADY_INITIALIZED\"",
"value": "INIT_ALREADY_INITIALIZED"
},
"id": 333,
"name": "Literal",
"src": "478:26:1"
}
],
"id": 334,
"name": "VariableDeclaration",
"src": "426:78:1"
},
{
"attributes": {
"constant": true,
"name": "ERROR_NOT_INITIALIZED",
"scope": 417,
"stateVariable": true,
"storageLocation": "default",
"type": "string",
"visibility": "private"
},
"children": [
{
"attributes": {
"name": "string",
"type": "string"
},
"id": 335,
"name": "ElementaryTypeName",
"src": "510:6:1"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "494e49545f4e4f545f494e495449414c495a4544",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "string",
"type": "literal_string \"INIT_NOT_INITIALIZED\"",
"value": "INIT_NOT_INITIALIZED"
},
"id": 336,
"name": "Literal",
"src": "558:22:1"
}
],
"id": 337,
"name": "VariableDeclaration",
"src": "510:70:1"
},
{
"attributes": {
"documentation": null,
"name": "onlyInit",
"visibility": "internal"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 338,
"name": "ParameterList",
"src": "605:0:1"
},
{
"children": [
{
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "tuple()",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
],
"overloadedDeclarations": [
588,
589
],
"referencedDeclaration": 589,
"type": "function (bool,string memory) pure",
"value": "require"
},
"id": 339,
"name": "Identifier",
"src": "615:7:1"
},
{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "==",
"type": "bool"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 369,
"type": "function () view returns (uint256)",
"value": "getInitializationBlock"
},
"id": 340,
"name": "Identifier",
"src": "623:22:1"
}
],
"id": 341,
"name": "FunctionCall",
"src": "623:24:1"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "30",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 0",
"value": "0"
},
"id": 342,
"name": "Literal",
"src": "651:1:1"
}
],
"id": 343,
"name": "BinaryOperation",
"src": "623:29:1"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 334,
"type": "string memory",
"value": "ERROR_ALREADY_INITIALIZED"
},
"id": 344,
"name": "Identifier",
"src": "654:25:1"
}
],
"id": 345,
"name": "FunctionCall",
"src": "615:65:1"
}
],
"id": 346,
"name": "ExpressionStatement",
"src": "615:65:1"
},
{
"id": 347,
"name": "PlaceholderStatement",
"src": "690:1:1"
}
],
"id": 348,
"name": "Block",
"src": "605:93:1"
}
],
"id": 349,
"name": "ModifierDefinition",
"src": "587:111:1"
},
{
"attributes": {
"documentation": null,
"name": "isInitialized",
"visibility": "internal"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 350,
"name": "ParameterList",
"src": "727:0:1"
},
{
"children": [
{
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "tuple()",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
],
"overloadedDeclarations": [
588,
589
],
"referencedDeclaration": 589,
"type": "function (bool,string memory) pure",
"value": "require"
},
"id": 351,
"name": "Identifier",
"src": "737:7:1"
},
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "bool",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 389,
"type": "function () view returns (bool)",
"value": "hasInitialized"
},
"id": 352,
"name": "Identifier",
"src": "745:14:1"
}
],
"id": 353,
"name": "FunctionCall",
"src": "745:16:1"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 337,
"type": "string memory",
"value": "ERROR_NOT_INITIALIZED"
},
"id": 354,
"name": "Identifier",
"src": "763:21:1"
}
],
"id": 355,
"name": "FunctionCall",
"src": "737:48:1"
}
],
"id": 356,
"name": "ExpressionStatement",
"src": "737:48:1"
},
{
"id": 357,
"name": "PlaceholderStatement",
"src": "795:1:1"
}
],
"id": 358,
"name": "Block",
"src": "727:76:1"
}
],
"id": 359,
"name": "ModifierDefinition",
"src": "704:99:1"
},
{
"attributes": {
"constant": true,
"documentation": "@return Block number in which the contract was initialized",
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getInitializationBlock",
"payable": false,
"scope": 417,
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 360,
"name": "ParameterList",
"src": "920:2:1"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 369,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 361,
"name": "ElementaryTypeName",
"src": "944:7:1"
}
],
"id": 362,
"name": "VariableDeclaration",
"src": "944:7:1"
}
],
"id": 363,
"name": "ParameterList",
"src": "943:9:1"
},
{
"children": [
{
"attributes": {
"functionReturnParameters": 363
},
"children": [
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "getStorageUint256",
"referencedDeclaration": 502,
"type": "function (bytes32) view returns (uint256)"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 331,
"type": "bytes32",
"value": "INITIALIZATION_BLOCK_POSITION"
},
"id": 364,
"name": "Identifier",
"src": "970:29:1"
}
],
"id": 365,
"name": "MemberAccess",
"src": "970:47:1"
}
],
"id": 366,
"name": "FunctionCall",
"src": "970:49:1"
}
],
"id": 367,
"name": "Return",
"src": "963:56:1"
}
],
"id": 368,
"name": "Block",
"src": "953:73:1"
}
],
"id": 369,
"name": "FunctionDefinition",
"src": "889:137:1"
},
{
"attributes": {
"constant": true,
"documentation": "@return Whether the contract has been initialized by the time of the current block",
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "hasInitialized",
"payable": false,
"scope": 417,
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 370,
"name": "ParameterList",
"src": "1159:2:1"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 389,
"stateVariable": false,
"storageLocation": "default",
"type": "bool",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bool",
"type": "bool"
},
"id": 371,
"name": "ElementaryTypeName",
"src": "1183:4:1"
}
],
"id": 372,
"name": "VariableDeclaration",
"src": "1183:4:1"
}
],
"id": 373,
"name": "ParameterList",
"src": "1182:6:1"
},
{
"children": [
{
"attributes": {
"assignments": [
375
]
},
"children": [
{
"attributes": {
"constant": false,
"name": "initializationBlock",
"scope": 389,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 374,
"name": "ElementaryTypeName",
"src": "1199:7:1"
}
],
"id": 375,
"name": "VariableDeclaration",
"src": "1199:27:1"
},
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 369,
"type": "function () view returns (uint256)",
"value": "getInitializationBlock"
},
"id": 376,
"name": "Identifier",
"src": "1229:22:1"
}
],
"id": 377,
"name": "FunctionCall",
"src": "1229:24:1"
}
],
"id": 378,
"name": "VariableDeclarationStatement",
"src": "1199:54:1"
},
{
"attributes": {
"functionReturnParameters": 373
},
"children": [
{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "&&",
"type": "bool"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "!=",
"type": "bool"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 375,
"type": "uint256",
"value": "initializationBlock"
},
"id": 379,
"name": "Identifier",
"src": "1270:19:1"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "30",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 0",
"value": "0"
},
"id": 380,
"name": "Literal",
"src": "1293:1:1"
}
],
"id": 381,
"name": "BinaryOperation",
"src": "1270:24:1"
},
{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": ">=",
"type": "bool"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 432,
"type": "function () view returns (uint256)",
"value": "getBlockNumber"
},
"id": 382,
"name": "Identifier",
"src": "1298:14:1"
}
],
"id": 383,
"name": "FunctionCall",
"src": "1298:16:1"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 375,
"type": "uint256",
"value": "initializationBlock"
},
"id": 384,
"name": "Identifier",
"src": "1318:19:1"
}
],
"id": 385,
"name": "BinaryOperation",
"src": "1298:39:1"
}
],
"id": 386,
"name": "BinaryOperation",
"src": "1270:67:1"
}
],
"id": 387,
"name": "Return",
"src": "1263:74:1"
}
],
"id": 388,
"name": "Block",
"src": "1189:155:1"
}
],
"id": 389,
"name": "FunctionDefinition",
"src": "1136:208:1"
},
{
"attributes": {
"constant": false,
"documentation": "@dev Function to be called by top level contract after initialization has finished.",
"implemented": true,
"isConstructor": false,
"name": "initialized",
"payable": false,
"scope": 417,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 390,
"name": "ParameterList",
"src": "1475:2:1"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 393,
"name": "ParameterList",
"src": "1496:0:1"
},
{
"attributes": {
"arguments": null
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 349,
"type": "modifier ()",
"value": "onlyInit"
},
"id": 391,
"name": "Identifier",
"src": "1487:8:1"
}
],
"id": 392,
"name": "ModifierInvocation",
"src": "1487:8:1"
},
{
"children": [
{
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "tuple()",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "setStorageUint256",
"referencedDeclaration": 538,
"type": "function (bytes32,uint256)"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 331,
"type": "bytes32",
"value": "INITIALIZATION_BLOCK_POSITION"
},
"id": 394,
"name": "Identifier",
"src": "1506:29:1"
}
],
"id": 396,
"name": "MemberAccess",
"src": "1506:47:1"
},
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 432,
"type": "function () view returns (uint256)",
"value": "getBlockNumber"
},
"id": 397,
"name": "Identifier",
"src": "1554:14:1"
}
],
"id": 398,
"name": "FunctionCall",
"src": "1554:16:1"
}
],
"id": 399,
"name": "FunctionCall",
"src": "1506:65:1"
}
],
"id": 400,
"name": "ExpressionStatement",
"src": "1506:65:1"
}
],
"id": 401,
"name": "Block",
"src": "1496:82:1"
}
],
"id": 402,
"name": "FunctionDefinition",
"src": "1455:123:1"
},
{
"attributes": {
"constant": false,
"documentation": "@dev Function to be called by top level contract after initialization to enable the contract\n at a future block number rather than immediately.",
"implemented": true,
"isConstructor": false,
"name": "initializedAt",
"payable": false,
"scope": 417,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "_blockNumber",
"scope": 416,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 403,
"name": "ElementaryTypeName",
"src": "1782:7:1"
}
],
"id": 404,
"name": "VariableDeclaration",
"src": "1782:20:1"
}
],
"id": 405,
"name": "ParameterList",
"src": "1781:22:1"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 408,
"name": "ParameterList",
"src": "1822:0:1"
},
{
"attributes": {
"arguments": null
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 349,
"type": "modifier ()",
"value": "onlyInit"
},
"id": 406,
"name": "Identifier",
"src": "1813:8:1"
}
],
"id": 407,
"name": "ModifierInvocation",
"src": "1813:8:1"
},
{
"children": [
{
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "tuple()",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "setStorageUint256",
"referencedDeclaration": 538,
"type": "function (bytes32,uint256)"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 331,
"type": "bytes32",
"value": "INITIALIZATION_BLOCK_POSITION"
},
"id": 409,
"name": "Identifier",
"src": "1832:29:1"
}
],
"id": 411,
"name": "MemberAccess",
"src": "1832:47:1"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 404,
"type": "uint256",
"value": "_blockNumber"
},
"id": 412,
"name": "Identifier",
"src": "1880:12:1"
}
],
"id": 413,
"name": "FunctionCall",
"src": "1832:61:1"
}
],
"id": 414,
"name": "ExpressionStatement",
"src": "1832:61:1"
}
],
"id": 415,
"name": "Block",
"src": "1822:78:1"
}
],
"id": 416,
"name": "FunctionDefinition",
"src": "1759:141:1"
}
],
"id": 417,
"name": "ContractDefinition",
"src": "144:1758:1"
}
],
"id": 418,
"name": "SourceUnit",
"src": "44:1859:1"
},
"id": 1,
"source": "/*\n * SPDX-License-Identitifer: MIT\n */\n\npragma solidity ^0.4.24;\n\nimport \"./UnstructuredStorage.sol\";\nimport \"../common/TimeHelpers.sol\";\n\n\ncontract Initializable is TimeHelpers {\n using UnstructuredStorage for bytes32;\n\n // keccak256(\"aragonOS.initializable.initializationBlock\")\n bytes32 internal constant INITIALIZATION_BLOCK_POSITION = 0xebb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e;\n\n string private constant ERROR_ALREADY_INITIALIZED = \"INIT_ALREADY_INITIALIZED\";\n string private constant ERROR_NOT_INITIALIZED = \"INIT_NOT_INITIALIZED\";\n\n modifier onlyInit {\n require(getInitializationBlock() == 0, ERROR_ALREADY_INITIALIZED);\n _;\n }\n\n modifier isInitialized {\n require(hasInitialized(), ERROR_NOT_INITIALIZED);\n _;\n }\n\n /**\n * @return Block number in which the contract was initialized\n */\n function getInitializationBlock() public view returns (uint256) {\n return INITIALIZATION_BLOCK_POSITION.getStorageUint256();\n }\n\n /**\n * @return Whether the contract has been initialized by the time of the current block\n */\n function hasInitialized() public view returns (bool) {\n uint256 initializationBlock = getInitializationBlock();\n return initializationBlock != 0 && getBlockNumber() >= initializationBlock;\n }\n\n /**\n * @dev Function to be called by top level contract after initialization has finished.\n */\n function initialized() internal onlyInit {\n INITIALIZATION_BLOCK_POSITION.setStorageUint256(getBlockNumber());\n }\n\n /**\n * @dev Function to be called by top level contract after initialization to enable the contract\n * at a future block number rather than immediately.\n */\n function initializedAt(uint256 _blockNumber) internal onlyInit {\n INITIALIZATION_BLOCK_POSITION.setStorageUint256(_blockNumber);\n }\n}\n"
},
"/src/external-vcs/github/aragonOS/contracts/common/Petrifiable.sol": {
"contracts": [
{
"contractName": "Petrifiable",
"bytecode": "0x608060405234801561001057600080fd5b506101b7806100206000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac01461005c5780638b3dd7491461008b578063de4796ed146100b6575b600080fd5b34801561006857600080fd5b506100716100e5565b604051808215151515815260200191505060405180910390f35b34801561009757600080fd5b506100a0610110565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610147565b604051808215151515815260200191505060405180910390f35b6000806100f0610110565b90506000811415801561010a575080610107610178565b10155b91505090565b60006101427febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916610180565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610172610110565b14905090565b600043905090565b6000815490509190505600a165627a7a72305820ba68324a239bbb46d0b36d749b6c41fad77f3651c169e1d68efc0c421a9664f20029",
"deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac01461005c5780638b3dd7491461008b578063de4796ed146100b6575b600080fd5b34801561006857600080fd5b506100716100e5565b604051808215151515815260200191505060405180910390f35b34801561009757600080fd5b506100a0610110565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610147565b604051808215151515815260200191505060405180910390f35b6000806100f0610110565b90506000811415801561010a575080610107610178565b10155b91505090565b60006101427febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916610180565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610172610110565b14905090565b600043905090565b6000815490509190505600a165627a7a72305820ba68324a239bbb46d0b36d749b6c41fad77f3651c169e1d68efc0c421a9664f20029",
"sourceMap": "102:574:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;102:574:2;;;;;;;",
"deployedSourceMap": "102:574:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:208:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1136:208:1;;;;;;;;;;;;;;;;;;;;;;;;;;;889:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;889:137:1;;;;;;;;;;;;;;;;;;;;;;;287:117:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:117:2;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:208:1;1183:4;1199:27;1229:24;:22;:24::i;:::-;1199:54;;1293:1;1270:19;:24;;:67;;;;;1318:19;1298:16;:14;:16::i;:::-;:39;;1270:67;1263:74;;1136:208;;:::o;889:137::-;944:7;970:49;353:66;970:29;;:47;;;;:49::i;:::-;963:56;;889:137;:::o;287:117:2:-;331:4;277:2;354:24;:22;:24::i;:::-;:43;347:50;;287:117;:::o;347:94:3:-;396:7;422:12;415:19;;347:94;:::o;519:134:5:-;587:12;636:8;630:15;622:23;;620:27;;;:::o"
}
],
"ast": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Petrifiable.sol",
"exportedSymbols": {
"Petrifiable": [
319
]
},
"id": 320,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 288,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "44:24:2"
},
{
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Initializable.sol",
"file": "./Initializable.sol",
"id": 289,
"nodeType": "ImportDirective",
"scope": 320,
"sourceUnit": 418,
"src": "70:29:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 290,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 417,
"src": "126:13:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$417",
"typeString": "contract Initializable"
}
},
"id": 291,
"nodeType": "InheritanceSpecifier",
"src": "126:13:2"
}
],
"contractDependencies": [
417,
464
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 319,
"linearizedBaseContracts": [
319,
417,
464
],
"name": "Petrifiable",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
"id": 297,
"name": "PETRIFIED_BLOCK",
"nodeType": "VariableDeclaration",
"scope": 319,
"src": "225:55:2",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 292,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "225:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 295,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "-",
"prefix": true,
"src": "277:2:2",
"subExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 294,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "278:1:2",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"typeDescriptions": {
"typeIdentifier": "t_rational_-1_by_1",
"typeString": "int_const -1"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_-1_by_1",
"typeString": "int_const -1"
}
],
"id": 293,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "269:7:2",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": "uint256"
},
"id": 296,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "269:11:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"body": {
"id": 307,
"nodeType": "Block",
"src": "337:67:2",
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 305,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 302,
"name": "getInitializationBlock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 369,
"src": "354:22:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 303,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "354:24:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 304,
"name": "PETRIFIED_BLOCK",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 297,
"src": "382:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "354:43:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 301,
"id": 306,
"nodeType": "Return",
"src": "347:50:2"
}
]
},
"documentation": null,
"id": 308,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "isPetrified",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 298,
"nodeType": "ParameterList",
"parameters": [],
"src": "307:2:2"
},
"payable": false,
"returnParameters": {
"id": 301,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 300,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 308,
"src": "331:4:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 299,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "331:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "330:6:2"
},
"scope": 319,
"src": "287:117:2",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 317,
"nodeType": "Block",
"src": "627:47:2",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 314,
"name": "PETRIFIED_BLOCK",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 297,
"src": "651:15:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 313,
"name": "initializedAt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 416,
"src": "637:13:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 315,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "637:30:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 316,
"nodeType": "ExpressionStatement",
"src": "637:30:2"
}
]
},
"documentation": "@dev Function to be called by top level contract to prevent being initialized.\n Useful for freezing base contracts when they're used behind proxies.",
"id": 318,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 311,
"modifierName": {
"argumentTypes": null,
"id": 310,
"name": "onlyInit",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 349,
"src": "618:8:2",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "618:8:2"
}
],
"name": "petrify",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 309,
"nodeType": "ParameterList",
"parameters": [],
"src": "606:2:2"
},
"payable": false,
"returnParameters": {
"id": 312,
"nodeType": "ParameterList",
"parameters": [],
"src": "627:0:2"
},
"scope": 319,
"src": "590:84:2",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 320,
"src": "102:574:2"
}
],
"src": "44:633:2"
},
"legacyAST": {
"attributes": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Petrifiable.sol",
"exportedSymbols": {
"Petrifiable": [
319
]
}
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"^",
"0.4",
".24"
]
},
"id": 288,
"name": "PragmaDirective",
"src": "44:24:2"
},
{
"attributes": {
"SourceUnit": 418,
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Initializable.sol",
"file": "./Initializable.sol",
"scope": 320,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 289,
"name": "ImportDirective",
"src": "70:29:2"
},
{
"attributes": {
"contractDependencies": [
417,
464
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"linearizedBaseContracts": [
319,
417,
464
],
"name": "Petrifiable",
"scope": 320
},
"children": [
{
"attributes": {
"arguments": null
},
"children": [
{
"attributes": {
"contractScope": null,
"name": "Initializable",
"referencedDeclaration": 417,
"type": "contract Initializable"
},
"id": 290,
"name": "UserDefinedTypeName",
"src": "126:13:2"
}
],
"id": 291,
"name": "InheritanceSpecifier",
"src": "126:13:2"
},
{
"attributes": {
"constant": true,
"name": "PETRIFIED_BLOCK",
"scope": 319,
"stateVariable": true,
"storageLocation": "default",
"type": "uint256",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 292,
"name": "ElementaryTypeName",
"src": "225:7:2"
},
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": true,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": true
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_-1_by_1",
"typeString": "int_const -1"
}
],
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"type": "type(uint256)",
"value": "uint256"
},
"id": 293,
"name": "ElementaryTypeNameExpression",
"src": "269:7:2"
},
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"operator": "-",
"prefix": true,
"type": "int_const -1"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"hexvalue": "31",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 1",
"value": "1"
},
"id": 294,
"name": "Literal",
"src": "278:1:2"
}
],
"id": 295,
"name": "UnaryOperation",
"src": "277:2:2"
}
],
"id": 296,
"name": "FunctionCall",
"src": "269:11:2"
}
],
"id": 297,
"name": "VariableDeclaration",
"src": "225:55:2"
},
{
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "isPetrified",
"payable": false,
"scope": 319,
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 298,
"name": "ParameterList",
"src": "307:2:2"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 308,
"stateVariable": false,
"storageLocation": "default",
"type": "bool",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bool",
"type": "bool"
},
"id": 299,
"name": "ElementaryTypeName",
"src": "331:4:2"
}
],
"id": 300,
"name": "VariableDeclaration",
"src": "331:4:2"
}
],
"id": 301,
"name": "ParameterList",
"src": "330:6:2"
},
{
"children": [
{
"attributes": {
"functionReturnParameters": 301
},
"children": [
{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "==",
"type": "bool"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 369,
"type": "function () view returns (uint256)",
"value": "getInitializationBlock"
},
"id": 302,
"name": "Identifier",
"src": "354:22:2"
}
],
"id": 303,
"name": "FunctionCall",
"src": "354:24:2"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 297,
"type": "uint256",
"value": "PETRIFIED_BLOCK"
},
"id": 304,
"name": "Identifier",
"src": "382:15:2"
}
],
"id": 305,
"name": "BinaryOperation",
"src": "354:43:2"
}
],
"id": 306,
"name": "Return",
"src": "347:50:2"
}
],
"id": 307,
"name": "Block",
"src": "337:67:2"
}
],
"id": 308,
"name": "FunctionDefinition",
"src": "287:117:2"
},
{
"attributes": {
"constant": false,
"documentation": "@dev Function to be called by top level contract to prevent being initialized.\n Useful for freezing base contracts when they're used behind proxies.",
"implemented": true,
"isConstructor": false,
"name": "petrify",
"payable": false,
"scope": 319,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 309,
"name": "ParameterList",
"src": "606:2:2"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 312,
"name": "ParameterList",
"src": "627:0:2"
},
{
"attributes": {
"arguments": null
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 349,
"type": "modifier ()",
"value": "onlyInit"
},
"id": 310,
"name": "Identifier",
"src": "618:8:2"
}
],
"id": 311,
"name": "ModifierInvocation",
"src": "618:8:2"
},
{
"children": [
{
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "tuple()",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 416,
"type": "function (uint256)",
"value": "initializedAt"
},
"id": 313,
"name": "Identifier",
"src": "637:13:2"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 297,
"type": "uint256",
"value": "PETRIFIED_BLOCK"
},
"id": 314,
"name": "Identifier",
"src": "651:15:2"
}
],
"id": 315,
"name": "FunctionCall",
"src": "637:30:2"
}
],
"id": 316,
"name": "ExpressionStatement",
"src": "637:30:2"
}
],
"id": 317,
"name": "Block",
"src": "627:47:2"
}
],
"id": 318,
"name": "FunctionDefinition",
"src": "590:84:2"
}
],
"id": 319,
"name": "ContractDefinition",
"src": "102:574:2"
}
],
"id": 320,
"name": "SourceUnit",
"src": "44:633:2"
},
"id": 2,
"source": "/*\n * SPDX-License-Identitifer: MIT\n */\n\npragma solidity ^0.4.24;\n\nimport \"./Initializable.sol\";\n\n\ncontract Petrifiable is Initializable {\n // Use block UINT256_MAX (which should be never) as the initializable date\n uint256 internal constant PETRIFIED_BLOCK = uint256(-1);\n\n function isPetrified() public view returns (bool) {\n return getInitializationBlock() == PETRIFIED_BLOCK;\n }\n\n /**\n * @dev Function to be called by top level contract to prevent being initialized.\n * Useful for freezing base contracts when they're used behind proxies.\n */\n function petrify() internal onlyInit {\n initializedAt(PETRIFIED_BLOCK);\n }\n}\n"
},
"/src/external-vcs/github/aragonOS/contracts/common/TimeHelpers.sol": {
"contracts": [
{
"contractName": "TimeHelpers",
"bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a7230582026fe099480af4646ae647b12477c19c9c04a6834a6ac3009692af2f748d41d210029",
"deployedBytecode": "0x6080604052600080fd00a165627a7a7230582026fe099480af4646ae647b12477c19c9c04a6834a6ac3009692af2f748d41d210029",
"sourceMap": "103:1266:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;103:1266:3;;;;;;;",
"deployedSourceMap": "103:1266:3:-;;;;;"
}
],
"ast": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/TimeHelpers.sol",
"exportedSymbols": {
"TimeHelpers": [
464
]
},
"id": 465,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 419,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "44:24:3"
},
{
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Uint256Helpers.sol",
"file": "./Uint256Helpers.sol",
"id": 420,
"nodeType": "ImportDirective",
"scope": 465,
"sourceUnit": 571,
"src": "70:30:3",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 464,
"linearizedBaseContracts": [
464
],
"name": "TimeHelpers",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 423,
"libraryName": {
"contractScope": null,
"id": 421,
"name": "Uint256Helpers",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 570,
"src": "136:14:3",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Uint256Helpers_$570",
"typeString": "library Uint256Helpers"
}
},
"nodeType": "UsingForDirective",
"src": "130:33:3",
"typeName": {
"id": 422,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "155:7:3",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"body": {
"id": 431,
"nodeType": "Block",
"src": "405:36:3",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 428,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 575,
"src": "422:5:3",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 429,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "number",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "422:12:3",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 427,
"id": 430,
"nodeType": "Return",
"src": "415:19:3"
}
]
},
"documentation": "@dev Returns the current block number.\n Using a function rather than `block.number` allows us to easily mock the block number in\n tests.",
"id": 432,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getBlockNumber",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 424,
"nodeType": "ParameterList",
"parameters": [],
"src": "370:2:3"
},
"payable": false,
"returnParameters": {
"id": 427,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 426,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 432,
"src": "396:7:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 425,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "396:7:3",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "395:9:3"
},
"scope": 464,
"src": "347:94:3",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 442,
"nodeType": "Block",
"src": "705:51:3",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 437,
"name": "getBlockNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 432,
"src": "722:14:3",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 438,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "722:16:3",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 439,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint64",
"nodeType": "MemberAccess",
"referencedDeclaration": 569,
"src": "722:25:3",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$",
"typeString": "function (uint256) pure returns (uint64)"
}
},
"id": 440,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "722:27:3",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"functionReturnParameters": 436,
"id": 441,
"nodeType": "Return",
"src": "715:34:3"
}
]
},
"documentation": "@dev Returns the current block number, converted to uint64.\n Using a function rather than `block.number` allows us to easily mock the block number in\n tests.",
"id": 443,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getBlockNumber64",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 433,
"nodeType": "ParameterList",
"parameters": [],
"src": "671:2:3"
},
"payable": false,
"returnParameters": {
"id": 436,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 435,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 443,
"src": "697:6:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 434,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "697:6:3",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "696:8:3"
},
"scope": 464,
"src": "646:110:3",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 451,
"nodeType": "Block",
"src": "982:88:3",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 448,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 575,
"src": "999:5:3",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 449,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "timestamp",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "999:15:3",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 447,
"id": 450,
"nodeType": "Return",
"src": "992:22:3"
}
]
},
"documentation": "@dev Returns the current timestamp.\n Using a function rather than `block.timestamp` allows us to easily mock it in\n tests.",
"id": 452,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getTimestamp",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 444,
"nodeType": "ParameterList",
"parameters": [],
"src": "947:2:3"
},
"payable": false,
"returnParameters": {
"id": 447,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 446,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 452,
"src": "973:7:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 445,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "973:7:3",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "972:9:3"
},
"scope": 464,
"src": "926:144:3",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 462,
"nodeType": "Block",
"src": "1318:49:3",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 457,
"name": "getTimestamp",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 452,
"src": "1335:12:3",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 458,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1335:14:3",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 459,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint64",
"nodeType": "MemberAccess",
"referencedDeclaration": 569,
"src": "1335:23:3",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint64_$bound_to$_t_uint256_$",
"typeString": "function (uint256) pure returns (uint64)"
}
},
"id": 460,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1335:25:3",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"functionReturnParameters": 456,
"id": 461,
"nodeType": "Return",
"src": "1328:32:3"
}
]
},
"documentation": "@dev Returns the current timestamp, converted to uint64.\n Using a function rather than `block.timestamp` allows us to easily mock it in\n tests.",
"id": 463,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getTimestamp64",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 453,
"nodeType": "ParameterList",
"parameters": [],
"src": "1284:2:3"
},
"payable": false,
"returnParameters": {
"id": 456,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 455,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 463,
"src": "1310:6:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 454,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "1310:6:3",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1309:8:3"
},
"scope": 464,
"src": "1261:106:3",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 465,
"src": "103:1266:3"
}
],
"src": "44:1326:3"
},
"legacyAST": {
"attributes": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/TimeHelpers.sol",
"exportedSymbols": {
"TimeHelpers": [
464
]
}
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"^",
"0.4",
".24"
]
},
"id": 419,
"name": "PragmaDirective",
"src": "44:24:3"
},
{
"attributes": {
"SourceUnit": 571,
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Uint256Helpers.sol",
"file": "./Uint256Helpers.sol",
"scope": 465,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 420,
"name": "ImportDirective",
"src": "70:30:3"
},
{
"attributes": {
"baseContracts": [
null
],
"contractDependencies": [
null
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"linearizedBaseContracts": [
464
],
"name": "TimeHelpers",
"scope": 465
},
"children": [
{
"children": [
{
"attributes": {
"contractScope": null,
"name": "Uint256Helpers",
"referencedDeclaration": 570,
"type": "library Uint256Helpers"
},
"id": 421,
"name": "UserDefinedTypeName",
"src": "136:14:3"
},
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 422,
"name": "ElementaryTypeName",
"src": "155:7:3"
}
],
"id": 423,
"name": "UsingForDirective",
"src": "130:33:3"
},
{
"attributes": {
"constant": true,
"documentation": "@dev Returns the current block number.\n Using a function rather than `block.number` allows us to easily mock the block number in\n tests.",
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getBlockNumber",
"payable": false,
"scope": 464,
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 424,
"name": "ParameterList",
"src": "370:2:3"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 432,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 425,
"name": "ElementaryTypeName",
"src": "396:7:3"
}
],
"id": 426,
"name": "VariableDeclaration",
"src": "396:7:3"
}
],
"id": 427,
"name": "ParameterList",
"src": "395:9:3"
},
{
"children": [
{
"attributes": {
"functionReturnParameters": 427
},
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "number",
"referencedDeclaration": null,
"type": "uint256"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 575,
"type": "block",
"value": "block"
},
"id": 428,
"name": "Identifier",
"src": "422:5:3"
}
],
"id": 429,
"name": "MemberAccess",
"src": "422:12:3"
}
],
"id": 430,
"name": "Return",
"src": "415:19:3"
}
],
"id": 431,
"name": "Block",
"src": "405:36:3"
}
],
"id": 432,
"name": "FunctionDefinition",
"src": "347:94:3"
},
{
"attributes": {
"constant": true,
"documentation": "@dev Returns the current block number, converted to uint64.\n Using a function rather than `block.number` allows us to easily mock the block number in\n tests.",
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getBlockNumber64",
"payable": false,
"scope": 464,
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 433,
"name": "ParameterList",
"src": "671:2:3"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 443,
"stateVariable": false,
"storageLocation": "default",
"type": "uint64",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint64",
"type": "uint64"
},
"id": 434,
"name": "ElementaryTypeName",
"src": "697:6:3"
}
],
"id": 435,
"name": "VariableDeclaration",
"src": "697:6:3"
}
],
"id": 436,
"name": "ParameterList",
"src": "696:8:3"
},
{
"children": [
{
"attributes": {
"functionReturnParameters": 436
},
"children": [
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint64",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "toUint64",
"referencedDeclaration": 569,
"type": "function (uint256) pure returns (uint64)"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 432,
"type": "function () view returns (uint256)",
"value": "getBlockNumber"
},
"id": 437,
"name": "Identifier",
"src": "722:14:3"
}
],
"id": 438,
"name": "FunctionCall",
"src": "722:16:3"
}
],
"id": 439,
"name": "MemberAccess",
"src": "722:25:3"
}
],
"id": 440,
"name": "FunctionCall",
"src": "722:27:3"
}
],
"id": 441,
"name": "Return",
"src": "715:34:3"
}
],
"id": 442,
"name": "Block",
"src": "705:51:3"
}
],
"id": 443,
"name": "FunctionDefinition",
"src": "646:110:3"
},
{
"attributes": {
"constant": true,
"documentation": "@dev Returns the current timestamp.\n Using a function rather than `block.timestamp` allows us to easily mock it in\n tests.",
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getTimestamp",
"payable": false,
"scope": 464,
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 444,
"name": "ParameterList",
"src": "947:2:3"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 452,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 445,
"name": "ElementaryTypeName",
"src": "973:7:3"
}
],
"id": 446,
"name": "VariableDeclaration",
"src": "973:7:3"
}
],
"id": 447,
"name": "ParameterList",
"src": "972:9:3"
},
{
"children": [
{
"attributes": {
"functionReturnParameters": 447
},
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "timestamp",
"referencedDeclaration": null,
"type": "uint256"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 575,
"type": "block",
"value": "block"
},
"id": 448,
"name": "Identifier",
"src": "999:5:3"
}
],
"id": 449,
"name": "MemberAccess",
"src": "999:15:3"
}
],
"id": 450,
"name": "Return",
"src": "992:22:3"
}
],
"id": 451,
"name": "Block",
"src": "982:88:3"
}
],
"id": 452,
"name": "FunctionDefinition",
"src": "926:144:3"
},
{
"attributes": {
"constant": true,
"documentation": "@dev Returns the current timestamp, converted to uint64.\n Using a function rather than `block.timestamp` allows us to easily mock it in\n tests.",
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getTimestamp64",
"payable": false,
"scope": 464,
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 453,
"name": "ParameterList",
"src": "1284:2:3"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 463,
"stateVariable": false,
"storageLocation": "default",
"type": "uint64",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint64",
"type": "uint64"
},
"id": 454,
"name": "ElementaryTypeName",
"src": "1310:6:3"
}
],
"id": 455,
"name": "VariableDeclaration",
"src": "1310:6:3"
}
],
"id": 456,
"name": "ParameterList",
"src": "1309:8:3"
},
{
"children": [
{
"attributes": {
"functionReturnParameters": 456
},
"children": [
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint64",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"member_name": "toUint64",
"referencedDeclaration": 569,
"type": "function (uint256) pure returns (uint64)"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"arguments": [
null
],
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
null
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 452,
"type": "function () view returns (uint256)",
"value": "getTimestamp"
},
"id": 457,
"name": "Identifier",
"src": "1335:12:3"
}
],
"id": 458,
"name": "FunctionCall",
"src": "1335:14:3"
}
],
"id": 459,
"name": "MemberAccess",
"src": "1335:23:3"
}
],
"id": 460,
"name": "FunctionCall",
"src": "1335:25:3"
}
],
"id": 461,
"name": "Return",
"src": "1328:32:3"
}
],
"id": 462,
"name": "Block",
"src": "1318:49:3"
}
],
"id": 463,
"name": "FunctionDefinition",
"src": "1261:106:3"
}
],
"id": 464,
"name": "ContractDefinition",
"src": "103:1266:3"
}
],
"id": 465,
"name": "SourceUnit",
"src": "44:1326:3"
},
"id": 3,
"source": "/*\n * SPDX-License-Identitifer: MIT\n */\n\npragma solidity ^0.4.24;\n\nimport \"./Uint256Helpers.sol\";\n\n\ncontract TimeHelpers {\n using Uint256Helpers for uint256;\n\n /**\n * @dev Returns the current block number.\n * Using a function rather than `block.number` allows us to easily mock the block number in\n * tests.\n */\n function getBlockNumber() internal view returns (uint256) {\n return block.number;\n }\n\n /**\n * @dev Returns the current block number, converted to uint64.\n * Using a function rather than `block.number` allows us to easily mock the block number in\n * tests.\n */\n function getBlockNumber64() internal view returns (uint64) {\n return getBlockNumber().toUint64();\n }\n\n /**\n * @dev Returns the current timestamp.\n * Using a function rather than `block.timestamp` allows us to easily mock it in\n * tests.\n */\n function getTimestamp() internal view returns (uint256) {\n return block.timestamp; // solium-disable-line security/no-block-members\n }\n\n /**\n * @dev Returns the current timestamp, converted to uint64.\n * Using a function rather than `block.timestamp` allows us to easily mock it in\n * tests.\n */\n function getTimestamp64() internal view returns (uint64) {\n return getTimestamp().toUint64();\n }\n}\n"
},
"/src/external-vcs/github/aragonOS/contracts/common/Uint256Helpers.sol": {
"contracts": [
{
"contractName": "Uint256Helpers",
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820146ac3304d493ffff85ab478a537c583dc1b048606d96bf8020f7eb82f1316590029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820146ac3304d493ffff85ab478a537c583dc1b048606d96bf8020f7eb82f1316590029",
"sourceMap": "27:312:4:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24",
"deployedSourceMap": "27:312:4:-;;;;;;;;"
}
],
"ast": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Uint256Helpers.sol",
"exportedSymbols": {
"Uint256Helpers": [
570
]
},
"id": 571,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 541,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:4"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 570,
"linearizedBaseContracts": [
570
],
"name": "Uint256Helpers",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
"id": 547,
"name": "MAX_UINT64",
"nodeType": "VariableDeclaration",
"scope": 570,
"src": "56:48:4",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 542,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "56:7:4",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 545,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "-",
"prefix": true,
"src": "101:2:4",
"subExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 544,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "102:1:4",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"typeDescriptions": {
"typeIdentifier": "t_rational_-1_by_1",
"typeString": "int_const -1"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_-1_by_1",
"typeString": "int_const -1"
}
],
"id": 543,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "94:6:4",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint64_$",
"typeString": "type(uint64)"
},
"typeName": "uint64"
},
"id": 546,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "94:10:4",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"visibility": "private"
},
{
"constant": true,
"id": 550,
"name": "ERROR_NUMBER_TOO_BIG",
"nodeType": "VariableDeclaration",
"scope": 570,
"src": "111:70:4",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string"
},
"typeName": {
"id": 548,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "111:6:4",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "55494e5436345f4e554d4245525f544f4f5f424947",
"id": 549,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "158:23:4",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_0097450fa85b09f7141faf60e71f2a076ecfed0c9fa787056beef57ff0d975db",
"typeString": "literal_string \"UINT64_NUMBER_TOO_BIG\""
},
"value": "UINT64_NUMBER_TOO_BIG"
},
"visibility": "private"
},
{
"body": {
"id": 568,
"nodeType": "Block",
"src": "248:89:4",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 560,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 558,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 552,
"src": "266:1:4",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"id": 559,
"name": "MAX_UINT64",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 547,
"src": "271:10:4",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "266:15:4",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"id": 561,
"name": "ERROR_NUMBER_TOO_BIG",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 550,
"src": "283:20:4",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
],
"id": 557,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
588,
589
],
"referencedDeclaration": 589,
"src": "258:7:4",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 562,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "258:46:4",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 563,
"nodeType": "ExpressionStatement",
"src": "258:46:4"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 565,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 552,
"src": "328:1:4",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 564,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "321:6:4",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint64_$",
"typeString": "type(uint64)"
},
"typeName": "uint64"
},
"id": 566,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "321:9:4",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"functionReturnParameters": 556,
"id": 567,
"nodeType": "Return",
"src": "314:16:4"
}
]
},
"documentation": null,
"id": 569,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "toUint64",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 553,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 552,
"name": "a",
"nodeType": "VariableDeclaration",
"scope": 569,
"src": "206:9:4",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 551,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "206:7:4",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "205:11:4"
},
"payable": false,
"returnParameters": {
"id": 556,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 555,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 569,
"src": "240:6:4",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 554,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "240:6:4",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "239:8:4"
},
"scope": 570,
"src": "188:149:4",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 571,
"src": "27:312:4"
}
],
"src": "0:340:4"
},
"legacyAST": {
"attributes": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Uint256Helpers.sol",
"exportedSymbols": {
"Uint256Helpers": [
570
]
}
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"^",
"0.4",
".24"
]
},
"id": 541,
"name": "PragmaDirective",
"src": "0:24:4"
},
{
"attributes": {
"baseContracts": [
null
],
"contractDependencies": [
null
],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"linearizedBaseContracts": [
570
],
"name": "Uint256Helpers",
"scope": 571
},
"children": [
{
"attributes": {
"constant": true,
"name": "MAX_UINT64",
"scope": 570,
"stateVariable": true,
"storageLocation": "default",
"type": "uint256",
"visibility": "private"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 542,
"name": "ElementaryTypeName",
"src": "56:7:4"
},
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": true,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint64",
"type_conversion": true
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_-1_by_1",
"typeString": "int_const -1"
}
],
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"type": "type(uint64)",
"value": "uint64"
},
"id": 543,
"name": "ElementaryTypeNameExpression",
"src": "94:6:4"
},
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"operator": "-",
"prefix": true,
"type": "int_const -1"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"hexvalue": "31",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 1",
"value": "1"
},
"id": 544,
"name": "Literal",
"src": "102:1:4"
}
],
"id": 545,
"name": "UnaryOperation",
"src": "101:2:4"
}
],
"id": 546,
"name": "FunctionCall",
"src": "94:10:4"
}
],
"id": 547,
"name": "VariableDeclaration",
"src": "56:48:4"
},
{
"attributes": {
"constant": true,
"name": "ERROR_NUMBER_TOO_BIG",
"scope": 570,
"stateVariable": true,
"storageLocation": "default",
"type": "string",
"visibility": "private"
},
"children": [
{
"attributes": {
"name": "string",
"type": "string"
},
"id": 548,
"name": "ElementaryTypeName",
"src": "111:6:4"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "55494e5436345f4e554d4245525f544f4f5f424947",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "string",
"type": "literal_string \"UINT64_NUMBER_TOO_BIG\"",
"value": "UINT64_NUMBER_TOO_BIG"
},
"id": 549,
"name": "Literal",
"src": "158:23:4"
}
],
"id": 550,
"name": "VariableDeclaration",
"src": "111:70:4"
},
{
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "toUint64",
"payable": false,
"scope": 570,
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "a",
"scope": 569,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 551,
"name": "ElementaryTypeName",
"src": "206:7:4"
}
],
"id": 552,
"name": "VariableDeclaration",
"src": "206:9:4"
}
],
"id": 553,
"name": "ParameterList",
"src": "205:11:4"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 569,
"stateVariable": false,
"storageLocation": "default",
"type": "uint64",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint64",
"type": "uint64"
},
"id": 554,
"name": "ElementaryTypeName",
"src": "240:6:4"
}
],
"id": 555,
"name": "VariableDeclaration",
"src": "240:6:4"
}
],
"id": 556,
"name": "ParameterList",
"src": "239:8:4"
},
{
"children": [
{
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "tuple()",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
],
"overloadedDeclarations": [
588,
589
],
"referencedDeclaration": 589,
"type": "function (bool,string memory) pure",
"value": "require"
},
"id": 557,
"name": "Identifier",
"src": "258:7:4"
},
{
"attributes": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "<=",
"type": "bool"
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 552,
"type": "uint256",
"value": "a"
},
"id": 558,
"name": "Identifier",
"src": "266:1:4"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 547,
"type": "uint256",
"value": "MAX_UINT64"
},
"id": 559,
"name": "Identifier",
"src": "271:10:4"
}
],
"id": 560,
"name": "BinaryOperation",
"src": "266:15:4"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 550,
"type": "string memory",
"value": "ERROR_NUMBER_TOO_BIG"
},
"id": 561,
"name": "Identifier",
"src": "283:20:4"
}
],
"id": 562,
"name": "FunctionCall",
"src": "258:46:4"
}
],
"id": 563,
"name": "ExpressionStatement",
"src": "258:46:4"
},
{
"attributes": {
"functionReturnParameters": 556
},
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint64",
"type_conversion": true
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"type": "type(uint64)",
"value": "uint64"
},
"id": 564,
"name": "ElementaryTypeNameExpression",
"src": "321:6:4"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 552,
"type": "uint256",
"value": "a"
},
"id": 565,
"name": "Identifier",
"src": "328:1:4"
}
],
"id": 566,
"name": "FunctionCall",
"src": "321:9:4"
}
],
"id": 567,
"name": "Return",
"src": "314:16:4"
}
],
"id": 568,
"name": "Block",
"src": "248:89:4"
}
],
"id": 569,
"name": "FunctionDefinition",
"src": "188:149:4"
}
],
"id": 570,
"name": "ContractDefinition",
"src": "27:312:4"
}
],
"id": 571,
"name": "SourceUnit",
"src": "0:340:4"
},
"id": 4,
"source": "pragma solidity ^0.4.24;\n\n\nlibrary Uint256Helpers {\n uint256 private constant MAX_UINT64 = uint64(-1);\n\n string private constant ERROR_NUMBER_TOO_BIG = \"UINT64_NUMBER_TOO_BIG\";\n\n function toUint64(uint256 a) internal pure returns (uint64) {\n require(a <= MAX_UINT64, ERROR_NUMBER_TOO_BIG);\n return uint64(a);\n }\n}\n"
},
"/src/external-vcs/github/aragonOS/contracts/common/UnstructuredStorage.sol": {
"contracts": [
{
"contractName": "UnstructuredStorage",
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820d58cd12df0f7d63dd5eaacafe641433e3e3cfbfd9a1270850beaa70ba47b14d10029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820d58cd12df0f7d63dd5eaacafe641433e3e3cfbfd9a1270850beaa70ba47b14d10029",
"sourceMap": "71:1078:5:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24",
"deployedSourceMap": "71:1078:5:-;;;;;;;;"
}
],
"ast": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/UnstructuredStorage.sol",
"exportedSymbols": {
"UnstructuredStorage": [
539
]
},
"id": 540,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 466,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "44:24:5"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 539,
"linearizedBaseContracts": [
539
],
"name": "UnstructuredStorage",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 474,
"nodeType": "Block",
"src": "181:52:5",
"statements": [
{
"externalReferences": [
{
"position": {
"declaration": 468,
"isOffset": false,
"isSlot": false,
"src": "216:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 471,
"isOffset": false,
"isSlot": false,
"src": "202:4:5",
"valueSize": 1
}
}
],
"id": 473,
"nodeType": "InlineAssembly",
"operations": "{\n data := sload(position)\n}",
"src": "191:42:5"
}
]
},
"documentation": null,
"id": 475,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getStorageBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 469,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 468,
"name": "position",
"nodeType": "VariableDeclaration",
"scope": 475,
"src": "129:16:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 467,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "129:7:5",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "128:18:5"
},
"payable": false,
"returnParameters": {
"id": 472,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 471,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 475,
"src": "170:9:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 470,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "170:4:5",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "169:11:5"
},
"scope": 539,
"src": "105:128:5",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 483,
"nodeType": "Block",
"src": "321:52:5",
"statements": [
{
"externalReferences": [
{
"position": {
"declaration": 477,
"isOffset": false,
"isSlot": false,
"src": "356:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 480,
"isOffset": false,
"isSlot": false,
"src": "342:4:5",
"valueSize": 1
}
}
],
"id": 482,
"nodeType": "InlineAssembly",
"operations": "{\n data := sload(position)\n}",
"src": "331:42:5"
}
]
},
"documentation": null,
"id": 484,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getStorageAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 478,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 477,
"name": "position",
"nodeType": "VariableDeclaration",
"scope": 484,
"src": "266:16:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 476,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "266:7:5",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "265:18:5"
},
"payable": false,
"returnParameters": {
"id": 481,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 480,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 484,
"src": "307:12:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 479,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "307:7:5",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "306:14:5"
},
"scope": 539,
"src": "239:134:5",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 492,
"nodeType": "Block",
"src": "461:52:5",
"statements": [
{
"externalReferences": [
{
"position": {
"declaration": 486,
"isOffset": false,
"isSlot": false,
"src": "496:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 489,
"isOffset": false,
"isSlot": false,
"src": "482:4:5",
"valueSize": 1
}
}
],
"id": 491,
"nodeType": "InlineAssembly",
"operations": "{\n data := sload(position)\n}",
"src": "471:42:5"
}
]
},
"documentation": null,
"id": 493,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getStorageBytes32",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 487,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 486,
"name": "position",
"nodeType": "VariableDeclaration",
"scope": 493,
"src": "406:16:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 485,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "406:7:5",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "405:18:5"
},
"payable": false,
"returnParameters": {
"id": 490,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 489,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 493,
"src": "447:12:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 488,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "447:7:5",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "446:14:5"
},
"scope": 539,
"src": "379:134:5",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 501,
"nodeType": "Block",
"src": "601:52:5",
"statements": [
{
"externalReferences": [
{
"position": {
"declaration": 495,
"isOffset": false,
"isSlot": false,
"src": "636:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 498,
"isOffset": false,
"isSlot": false,
"src": "622:4:5",
"valueSize": 1
}
}
],
"id": 500,
"nodeType": "InlineAssembly",
"operations": "{\n data := sload(position)\n}",
"src": "611:42:5"
}
]
},
"documentation": null,
"id": 502,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getStorageUint256",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 496,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 495,
"name": "position",
"nodeType": "VariableDeclaration",
"scope": 502,
"src": "546:16:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 494,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "546:7:5",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "545:18:5"
},
"payable": false,
"returnParameters": {
"id": 499,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 498,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 502,
"src": "587:12:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 497,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "587:7:5",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "586:14:5"
},
"scope": 539,
"src": "519:134:5",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 510,
"nodeType": "Block",
"src": "721:51:5",
"statements": [
{
"externalReferences": [
{
"position": {
"declaration": 504,
"isOffset": false,
"isSlot": false,
"src": "749:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 506,
"isOffset": false,
"isSlot": false,
"src": "759:4:5",
"valueSize": 1
}
}
],
"id": 509,
"nodeType": "InlineAssembly",
"operations": "{\n sstore(position, data)\n}",
"src": "731:41:5"
}
]
},
"documentation": null,
"id": 511,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "setStorageBool",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 507,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 504,
"name": "position",
"nodeType": "VariableDeclaration",
"scope": 511,
"src": "683:16:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 503,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "683:7:5",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 506,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 511,
"src": "701:9:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 505,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "701:4:5",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "682:29:5"
},
"payable": false,
"returnParameters": {
"id": 508,
"nodeType": "ParameterList",
"parameters": [],
"src": "721:0:5"
},
"scope": 539,
"src": "659:113:5",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 519,
"nodeType": "Block",
"src": "846:51:5",
"statements": [
{
"externalReferences": [
{
"position": {
"declaration": 513,
"isOffset": false,
"isSlot": false,
"src": "874:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 515,
"isOffset": false,
"isSlot": false,
"src": "884:4:5",
"valueSize": 1
}
}
],
"id": 518,
"nodeType": "InlineAssembly",
"operations": "{\n sstore(position, data)\n}",
"src": "856:41:5"
}
]
},
"documentation": null,
"id": 520,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "setStorageAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 516,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 513,
"name": "position",
"nodeType": "VariableDeclaration",
"scope": 520,
"src": "805:16:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 512,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "805:7:5",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 515,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 520,
"src": "823:12:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 514,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "823:7:5",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "804:32:5"
},
"payable": false,
"returnParameters": {
"id": 517,
"nodeType": "ParameterList",
"parameters": [],
"src": "846:0:5"
},
"scope": 539,
"src": "778:119:5",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 528,
"nodeType": "Block",
"src": "971:51:5",
"statements": [
{
"externalReferences": [
{
"position": {
"declaration": 522,
"isOffset": false,
"isSlot": false,
"src": "999:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 524,
"isOffset": false,
"isSlot": false,
"src": "1009:4:5",
"valueSize": 1
}
}
],
"id": 527,
"nodeType": "InlineAssembly",
"operations": "{\n sstore(position, data)\n}",
"src": "981:41:5"
}
]
},
"documentation": null,
"id": 529,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "setStorageBytes32",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 525,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 522,
"name": "position",
"nodeType": "VariableDeclaration",
"scope": 529,
"src": "930:16:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 521,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "930:7:5",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 524,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 529,
"src": "948:12:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 523,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "948:7:5",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "929:32:5"
},
"payable": false,
"returnParameters": {
"id": 526,
"nodeType": "ParameterList",
"parameters": [],
"src": "971:0:5"
},
"scope": 539,
"src": "903:119:5",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 537,
"nodeType": "Block",
"src": "1096:51:5",
"statements": [
{
"externalReferences": [
{
"position": {
"declaration": 531,
"isOffset": false,
"isSlot": false,
"src": "1124:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 533,
"isOffset": false,
"isSlot": false,
"src": "1134:4:5",
"valueSize": 1
}
}
],
"id": 536,
"nodeType": "InlineAssembly",
"operations": "{\n sstore(position, data)\n}",
"src": "1106:41:5"
}
]
},
"documentation": null,
"id": 538,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "setStorageUint256",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 534,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 531,
"name": "position",
"nodeType": "VariableDeclaration",
"scope": 538,
"src": "1055:16:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 530,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1055:7:5",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 533,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 538,
"src": "1073:12:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 532,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1073:7:5",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1054:32:5"
},
"payable": false,
"returnParameters": {
"id": 535,
"nodeType": "ParameterList",
"parameters": [],
"src": "1096:0:5"
},
"scope": 539,
"src": "1028:119:5",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 540,
"src": "71:1078:5"
}
],
"src": "44:1106:5"
},
"legacyAST": {
"attributes": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/UnstructuredStorage.sol",
"exportedSymbols": {
"UnstructuredStorage": [
539
]
}
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"^",
"0.4",
".24"
]
},
"id": 466,
"name": "PragmaDirective",
"src": "44:24:5"
},
{
"attributes": {
"baseContracts": [
null
],
"contractDependencies": [
null
],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"linearizedBaseContracts": [
539
],
"name": "UnstructuredStorage",
"scope": 540
},
"children": [
{
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getStorageBool",
"payable": false,
"scope": 539,
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "position",
"scope": 475,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 467,
"name": "ElementaryTypeName",
"src": "129:7:5"
}
],
"id": 468,
"name": "VariableDeclaration",
"src": "129:16:5"
}
],
"id": 469,
"name": "ParameterList",
"src": "128:18:5"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "data",
"scope": 475,
"stateVariable": false,
"storageLocation": "default",
"type": "bool",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bool",
"type": "bool"
},
"id": 470,
"name": "ElementaryTypeName",
"src": "170:4:5"
}
],
"id": 471,
"name": "VariableDeclaration",
"src": "170:9:5"
}
],
"id": 472,
"name": "ParameterList",
"src": "169:11:5"
},
{
"children": [
{
"attributes": {
"externalReferences": [
{
"position": {
"declaration": 468,
"isOffset": false,
"isSlot": false,
"src": "216:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 471,
"isOffset": false,
"isSlot": false,
"src": "202:4:5",
"valueSize": 1
}
}
],
"operations": "{\n data := sload(position)\n}"
},
"children": [],
"id": 473,
"name": "InlineAssembly",
"src": "191:42:5"
}
],
"id": 474,
"name": "Block",
"src": "181:52:5"
}
],
"id": 475,
"name": "FunctionDefinition",
"src": "105:128:5"
},
{
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getStorageAddress",
"payable": false,
"scope": 539,
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "position",
"scope": 484,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 476,
"name": "ElementaryTypeName",
"src": "266:7:5"
}
],
"id": 477,
"name": "VariableDeclaration",
"src": "266:16:5"
}
],
"id": 478,
"name": "ParameterList",
"src": "265:18:5"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "data",
"scope": 484,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"type": "address"
},
"id": 479,
"name": "ElementaryTypeName",
"src": "307:7:5"
}
],
"id": 480,
"name": "VariableDeclaration",
"src": "307:12:5"
}
],
"id": 481,
"name": "ParameterList",
"src": "306:14:5"
},
{
"children": [
{
"attributes": {
"externalReferences": [
{
"position": {
"declaration": 477,
"isOffset": false,
"isSlot": false,
"src": "356:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 480,
"isOffset": false,
"isSlot": false,
"src": "342:4:5",
"valueSize": 1
}
}
],
"operations": "{\n data := sload(position)\n}"
},
"children": [],
"id": 482,
"name": "InlineAssembly",
"src": "331:42:5"
}
],
"id": 483,
"name": "Block",
"src": "321:52:5"
}
],
"id": 484,
"name": "FunctionDefinition",
"src": "239:134:5"
},
{
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getStorageBytes32",
"payable": false,
"scope": 539,
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "position",
"scope": 493,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 485,
"name": "ElementaryTypeName",
"src": "406:7:5"
}
],
"id": 486,
"name": "VariableDeclaration",
"src": "406:16:5"
}
],
"id": 487,
"name": "ParameterList",
"src": "405:18:5"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "data",
"scope": 493,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 488,
"name": "ElementaryTypeName",
"src": "447:7:5"
}
],
"id": 489,
"name": "VariableDeclaration",
"src": "447:12:5"
}
],
"id": 490,
"name": "ParameterList",
"src": "446:14:5"
},
{
"children": [
{
"attributes": {
"externalReferences": [
{
"position": {
"declaration": 486,
"isOffset": false,
"isSlot": false,
"src": "496:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 489,
"isOffset": false,
"isSlot": false,
"src": "482:4:5",
"valueSize": 1
}
}
],
"operations": "{\n data := sload(position)\n}"
},
"children": [],
"id": 491,
"name": "InlineAssembly",
"src": "471:42:5"
}
],
"id": 492,
"name": "Block",
"src": "461:52:5"
}
],
"id": 493,
"name": "FunctionDefinition",
"src": "379:134:5"
},
{
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getStorageUint256",
"payable": false,
"scope": 539,
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "position",
"scope": 502,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 494,
"name": "ElementaryTypeName",
"src": "546:7:5"
}
],
"id": 495,
"name": "VariableDeclaration",
"src": "546:16:5"
}
],
"id": 496,
"name": "ParameterList",
"src": "545:18:5"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "data",
"scope": 502,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 497,
"name": "ElementaryTypeName",
"src": "587:7:5"
}
],
"id": 498,
"name": "VariableDeclaration",
"src": "587:12:5"
}
],
"id": 499,
"name": "ParameterList",
"src": "586:14:5"
},
{
"children": [
{
"attributes": {
"externalReferences": [
{
"position": {
"declaration": 495,
"isOffset": false,
"isSlot": false,
"src": "636:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 498,
"isOffset": false,
"isSlot": false,
"src": "622:4:5",
"valueSize": 1
}
}
],
"operations": "{\n data := sload(position)\n}"
},
"children": [],
"id": 500,
"name": "InlineAssembly",
"src": "611:42:5"
}
],
"id": 501,
"name": "Block",
"src": "601:52:5"
}
],
"id": 502,
"name": "FunctionDefinition",
"src": "519:134:5"
},
{
"attributes": {
"constant": false,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "setStorageBool",
"payable": false,
"scope": 539,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "position",
"scope": 511,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 503,
"name": "ElementaryTypeName",
"src": "683:7:5"
}
],
"id": 504,
"name": "VariableDeclaration",
"src": "683:16:5"
},
{
"attributes": {
"constant": false,
"name": "data",
"scope": 511,
"stateVariable": false,
"storageLocation": "default",
"type": "bool",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bool",
"type": "bool"
},
"id": 505,
"name": "ElementaryTypeName",
"src": "701:4:5"
}
],
"id": 506,
"name": "VariableDeclaration",
"src": "701:9:5"
}
],
"id": 507,
"name": "ParameterList",
"src": "682:29:5"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 508,
"name": "ParameterList",
"src": "721:0:5"
},
{
"children": [
{
"attributes": {
"externalReferences": [
{
"position": {
"declaration": 504,
"isOffset": false,
"isSlot": false,
"src": "749:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 506,
"isOffset": false,
"isSlot": false,
"src": "759:4:5",
"valueSize": 1
}
}
],
"operations": "{\n sstore(position, data)\n}"
},
"children": [],
"id": 509,
"name": "InlineAssembly",
"src": "731:41:5"
}
],
"id": 510,
"name": "Block",
"src": "721:51:5"
}
],
"id": 511,
"name": "FunctionDefinition",
"src": "659:113:5"
},
{
"attributes": {
"constant": false,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "setStorageAddress",
"payable": false,
"scope": 539,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "position",
"scope": 520,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 512,
"name": "ElementaryTypeName",
"src": "805:7:5"
}
],
"id": 513,
"name": "VariableDeclaration",
"src": "805:16:5"
},
{
"attributes": {
"constant": false,
"name": "data",
"scope": 520,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"type": "address"
},
"id": 514,
"name": "ElementaryTypeName",
"src": "823:7:5"
}
],
"id": 515,
"name": "VariableDeclaration",
"src": "823:12:5"
}
],
"id": 516,
"name": "ParameterList",
"src": "804:32:5"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 517,
"name": "ParameterList",
"src": "846:0:5"
},
{
"children": [
{
"attributes": {
"externalReferences": [
{
"position": {
"declaration": 513,
"isOffset": false,
"isSlot": false,
"src": "874:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 515,
"isOffset": false,
"isSlot": false,
"src": "884:4:5",
"valueSize": 1
}
}
],
"operations": "{\n sstore(position, data)\n}"
},
"children": [],
"id": 518,
"name": "InlineAssembly",
"src": "856:41:5"
}
],
"id": 519,
"name": "Block",
"src": "846:51:5"
}
],
"id": 520,
"name": "FunctionDefinition",
"src": "778:119:5"
},
{
"attributes": {
"constant": false,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "setStorageBytes32",
"payable": false,
"scope": 539,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "position",
"scope": 529,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 521,
"name": "ElementaryTypeName",
"src": "930:7:5"
}
],
"id": 522,
"name": "VariableDeclaration",
"src": "930:16:5"
},
{
"attributes": {
"constant": false,
"name": "data",
"scope": 529,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 523,
"name": "ElementaryTypeName",
"src": "948:7:5"
}
],
"id": 524,
"name": "VariableDeclaration",
"src": "948:12:5"
}
],
"id": 525,
"name": "ParameterList",
"src": "929:32:5"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 526,
"name": "ParameterList",
"src": "971:0:5"
},
{
"children": [
{
"attributes": {
"externalReferences": [
{
"position": {
"declaration": 522,
"isOffset": false,
"isSlot": false,
"src": "999:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 524,
"isOffset": false,
"isSlot": false,
"src": "1009:4:5",
"valueSize": 1
}
}
],
"operations": "{\n sstore(position, data)\n}"
},
"children": [],
"id": 527,
"name": "InlineAssembly",
"src": "981:41:5"
}
],
"id": 528,
"name": "Block",
"src": "971:51:5"
}
],
"id": 529,
"name": "FunctionDefinition",
"src": "903:119:5"
},
{
"attributes": {
"constant": false,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "setStorageUint256",
"payable": false,
"scope": 539,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "position",
"scope": 538,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 530,
"name": "ElementaryTypeName",
"src": "1055:7:5"
}
],
"id": 531,
"name": "VariableDeclaration",
"src": "1055:16:5"
},
{
"attributes": {
"constant": false,
"name": "data",
"scope": 538,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 532,
"name": "ElementaryTypeName",
"src": "1073:7:5"
}
],
"id": 533,
"name": "VariableDeclaration",
"src": "1073:12:5"
}
],
"id": 534,
"name": "ParameterList",
"src": "1054:32:5"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 535,
"name": "ParameterList",
"src": "1096:0:5"
},
{
"children": [
{
"attributes": {
"externalReferences": [
{
"position": {
"declaration": 531,
"isOffset": false,
"isSlot": false,
"src": "1124:8:5",
"valueSize": 1
}
},
{
"data": {
"declaration": 533,
"isOffset": false,
"isSlot": false,
"src": "1134:4:5",
"valueSize": 1
}
}
],
"operations": "{\n sstore(position, data)\n}"
},
"children": [],
"id": 536,
"name": "InlineAssembly",
"src": "1106:41:5"
}
],
"id": 537,
"name": "Block",
"src": "1096:51:5"
}
],
"id": 538,
"name": "FunctionDefinition",
"src": "1028:119:5"
}
],
"id": 539,
"name": "ContractDefinition",
"src": "71:1078:5"
}
],
"id": 540,
"name": "SourceUnit",
"src": "44:1106:5"
},
"id": 5,
"source": "/*\n * SPDX-License-Identitifer: MIT\n */\n\npragma solidity ^0.4.24;\n\n\nlibrary UnstructuredStorage {\n function getStorageBool(bytes32 position) internal view returns (bool data) {\n assembly { data := sload(position) }\n }\n\n function getStorageAddress(bytes32 position) internal view returns (address data) {\n assembly { data := sload(position) }\n }\n\n function getStorageBytes32(bytes32 position) internal view returns (bytes32 data) {\n assembly { data := sload(position) }\n }\n\n function getStorageUint256(bytes32 position) internal view returns (uint256 data) {\n assembly { data := sload(position) }\n }\n\n function setStorageBool(bytes32 position, bool data) internal {\n assembly { sstore(position, data) }\n }\n\n function setStorageAddress(bytes32 position, address data) internal {\n assembly { sstore(position, data) }\n }\n\n function setStorageBytes32(bytes32 position, bytes32 data) internal {\n assembly { sstore(position, data) }\n }\n\n function setStorageUint256(bytes32 position, uint256 data) internal {\n assembly { sstore(position, data) }\n }\n}\n"
},
"/src/external-vcs/github/aragonOS/contracts/evmscript/IEVMScriptExecutor.sol": {
"contracts": [
{
"contractName": "IEVMScriptExecutor",
"bytecode": "0x",
"deployedBytecode": "0x",
"sourceMap": "",
"deployedSourceMap": ""
}
],
"ast": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/IEVMScriptExecutor.sol",
"exportedSymbols": {
"IEVMScriptExecutor": [
286
]
},
"id": 287,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 268,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "44:24:6"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": null,
"fullyImplemented": false,
"id": 286,
"linearizedBaseContracts": [
286
],
"name": "IEVMScriptExecutor",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"id": 280,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "execScript",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 276,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 270,
"name": "script",
"nodeType": "VariableDeclaration",
"scope": 280,
"src": "126:12:6",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 269,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "126:5:6",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 272,
"name": "input",
"nodeType": "VariableDeclaration",
"scope": 280,
"src": "140:11:6",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 271,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "140:5:6",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 275,
"name": "blacklist",
"nodeType": "VariableDeclaration",
"scope": 280,
"src": "153:19:6",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 273,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "153:7:6",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 274,
"length": null,
"nodeType": "ArrayTypeName",
"src": "153:9:6",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "125:48:6"
},
"payable": false,
"returnParameters": {
"id": 279,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 278,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 280,
"src": "192:5:6",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 277,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "192:5:6",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "191:7:6"
},
"scope": 286,
"src": "106:93:6",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"id": 285,
"implemented": false,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "executorType",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 281,
"nodeType": "ParameterList",
"parameters": [],
"src": "225:2:6"
},
"payable": false,
"returnParameters": {
"id": 284,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 283,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 285,
"src": "251:7:6",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 282,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "251:7:6",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "250:9:6"
},
"scope": 286,
"src": "204:56:6",
"stateMutability": "pure",
"superFunction": null,
"visibility": "external"
}
],
"scope": 287,
"src": "71:191:6"
}
],
"src": "44:219:6"
},
"legacyAST": {
"attributes": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/IEVMScriptExecutor.sol",
"exportedSymbols": {
"IEVMScriptExecutor": [
286
]
}
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"^",
"0.4",
".24"
]
},
"id": 268,
"name": "PragmaDirective",
"src": "44:24:6"
},
{
"attributes": {
"baseContracts": [
null
],
"contractDependencies": [
null
],
"contractKind": "interface",
"documentation": null,
"fullyImplemented": false,
"linearizedBaseContracts": [
286
],
"name": "IEVMScriptExecutor",
"scope": 287
},
"children": [
{
"attributes": {
"body": null,
"constant": false,
"documentation": null,
"implemented": false,
"isConstructor": false,
"modifiers": [
null
],
"name": "execScript",
"payable": false,
"scope": 286,
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "script",
"scope": 280,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 269,
"name": "ElementaryTypeName",
"src": "126:5:6"
}
],
"id": 270,
"name": "VariableDeclaration",
"src": "126:12:6"
},
{
"attributes": {
"constant": false,
"name": "input",
"scope": 280,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 271,
"name": "ElementaryTypeName",
"src": "140:5:6"
}
],
"id": 272,
"name": "VariableDeclaration",
"src": "140:11:6"
},
{
"attributes": {
"constant": false,
"name": "blacklist",
"scope": 280,
"stateVariable": false,
"storageLocation": "default",
"type": "address[]",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"length": null,
"type": "address[]"
},
"children": [
{
"attributes": {
"name": "address",
"type": "address"
},
"id": 273,
"name": "ElementaryTypeName",
"src": "153:7:6"
}
],
"id": 274,
"name": "ArrayTypeName",
"src": "153:9:6"
}
],
"id": 275,
"name": "VariableDeclaration",
"src": "153:19:6"
}
],
"id": 276,
"name": "ParameterList",
"src": "125:48:6"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 280,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 277,
"name": "ElementaryTypeName",
"src": "192:5:6"
}
],
"id": 278,
"name": "VariableDeclaration",
"src": "192:5:6"
}
],
"id": 279,
"name": "ParameterList",
"src": "191:7:6"
}
],
"id": 280,
"name": "FunctionDefinition",
"src": "106:93:6"
},
{
"attributes": {
"body": null,
"constant": true,
"documentation": null,
"implemented": false,
"isConstructor": false,
"modifiers": [
null
],
"name": "executorType",
"payable": false,
"scope": 286,
"stateMutability": "pure",
"superFunction": null,
"visibility": "external"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 281,
"name": "ParameterList",
"src": "225:2:6"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 285,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 282,
"name": "ElementaryTypeName",
"src": "251:7:6"
}
],
"id": 283,
"name": "VariableDeclaration",
"src": "251:7:6"
}
],
"id": 284,
"name": "ParameterList",
"src": "250:9:6"
}
],
"id": 285,
"name": "FunctionDefinition",
"src": "204:56:6"
}
],
"id": 286,
"name": "ContractDefinition",
"src": "71:191:6"
}
],
"id": 287,
"name": "SourceUnit",
"src": "44:219:6"
},
"id": 6,
"source": "/*\n * SPDX-License-Identitifer: MIT\n */\n\npragma solidity ^0.4.24;\n\n\ninterface IEVMScriptExecutor {\n function execScript(bytes script, bytes input, address[] blacklist) external returns (bytes);\n function executorType() external pure returns (bytes32);\n}\n"
},
"/src/external-vcs/github/aragonOS/contracts/evmscript/ScriptHelpers.sol": {
"contracts": [
{
"contractName": "ScriptHelpers",
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820db850d7d69340e68992741270e0f1d4ea2170b624bb699ba90f30001f468bd3b0029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820db850d7d69340e68992741270e0f1d4ea2170b624bb699ba90f30001f468bd3b0029",
"sourceMap": "71:1409:7:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24",
"deployedSourceMap": "71:1409:7:-;;;;;;;;"
}
],
"ast": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/ScriptHelpers.sol",
"exportedSymbols": {
"ScriptHelpers": [
241
]
},
"id": 242,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 151,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "44:24:7"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 241,
"linearizedBaseContracts": [
241
],
"name": "ScriptHelpers",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 163,
"nodeType": "Block",
"src": "164:44:7",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 159,
"name": "_script",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 153,
"src": "190:7:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"argumentTypes": null,
"hexValue": "30",
"id": 160,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "199:1:7",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 158,
"name": "uint32At",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 211,
"src": "181:8:7",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$",
"typeString": "function (bytes memory,uint256) pure returns (uint32)"
}
},
"id": 161,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "181:20:7",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"functionReturnParameters": 157,
"id": 162,
"nodeType": "Return",
"src": "174:27:7"
}
]
},
"documentation": null,
"id": 164,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getSpecId",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 154,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 153,
"name": "_script",
"nodeType": "VariableDeclaration",
"scope": 164,
"src": "118:13:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 152,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "118:5:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "117:15:7"
},
"payable": false,
"returnParameters": {
"id": 157,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 156,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 164,
"src": "156:6:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 155,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "156:6:7",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "155:8:7"
},
"scope": 241,
"src": "99:109:7",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 174,
"nodeType": "Block",
"src": "304:98:7",
"statements": [
{
"externalReferences": [
{
"_data": {
"declaration": 166,
"isOffset": false,
"isSlot": false,
"src": "357:5:7",
"valueSize": 1
}
},
{
"_location": {
"declaration": 168,
"isOffset": false,
"isSlot": false,
"src": "374:9:7",
"valueSize": 1
}
},
{
"result": {
"declaration": 171,
"isOffset": false,
"isSlot": false,
"src": "337:6:7",
"valueSize": 1
}
}
],
"id": 173,
"nodeType": "InlineAssembly",
"operations": "{\n result := mload(add(_data, add(0x20, _location)))\n}",
"src": "314:88:7"
}
]
},
"documentation": null,
"id": 175,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "uint256At",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 169,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 166,
"name": "_data",
"nodeType": "VariableDeclaration",
"scope": 175,
"src": "233:11:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 165,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "233:5:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 168,
"name": "_location",
"nodeType": "VariableDeclaration",
"scope": 175,
"src": "246:17:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 167,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "246:7:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "232:32:7"
},
"payable": false,
"returnParameters": {
"id": 172,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 171,
"name": "result",
"nodeType": "VariableDeclaration",
"scope": 175,
"src": "288:14:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 170,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "288:7:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "287:16:7"
},
"scope": 241,
"src": "214:188:7",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 192,
"nodeType": "Block",
"src": "498:235:7",
"statements": [
{
"assignments": [
185
],
"declarations": [
{
"constant": false,
"id": 185,
"name": "word",
"nodeType": "VariableDeclaration",
"scope": 193,
"src": "508:12:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 184,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "508:7:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 190,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 187,
"name": "_data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 177,
"src": "533:5:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"argumentTypes": null,
"id": 188,
"name": "_location",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 179,
"src": "540:9:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 186,
"name": "uint256At",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 175,
"src": "523:9:7",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (bytes memory,uint256) pure returns (uint256)"
}
},
"id": 189,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "523:27:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "508:42:7"
},
{
"externalReferences": [
{
"result": {
"declaration": 182,
"isOffset": false,
"isSlot": false,
"src": "584:6:7",
"valueSize": 1
}
},
{
"word": {
"declaration": 185,
"isOffset": false,
"isSlot": false,
"src": "602:4:7",
"valueSize": 1
}
}
],
"id": 191,
"nodeType": "InlineAssembly",
"operations": "{\n result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), 0x1000000000000000000000000)\n}",
"src": "561:172:7"
}
]
},
"documentation": null,
"id": 193,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "addressAt",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 180,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 177,
"name": "_data",
"nodeType": "VariableDeclaration",
"scope": 193,
"src": "427:11:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 176,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "427:5:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 179,
"name": "_location",
"nodeType": "VariableDeclaration",
"scope": 193,
"src": "440:17:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 178,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "440:7:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "426:32:7"
},
"payable": false,
"returnParameters": {
"id": 183,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 182,
"name": "result",
"nodeType": "VariableDeclaration",
"scope": 193,
"src": "482:14:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 181,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "482:7:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "481:16:7"
},
"scope": 241,
"src": "408:325:7",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 210,
"nodeType": "Block",
"src": "827:267:7",
"statements": [
{
"assignments": [
203
],
"declarations": [
{
"constant": false,
"id": 203,
"name": "word",
"nodeType": "VariableDeclaration",
"scope": 211,
"src": "837:12:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 202,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "837:7:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 208,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 205,
"name": "_data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 195,
"src": "862:5:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"argumentTypes": null,
"id": 206,
"name": "_location",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 197,
"src": "869:9:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 204,
"name": "uint256At",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 175,
"src": "852:9:7",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (bytes memory,uint256) pure returns (uint256)"
}
},
"id": 207,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "852:27:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "837:42:7"
},
{
"externalReferences": [
{
"word": {
"declaration": 203,
"isOffset": false,
"isSlot": false,
"src": "931:4:7",
"valueSize": 1
}
},
{
"result": {
"declaration": 200,
"isOffset": false,
"isSlot": false,
"src": "913:6:7",
"valueSize": 1
}
}
],
"id": 209,
"nodeType": "InlineAssembly",
"operations": "{\n result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), 0x100000000000000000000000000000000000000000000000000000000)\n}",
"src": "890:204:7"
}
]
},
"documentation": null,
"id": 211,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "uint32At",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 198,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 195,
"name": "_data",
"nodeType": "VariableDeclaration",
"scope": 211,
"src": "757:11:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 194,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "757:5:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 197,
"name": "_location",
"nodeType": "VariableDeclaration",
"scope": 211,
"src": "770:17:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 196,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "770:7:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "756:32:7"
},
"payable": false,
"returnParameters": {
"id": 201,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 200,
"name": "result",
"nodeType": "VariableDeclaration",
"scope": 211,
"src": "812:13:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 199,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "812:6:7",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "811:15:7"
},
"scope": 241,
"src": "739:355:7",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 221,
"nodeType": "Block",
"src": "1191:91:7",
"statements": [
{
"externalReferences": [
{
"_data": {
"declaration": 213,
"isOffset": false,
"isSlot": false,
"src": "1238:5:7",
"valueSize": 1
}
},
{
"_location": {
"declaration": 215,
"isOffset": false,
"isSlot": false,
"src": "1255:9:7",
"valueSize": 1
}
},
{
"result": {
"declaration": 218,
"isOffset": false,
"isSlot": false,
"src": "1224:6:7",
"valueSize": 1
}
}
],
"id": 220,
"nodeType": "InlineAssembly",
"operations": "{\n result := add(_data, add(0x20, _location))\n}",
"src": "1201:81:7"
}
]
},
"documentation": null,
"id": 222,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "locationOf",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 216,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 213,
"name": "_data",
"nodeType": "VariableDeclaration",
"scope": 222,
"src": "1120:11:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 212,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1120:5:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 215,
"name": "_location",
"nodeType": "VariableDeclaration",
"scope": 222,
"src": "1133:17:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 214,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1133:7:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1119:32:7"
},
"payable": false,
"returnParameters": {
"id": 219,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 218,
"name": "result",
"nodeType": "VariableDeclaration",
"scope": 222,
"src": "1175:14:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 217,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1175:7:7",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1174:16:7"
},
"scope": 241,
"src": "1100:182:7",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 239,
"nodeType": "Block",
"src": "1348:130:7",
"statements": [
{
"assignments": [
230
],
"declarations": [
{
"constant": false,
"id": 230,
"name": "payload",
"nodeType": "VariableDeclaration",
"scope": 240,
"src": "1358:20:7",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 229,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1358:5:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 235,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "34",
"id": 233,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1391:1:7",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
},
"value": "4"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
}
],
"id": 232,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "1381:9:7",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_$",
"typeString": "function (uint256) pure returns (bytes memory)"
},
"typeName": {
"id": 231,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1385:5:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"id": 234,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1381:12:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1358:35:7"
},
{
"externalReferences": [
{
"_sig": {
"declaration": 224,
"isOffset": false,
"isSlot": false,
"src": "1441:4:7",
"valueSize": 1
}
},
{
"payload": {
"declaration": 230,
"isOffset": false,
"isSlot": false,
"src": "1425:7:7",
"valueSize": 1
}
}
],
"id": 236,
"nodeType": "InlineAssembly",
"operations": "{\n mstore(add(payload, 0x20), _sig)\n}",
"src": "1403:60:7"
},
{
"expression": {
"argumentTypes": null,
"id": 237,
"name": "payload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 230,
"src": "1464:7:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"functionReturnParameters": 228,
"id": 238,
"nodeType": "Return",
"src": "1457:14:7"
}
]
},
"documentation": null,
"id": 240,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "toBytes",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 225,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 224,
"name": "_sig",
"nodeType": "VariableDeclaration",
"scope": 240,
"src": "1305:11:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 223,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "1305:6:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1304:13:7"
},
"payable": false,
"returnParameters": {
"id": 228,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 227,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 240,
"src": "1341:5:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 226,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1341:5:7",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1340:7:7"
},
"scope": 241,
"src": "1288:190:7",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 242,
"src": "71:1409:7"
}
],
"src": "44:1437:7"
},
"legacyAST": {
"attributes": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/ScriptHelpers.sol",
"exportedSymbols": {
"ScriptHelpers": [
241
]
}
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"^",
"0.4",
".24"
]
},
"id": 151,
"name": "PragmaDirective",
"src": "44:24:7"
},
{
"attributes": {
"baseContracts": [
null
],
"contractDependencies": [
null
],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"linearizedBaseContracts": [
241
],
"name": "ScriptHelpers",
"scope": 242
},
"children": [
{
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "getSpecId",
"payable": false,
"scope": 241,
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "_script",
"scope": 164,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 152,
"name": "ElementaryTypeName",
"src": "118:5:7"
}
],
"id": 153,
"name": "VariableDeclaration",
"src": "118:13:7"
}
],
"id": 154,
"name": "ParameterList",
"src": "117:15:7"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 164,
"stateVariable": false,
"storageLocation": "default",
"type": "uint32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint32",
"type": "uint32"
},
"id": 155,
"name": "ElementaryTypeName",
"src": "156:6:7"
}
],
"id": 156,
"name": "VariableDeclaration",
"src": "156:6:7"
}
],
"id": 157,
"name": "ParameterList",
"src": "155:8:7"
},
{
"children": [
{
"attributes": {
"functionReturnParameters": 157
},
"children": [
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint32",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 211,
"type": "function (bytes memory,uint256) pure returns (uint32)",
"value": "uint32At"
},
"id": 158,
"name": "Identifier",
"src": "181:8:7"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 153,
"type": "bytes memory",
"value": "_script"
},
"id": 159,
"name": "Identifier",
"src": "190:7:7"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "30",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 0",
"value": "0"
},
"id": 160,
"name": "Literal",
"src": "199:1:7"
}
],
"id": 161,
"name": "FunctionCall",
"src": "181:20:7"
}
],
"id": 162,
"name": "Return",
"src": "174:27:7"
}
],
"id": 163,
"name": "Block",
"src": "164:44:7"
}
],
"id": 164,
"name": "FunctionDefinition",
"src": "99:109:7"
},
{
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "uint256At",
"payable": false,
"scope": 241,
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "_data",
"scope": 175,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 165,
"name": "ElementaryTypeName",
"src": "233:5:7"
}
],
"id": 166,
"name": "VariableDeclaration",
"src": "233:11:7"
},
{
"attributes": {
"constant": false,
"name": "_location",
"scope": 175,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 167,
"name": "ElementaryTypeName",
"src": "246:7:7"
}
],
"id": 168,
"name": "VariableDeclaration",
"src": "246:17:7"
}
],
"id": 169,
"name": "ParameterList",
"src": "232:32:7"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "result",
"scope": 175,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 170,
"name": "ElementaryTypeName",
"src": "288:7:7"
}
],
"id": 171,
"name": "VariableDeclaration",
"src": "288:14:7"
}
],
"id": 172,
"name": "ParameterList",
"src": "287:16:7"
},
{
"children": [
{
"attributes": {
"externalReferences": [
{
"_data": {
"declaration": 166,
"isOffset": false,
"isSlot": false,
"src": "357:5:7",
"valueSize": 1
}
},
{
"_location": {
"declaration": 168,
"isOffset": false,
"isSlot": false,
"src": "374:9:7",
"valueSize": 1
}
},
{
"result": {
"declaration": 171,
"isOffset": false,
"isSlot": false,
"src": "337:6:7",
"valueSize": 1
}
}
],
"operations": "{\n result := mload(add(_data, add(0x20, _location)))\n}"
},
"children": [],
"id": 173,
"name": "InlineAssembly",
"src": "314:88:7"
}
],
"id": 174,
"name": "Block",
"src": "304:98:7"
}
],
"id": 175,
"name": "FunctionDefinition",
"src": "214:188:7"
},
{
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "addressAt",
"payable": false,
"scope": 241,
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "_data",
"scope": 193,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 176,
"name": "ElementaryTypeName",
"src": "427:5:7"
}
],
"id": 177,
"name": "VariableDeclaration",
"src": "427:11:7"
},
{
"attributes": {
"constant": false,
"name": "_location",
"scope": 193,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 178,
"name": "ElementaryTypeName",
"src": "440:7:7"
}
],
"id": 179,
"name": "VariableDeclaration",
"src": "440:17:7"
}
],
"id": 180,
"name": "ParameterList",
"src": "426:32:7"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "result",
"scope": 193,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"type": "address"
},
"id": 181,
"name": "ElementaryTypeName",
"src": "482:7:7"
}
],
"id": 182,
"name": "VariableDeclaration",
"src": "482:14:7"
}
],
"id": 183,
"name": "ParameterList",
"src": "481:16:7"
},
{
"children": [
{
"attributes": {
"assignments": [
185
]
},
"children": [
{
"attributes": {
"constant": false,
"name": "word",
"scope": 193,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 184,
"name": "ElementaryTypeName",
"src": "508:7:7"
}
],
"id": 185,
"name": "VariableDeclaration",
"src": "508:12:7"
},
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 175,
"type": "function (bytes memory,uint256) pure returns (uint256)",
"value": "uint256At"
},
"id": 186,
"name": "Identifier",
"src": "523:9:7"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 177,
"type": "bytes memory",
"value": "_data"
},
"id": 187,
"name": "Identifier",
"src": "533:5:7"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 179,
"type": "uint256",
"value": "_location"
},
"id": 188,
"name": "Identifier",
"src": "540:9:7"
}
],
"id": 189,
"name": "FunctionCall",
"src": "523:27:7"
}
],
"id": 190,
"name": "VariableDeclarationStatement",
"src": "508:42:7"
},
{
"attributes": {
"externalReferences": [
{
"result": {
"declaration": 182,
"isOffset": false,
"isSlot": false,
"src": "584:6:7",
"valueSize": 1
}
},
{
"word": {
"declaration": 185,
"isOffset": false,
"isSlot": false,
"src": "602:4:7",
"valueSize": 1
}
}
],
"operations": "{\n result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000), 0x1000000000000000000000000)\n}"
},
"children": [],
"id": 191,
"name": "InlineAssembly",
"src": "561:172:7"
}
],
"id": 192,
"name": "Block",
"src": "498:235:7"
}
],
"id": 193,
"name": "FunctionDefinition",
"src": "408:325:7"
},
{
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "uint32At",
"payable": false,
"scope": 241,
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "_data",
"scope": 211,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 194,
"name": "ElementaryTypeName",
"src": "757:5:7"
}
],
"id": 195,
"name": "VariableDeclaration",
"src": "757:11:7"
},
{
"attributes": {
"constant": false,
"name": "_location",
"scope": 211,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 196,
"name": "ElementaryTypeName",
"src": "770:7:7"
}
],
"id": 197,
"name": "VariableDeclaration",
"src": "770:17:7"
}
],
"id": 198,
"name": "ParameterList",
"src": "756:32:7"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "result",
"scope": 211,
"stateVariable": false,
"storageLocation": "default",
"type": "uint32",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint32",
"type": "uint32"
},
"id": 199,
"name": "ElementaryTypeName",
"src": "812:6:7"
}
],
"id": 200,
"name": "VariableDeclaration",
"src": "812:13:7"
}
],
"id": 201,
"name": "ParameterList",
"src": "811:15:7"
},
{
"children": [
{
"attributes": {
"assignments": [
203
]
},
"children": [
{
"attributes": {
"constant": false,
"name": "word",
"scope": 211,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 202,
"name": "ElementaryTypeName",
"src": "837:7:7"
}
],
"id": 203,
"name": "VariableDeclaration",
"src": "837:12:7"
},
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "uint256",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"overloadedDeclarations": [
null
],
"referencedDeclaration": 175,
"type": "function (bytes memory,uint256) pure returns (uint256)",
"value": "uint256At"
},
"id": 204,
"name": "Identifier",
"src": "852:9:7"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 195,
"type": "bytes memory",
"value": "_data"
},
"id": 205,
"name": "Identifier",
"src": "862:5:7"
},
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 197,
"type": "uint256",
"value": "_location"
},
"id": 206,
"name": "Identifier",
"src": "869:9:7"
}
],
"id": 207,
"name": "FunctionCall",
"src": "852:27:7"
}
],
"id": 208,
"name": "VariableDeclarationStatement",
"src": "837:42:7"
},
{
"attributes": {
"externalReferences": [
{
"word": {
"declaration": 203,
"isOffset": false,
"isSlot": false,
"src": "931:4:7",
"valueSize": 1
}
},
{
"result": {
"declaration": 200,
"isOffset": false,
"isSlot": false,
"src": "913:6:7",
"valueSize": 1
}
}
],
"operations": "{\n result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000), 0x100000000000000000000000000000000000000000000000000000000)\n}"
},
"children": [],
"id": 209,
"name": "InlineAssembly",
"src": "890:204:7"
}
],
"id": 210,
"name": "Block",
"src": "827:267:7"
}
],
"id": 211,
"name": "FunctionDefinition",
"src": "739:355:7"
},
{
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "locationOf",
"payable": false,
"scope": 241,
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "_data",
"scope": 222,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 212,
"name": "ElementaryTypeName",
"src": "1120:5:7"
}
],
"id": 213,
"name": "VariableDeclaration",
"src": "1120:11:7"
},
{
"attributes": {
"constant": false,
"name": "_location",
"scope": 222,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 214,
"name": "ElementaryTypeName",
"src": "1133:7:7"
}
],
"id": 215,
"name": "VariableDeclaration",
"src": "1133:17:7"
}
],
"id": 216,
"name": "ParameterList",
"src": "1119:32:7"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "result",
"scope": 222,
"stateVariable": false,
"storageLocation": "default",
"type": "uint256",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 217,
"name": "ElementaryTypeName",
"src": "1175:7:7"
}
],
"id": 218,
"name": "VariableDeclaration",
"src": "1175:14:7"
}
],
"id": 219,
"name": "ParameterList",
"src": "1174:16:7"
},
{
"children": [
{
"attributes": {
"externalReferences": [
{
"_data": {
"declaration": 213,
"isOffset": false,
"isSlot": false,
"src": "1238:5:7",
"valueSize": 1
}
},
{
"_location": {
"declaration": 215,
"isOffset": false,
"isSlot": false,
"src": "1255:9:7",
"valueSize": 1
}
},
{
"result": {
"declaration": 218,
"isOffset": false,
"isSlot": false,
"src": "1224:6:7",
"valueSize": 1
}
}
],
"operations": "{\n result := add(_data, add(0x20, _location))\n}"
},
"children": [],
"id": 220,
"name": "InlineAssembly",
"src": "1201:81:7"
}
],
"id": 221,
"name": "Block",
"src": "1191:91:7"
}
],
"id": 222,
"name": "FunctionDefinition",
"src": "1100:182:7"
},
{
"attributes": {
"constant": true,
"documentation": null,
"implemented": true,
"isConstructor": false,
"modifiers": [
null
],
"name": "toBytes",
"payable": false,
"scope": 241,
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "_sig",
"scope": 240,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes4",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes4",
"type": "bytes4"
},
"id": 223,
"name": "ElementaryTypeName",
"src": "1305:6:7"
}
],
"id": 224,
"name": "VariableDeclaration",
"src": "1305:11:7"
}
],
"id": 225,
"name": "ParameterList",
"src": "1304:13:7"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
"scope": 240,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 226,
"name": "ElementaryTypeName",
"src": "1341:5:7"
}
],
"id": 227,
"name": "VariableDeclaration",
"src": "1341:5:7"
}
],
"id": 228,
"name": "ParameterList",
"src": "1340:7:7"
},
{
"children": [
{
"attributes": {
"assignments": [
230
]
},
"children": [
{
"attributes": {
"constant": false,
"name": "payload",
"scope": 240,
"stateVariable": false,
"storageLocation": "memory",
"type": "bytes",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 229,
"name": "ElementaryTypeName",
"src": "1358:5:7"
}
],
"id": 230,
"name": "VariableDeclaration",
"src": "1358:20:7"
},
{
"attributes": {
"argumentTypes": null,
"isConstant": false,
"isLValue": false,
"isPure": true,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"type": "bytes memory",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
}
],
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"type": "function (uint256) pure returns (bytes memory)"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 231,
"name": "ElementaryTypeName",
"src": "1385:5:7"
}
],
"id": 232,
"name": "NewExpression",
"src": "1381:9:7"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "34",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 4",
"value": "4"
},
"id": 233,
"name": "Literal",
"src": "1391:1:7"
}
],
"id": 234,
"name": "FunctionCall",
"src": "1381:12:7"
}
],
"id": 235,
"name": "VariableDeclarationStatement",
"src": "1358:35:7"
},
{
"attributes": {
"externalReferences": [
{
"_sig": {
"declaration": 224,
"isOffset": false,
"isSlot": false,
"src": "1441:4:7",
"valueSize": 1
}
},
{
"payload": {
"declaration": 230,
"isOffset": false,
"isSlot": false,
"src": "1425:7:7",
"valueSize": 1
}
}
],
"operations": "{\n mstore(add(payload, 0x20), _sig)\n}"
},
"children": [],
"id": 236,
"name": "InlineAssembly",
"src": "1403:60:7"
},
{
"attributes": {
"functionReturnParameters": 228
},
"children": [
{
"attributes": {
"argumentTypes": null,
"overloadedDeclarations": [
null
],
"referencedDeclaration": 230,
"type": "bytes memory",
"value": "payload"
},
"id": 237,
"name": "Identifier",
"src": "1464:7:7"
}
],
"id": 238,
"name": "Return",
"src": "1457:14:7"
}
],
"id": 239,
"name": "Block",
"src": "1348:130:7"
}
],
"id": 240,
"name": "FunctionDefinition",
"src": "1288:190:7"
}
],
"id": 241,
"name": "ContractDefinition",
"src": "71:1409:7"
}
],
"id": 242,
"name": "SourceUnit",
"src": "44:1437:7"
},
"id": 7,
"source": "/*\n * SPDX-License-Identitifer: MIT\n */\n\npragma solidity ^0.4.24;\n\n\nlibrary ScriptHelpers {\n function getSpecId(bytes _script) internal pure returns (uint32) {\n return uint32At(_script, 0);\n }\n\n function uint256At(bytes _data, uint256 _location) internal pure returns (uint256 result) {\n assembly {\n result := mload(add(_data, add(0x20, _location)))\n }\n }\n\n function addressAt(bytes _data, uint256 _location) internal pure returns (address result) {\n uint256 word = uint256At(_data, _location);\n\n assembly {\n result := div(and(word, 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000),\n 0x1000000000000000000000000)\n }\n }\n\n function uint32At(bytes _data, uint256 _location) internal pure returns (uint32 result) {\n uint256 word = uint256At(_data, _location);\n\n assembly {\n result := div(and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000),\n 0x100000000000000000000000000000000000000000000000000000000)\n }\n }\n\n function locationOf(bytes _data, uint256 _location) internal pure returns (uint256 result) {\n assembly {\n result := add(_data, add(0x20, _location))\n }\n }\n\n function toBytes(bytes4 _sig) internal pure returns (bytes) {\n bytes memory payload = new bytes(4);\n assembly { mstore(add(payload, 0x20), _sig) }\n return payload;\n }\n}\n"
},
"/src/external-vcs/github/aragonOS/contracts/evmscript/executors/BaseEVMScriptExecutor.sol": {
"contracts": [
{
"contractName": "BaseEVMScriptExecutor",
"bytecode": "0x",
"deployedBytecode": "0x",
"sourceMap": "",
"deployedSourceMap": ""
}
],
"ast": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/executors/BaseEVMScriptExecutor.sol",
"exportedSymbols": {
"BaseEVMScriptExecutor": [
253
]
},
"id": 254,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 243,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "44:24:8"
},
{
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Autopetrified.sol",
"file": "../../common/Autopetrified.sol",
"id": 244,
"nodeType": "ImportDirective",
"scope": 254,
"sourceUnit": 267,
"src": "70:40:8",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/IEVMScriptExecutor.sol",
"file": "../IEVMScriptExecutor.sol",
"id": 245,
"nodeType": "ImportDirective",
"scope": 254,
"sourceUnit": 287,
"src": "111:35:8",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 246,
"name": "IEVMScriptExecutor",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 286,
"src": "183:18:8",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IEVMScriptExecutor_$286",
"typeString": "contract IEVMScriptExecutor"
}
},
"id": 247,
"nodeType": "InheritanceSpecifier",
"src": "183:18:8"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 248,
"name": "Autopetrified",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 266,
"src": "203:13:8",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Autopetrified_$266",
"typeString": "contract Autopetrified"
}
},
"id": 249,
"nodeType": "InheritanceSpecifier",
"src": "203:13:8"
}
],
"contractDependencies": [
266,
286,
319,
417,
464
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 253,
"linearizedBaseContracts": [
253,
266,
319,
417,
464,
286
],
"name": "BaseEVMScriptExecutor",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
"id": 252,
"name": "SCRIPT_START_LOCATION",
"nodeType": "VariableDeclaration",
"scope": 253,
"src": "223:51:8",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 250,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "223:7:8",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"argumentTypes": null,
"hexValue": "34",
"id": 251,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "273:1:8",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
},
"value": "4"
},
"visibility": "internal"
}
],
"scope": 254,
"src": "149:128:8"
}
],
"src": "44:234:8"
},
"legacyAST": {
"attributes": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/executors/BaseEVMScriptExecutor.sol",
"exportedSymbols": {
"BaseEVMScriptExecutor": [
253
]
}
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"^",
"0.4",
".24"
]
},
"id": 243,
"name": "PragmaDirective",
"src": "44:24:8"
},
{
"attributes": {
"SourceUnit": 267,
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/common/Autopetrified.sol",
"file": "../../common/Autopetrified.sol",
"scope": 254,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 244,
"name": "ImportDirective",
"src": "70:40:8"
},
{
"attributes": {
"SourceUnit": 287,
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/IEVMScriptExecutor.sol",
"file": "../IEVMScriptExecutor.sol",
"scope": 254,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 245,
"name": "ImportDirective",
"src": "111:35:8"
},
{
"attributes": {
"contractDependencies": [
266,
286,
319,
417,
464
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"linearizedBaseContracts": [
253,
266,
319,
417,
464,
286
],
"name": "BaseEVMScriptExecutor",
"scope": 254
},
"children": [
{
"attributes": {
"arguments": null
},
"children": [
{
"attributes": {
"contractScope": null,
"name": "IEVMScriptExecutor",
"referencedDeclaration": 286,
"type": "contract IEVMScriptExecutor"
},
"id": 246,
"name": "UserDefinedTypeName",
"src": "183:18:8"
}
],
"id": 247,
"name": "InheritanceSpecifier",
"src": "183:18:8"
},
{
"attributes": {
"arguments": null
},
"children": [
{
"attributes": {
"contractScope": null,
"name": "Autopetrified",
"referencedDeclaration": 266,
"type": "contract Autopetrified"
},
"id": 248,
"name": "UserDefinedTypeName",
"src": "203:13:8"
}
],
"id": 249,
"name": "InheritanceSpecifier",
"src": "203:13:8"
},
{
"attributes": {
"constant": true,
"name": "SCRIPT_START_LOCATION",
"scope": 253,
"stateVariable": true,
"storageLocation": "default",
"type": "uint256",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "uint256",
"type": "uint256"
},
"id": 250,
"name": "ElementaryTypeName",
"src": "223:7:8"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "34",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 4",
"value": "4"
},
"id": 251,
"name": "Literal",
"src": "273:1:8"
}
],
"id": 252,
"name": "VariableDeclaration",
"src": "223:51:8"
}
],
"id": 253,
"name": "ContractDefinition",
"src": "149:128:8"
}
],
"id": 254,
"name": "SourceUnit",
"src": "44:234:8"
},
"id": 8,
"source": "/*\n * SPDX-License-Identitifer: MIT\n */\n\npragma solidity ^0.4.24;\n\nimport \"../../common/Autopetrified.sol\";\nimport \"../IEVMScriptExecutor.sol\";\n\n\ncontract BaseEVMScriptExecutor is IEVMScriptExecutor, Autopetrified {\n uint256 internal constant SCRIPT_START_LOCATION = 4;\n}\n"
},
"/src/external-vcs/github/aragonOS/contracts/evmscript/executors/CallsScript.sol": {
"contracts": [
{
"contractName": "CallsScript",
"bytecode": "0x608060405261001b610020640100000000026401000000009004565b6102f2565b6000610039610153640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515610118576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156100dd5780820151818401526020810190506100c2565b50505050905090810190601f16801561010a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506101517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61019d640100000000026401000000009004565b565b60006101987febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166102e06401000000000261092f176401000000009004565b905090565b60006101b6610153640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515610295576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561025a57808201518184015260208101905061023f565b50505050905090810190601f1680156102875780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506102dd817febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166102eb6401000000000261094b179091906401000000009004565b50565b600081549050919050565b8082555050565b61097e806103016000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac014610072578063279cea35146100a15780638333d9b2146101855780638b3dd749146101b8578063de4796ed146101e3575b600080fd5b34801561007e57600080fd5b50610087610212565b604051808215151515815260200191505060405180910390f35b3480156100ad57600080fd5b5061010a60048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061023d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014a57808201518184015260208101905061012f565b50505050905090810190601f1680156101775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019157600080fd5b5061019a6107e0565b60405180826000191660001916815260200191505060405180910390f35b3480156101c457600080fd5b506101cd61080b565b6040518082815260200191505060405180910390f35b3480156101ef57600080fd5b506101f8610842565b604051808215151515815260200191505060405180910390f35b60008061021d61080b565b905060008114158015610237575080610234610873565b10155b91505090565b60606000806000806000806000610252610212565b6040805190810160405280601481526020017f494e49545f4e4f545f494e495449414c495a4544000000000000000000000000815250901515610330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102f55780820151818401526020810190506102da565b50505050905090810190601f1680156103225780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600496505b8d8d90508710156107cf57610386878f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061087b90919063ffffffff16565b9550600094505b898990508510156104de5789898681811015156103a657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156040805190810160405280601981526020017f45564d43414c4c535f424c41434b4c49535445445f43414c4c000000000000008152509015156104d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561049557808201518184015260208101905061047a565b50505050905090810190601f1680156104c25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50848060010195505061038d565b8573ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610597601488018f8f8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506108c590919063ffffffff16565b63ffffffff1693506004601488010192506105ed838f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061091f90919063ffffffff16565b915083830196508d8d90508711156040805190810160405280601781526020017f45564d43414c4c535f494e56414c49445f4c454e4754480000000000000000008152509015156106d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561069e578082015181840152602081019050610683565b50505050905090810190601f1680156106cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600080858460008a6113885a03f19050806040805190810160405280601681526020017f45564d43414c4c535f43414c4c5f5245564552544544000000000000000000008152509015156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561078e578082015181840152602081019050610773565b50505050905090810190601f1680156107bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610336565b505050505050509695505050505050565b60007f2dc858a00f3e417be1394b87c07158e989ec681ce8cc68a9093680ac1a870302600102905090565b600061083d7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e6001026000191661092f565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61086d61080b565b14905090565b600043905090565b600080610888848461093a565b90506c010000000000000000000000007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082160491505092915050565b6000806108d2848461093a565b90507c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160491505092915050565b6000816020018301905092915050565b600081549050919050565b600081602001830151905092915050565b80825550505600a165627a7a72305820c7aed686579008fd510411155a95897c39d90d1fa77308c4f43e3bf24959c3d70029",
"deployedBytecode": "0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac014610072578063279cea35146100a15780638333d9b2146101855780638b3dd749146101b8578063de4796ed146101e3575b600080fd5b34801561007e57600080fd5b50610087610212565b604051808215151515815260200191505060405180910390f35b3480156100ad57600080fd5b5061010a60048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061023d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014a57808201518184015260208101905061012f565b50505050905090810190601f1680156101775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019157600080fd5b5061019a6107e0565b60405180826000191660001916815260200191505060405180910390f35b3480156101c457600080fd5b506101cd61080b565b6040518082815260200191505060405180910390f35b3480156101ef57600080fd5b506101f8610842565b604051808215151515815260200191505060405180910390f35b60008061021d61080b565b905060008114158015610237575080610234610873565b10155b91505090565b60606000806000806000806000610252610212565b6040805190810160405280601481526020017f494e49545f4e4f545f494e495449414c495a4544000000000000000000000000815250901515610330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102f55780820151818401526020810190506102da565b50505050905090810190601f1680156103225780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600496505b8d8d90508710156107cf57610386878f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061087b90919063ffffffff16565b9550600094505b898990508510156104de5789898681811015156103a657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156040805190810160405280601981526020017f45564d43414c4c535f424c41434b4c49535445445f43414c4c000000000000008152509015156104d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561049557808201518184015260208101905061047a565b50505050905090810190601f1680156104c25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50848060010195505061038d565b8573ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610597601488018f8f8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506108c590919063ffffffff16565b63ffffffff1693506004601488010192506105ed838f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061091f90919063ffffffff16565b915083830196508d8d90508711156040805190810160405280601781526020017f45564d43414c4c535f494e56414c49445f4c454e4754480000000000000000008152509015156106d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561069e578082015181840152602081019050610683565b50505050905090810190601f1680156106cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600080858460008a6113885a03f19050806040805190810160405280601681526020017f45564d43414c4c535f43414c4c5f5245564552544544000000000000000000008152509015156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561078e578082015181840152602081019050610773565b50505050905090810190601f1680156107bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610336565b505050505050509695505050505050565b60007f2dc858a00f3e417be1394b87c07158e989ec681ce8cc68a9093680ac1a870302600102905090565b600061083d7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e6001026000191661092f565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61086d61080b565b14905090565b600043905090565b600080610888848461093a565b90506c010000000000000000000000007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082160491505092915050565b6000806108d2848461093a565b90507c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160491505092915050565b6000816020018301905092915050565b600081549050919050565b600081602001830151905092915050565b80825550505600a165627a7a72305820c7aed686579008fd510411155a95897c39d90d1fa77308c4f43e3bf24959c3d70029",
"sourceMap": "153:2472:9:-;;;344:9:0;:7;;;:9;;;:::i;:::-;153:2472:9;;590:84:2;651:1:1;623:24;:22;;;:24;;;:::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;615:65:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;637:30:2;277:2;637:13;;;:30;;;:::i;:::-;590:84::o;889:137:1:-;944:7;970:49;353:66;970:29;;:47;;;;;;;;:49;;;:::i;:::-;963:56;;889:137;:::o;1759:141::-;651:1;623:24;:22;;;:24;;;:::i;:::-;:29;654:25;;;;;;;;;;;;;;;;;;615:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;615:65:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1832:61;1880:12;353:66;1832:29;;:47;;;;;;;;;:61;;;;;:::i;:::-;1759:141;:::o;519:134:5:-;587:12;636:8;630:15;622:23;;620:27;;;:::o;1028:119::-;1134:4;1124:8;1117:22;1115:26;;:::o;153:2472:9:-;;;;;;;",
"deployedSourceMap": "153:2472:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:208:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1136:208:1;;;;;;;;;;;;;;;;;;;;;;;;;;;1174:1350:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1174:1350:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1174:1350:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2530:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2530:93:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;889:137:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;889:137:1;;;;;;;;;;;;;;;;;;;;;;;287:117:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:117:2;;;;;;;;;;;;;;;;;;;;;;;;;;;1136:208:1;1183:4;1199:27;1229:24;:22;:24::i;:::-;1199:54;;1293:1;1270:19;:24;;:67;;;;;1318:19;1298:16;:14;:16::i;:::-;:39;;1270:67;1263:74;;1136:208;;:::o;1174:1350:9:-;1270:5;1287:16;1414:23;1545:6;1914:22;1995:19;2053:21;2301:12;745:16:1;:14;:16::i;:::-;763:21;;;;;;;;;;;;;;;;;;737:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;737:48:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;273:1:8;1287:40:9;;1366:1152;1384:7;;:14;;1373:8;:25;1366:1152;;;1440:27;1458:8;1440:7;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;1414:53;;1554:1;1545:10;;1540:143;1561:10;;:17;;1557:1;:21;1540:143;;;1630:10;;1641:1;1630:13;;;;;;;;;;;;;;;;;1611:32;;:15;:32;;;;1645:22;;;;;;;;;;;;;;;;;;1603:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1603:65:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1580:3;;;;;;;1540:143;;;1883:15;1842:57;;1876:4;1842:57;;1856:10;1842:57;;;;;;;;;;;;1947:33;1975:4;1964:8;:15;1947:7;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;1939:42;;1914:67;;2035:4;2028;2017:8;:15;:22;1995:44;;2077:31;2096:11;2077:7;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;2053:55;;2201:14;2187:11;:28;2176:39;;2249:7;;:14;;2237:8;:26;;2265:20;;;;;;;;;;;;;;;;;;2229:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2229:57:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2440:1;2437;2421:14;2406:13;2403:1;2386:15;2379:4;2374:3;2370:14;2365:77;2354:88;;2478:7;2487:19;;;;;;;;;;;;;;;;;;2470:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2470:37:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1366:1152;;;1174:1350;;;;;;;;;;;;;;;:::o;2530:93::-;2577:7;402:66;2603:13;;2596:20;;2530:93;:::o;889:137:1:-;944:7;970:49;353:66;970:29;;:47;;;;:49::i;:::-;963:56;;889:137;:::o;287:117:2:-;331:4;277:2;354:24;:22;:24::i;:::-;:43;347:50;;287:117;:::o;347:94:3:-;396:7;422:12;415:19;;347:94;:::o;408:325:7:-;482:14;508:12;523:27;533:5;540:9;523;:27::i;:::-;508:42;;689:27;608:66;602:4;598:77;594:123;584:133;;570:157;;;;;:::o;739:355::-;812:13;837:12;852:27;862:5;869:9;852;:27::i;:::-;837:42;;1018:59;937:66;931:4;927:77;923:155;913:165;;899:189;;;;;:::o;1100:182::-;1175:14;1255:9;1249:4;1245:20;1238:5;1234:32;1224:42;;1210:66;;;;:::o;519:134:5:-;587:12;636:8;630:15;622:23;;620:27;;;:::o;214:188:7:-;288:14;374:9;368:4;364:20;357:5;353:32;347:39;337:49;;323:73;;;;:::o;1028:119:5:-;1134:4;1124:8;1117:22;1115:26;;:::o"
}
],
"ast": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/executors/CallsScript.sol",
"exportedSymbols": {
"CallsScript": [
149
]
},
"id": 150,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:23:9"
},
{
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/ScriptHelpers.sol",
"file": "../ScriptHelpers.sol",
"id": 2,
"nodeType": "ImportDirective",
"scope": 150,
"sourceUnit": 242,
"src": "82:30:9",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/executors/BaseEVMScriptExecutor.sol",
"file": "./BaseEVMScriptExecutor.sol",
"id": 3,
"nodeType": "ImportDirective",
"scope": 150,
"sourceUnit": 254,
"src": "113:37:9",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 4,
"name": "BaseEVMScriptExecutor",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 253,
"src": "177:21:9",
"typeDescriptions": {
"typeIdentifier": "t_contract$_BaseEVMScriptExecutor_$253",
"typeString": "contract BaseEVMScriptExecutor"
}
},
"id": 5,
"nodeType": "InheritanceSpecifier",
"src": "177:21:9"
}
],
"contractDependencies": [
253,
266,
286,
319,
417,
464
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 149,
"linearizedBaseContracts": [
149,
253,
266,
319,
417,
464,
286
],
"name": "CallsScript",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 8,
"libraryName": {
"contractScope": null,
"id": 6,
"name": "ScriptHelpers",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 241,
"src": "211:13:9",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ScriptHelpers_$241",
"typeString": "library ScriptHelpers"
}
},
"nodeType": "UsingForDirective",
"src": "205:30:9",
"typeName": {
"id": 7,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "229:5:9",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
{
"constant": true,
"id": 11,
"name": "EXECUTOR_TYPE",
"nodeType": "VariableDeclaration",
"scope": 149,
"src": "360:108:9",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 9,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "360:7:9",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"hexValue": "307832646338353861303066336534313762653133393462383763303731353865393839656336383163653863633638613930393336383061633161383730333032",
"id": 10,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "402:66:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_20708059268077943580677606616711462293513402141599588069272609168866821997314_by_1",
"typeString": "int_const 2070...(69 digits omitted)...7314"
},
"value": "0x2dc858a00f3e417be1394b87c07158e989ec681ce8cc68a9093680ac1a870302"
},
"visibility": "internal"
},
{
"constant": true,
"id": 14,
"name": "ERROR_BLACKLISTED_CALL",
"nodeType": "VariableDeclaration",
"scope": 149,
"src": "475:76:9",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string"
},
"typeName": {
"id": 12,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "475:6:9",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "45564d43414c4c535f424c41434b4c49535445445f43414c4c",
"id": 13,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "524:27:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_820e7bc5a5dbe3fe12a354732308daec36659428c18b63a8bd98d3e1a1aa880c",
"typeString": "literal_string \"EVMCALLS_BLACKLISTED_CALL\""
},
"value": "EVMCALLS_BLACKLISTED_CALL"
},
"visibility": "private"
},
{
"constant": true,
"id": 17,
"name": "ERROR_INVALID_LENGTH",
"nodeType": "VariableDeclaration",
"scope": 149,
"src": "557:72:9",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string"
},
"typeName": {
"id": 15,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "557:6:9",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "45564d43414c4c535f494e56414c49445f4c454e475448",
"id": 16,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "604:25:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b74cfdfb5c338a9838591e3a37b6a9b307874ae00970d0ccb03700cda2f9a5e1",
"typeString": "literal_string \"EVMCALLS_INVALID_LENGTH\""
},
"value": "EVMCALLS_INVALID_LENGTH"
},
"visibility": "private"
},
{
"constant": true,
"id": 20,
"name": "ERROR_CALL_REVERTED",
"nodeType": "VariableDeclaration",
"scope": 149,
"src": "635:70:9",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string"
},
"typeName": {
"id": 18,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "635:6:9",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "45564d43414c4c535f43414c4c5f5245564552544544",
"id": 19,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "681:24:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_fab8d304730f38f30e781dc6f5c91780b542a6f546339d6869545bcbca7c9148",
"typeString": "literal_string \"EVMCALLS_CALL_REVERTED\""
},
"value": "EVMCALLS_CALL_REVERTED"
},
"visibility": "private"
},
{
"anonymous": false,
"documentation": null,
"id": 28,
"name": "LogScriptCall",
"nodeType": "EventDefinition",
"parameters": {
"id": 27,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 22,
"indexed": true,
"name": "sender",
"nodeType": "VariableDeclaration",
"scope": 28,
"src": "732:22:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 21,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "732:7:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 24,
"indexed": true,
"name": "src",
"nodeType": "VariableDeclaration",
"scope": 28,
"src": "756:19:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 23,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "756:7:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 26,
"indexed": true,
"name": "dst",
"nodeType": "VariableDeclaration",
"scope": 28,
"src": "777:19:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 25,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "777:7:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "731:66:9"
},
"src": "712:86:9"
},
{
"body": {
"id": 139,
"nodeType": "Block",
"src": "1277:1247:9",
"statements": [
{
"assignments": [
43
],
"declarations": [
{
"constant": false,
"id": 43,
"name": "location",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "1287:16:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 42,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1287:7:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 45,
"initialValue": {
"argumentTypes": null,
"id": 44,
"name": "SCRIPT_START_LOCATION",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 252,
"src": "1306:21:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1287:40:9"
},
{
"body": {
"id": 137,
"nodeType": "Block",
"src": "1400:1118:9",
"statements": [
{
"assignments": [
51
],
"declarations": [
{
"constant": false,
"id": 51,
"name": "contractAddress",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "1414:23:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 50,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1414:7:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 56,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 54,
"name": "location",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "1458:8:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 52,
"name": "_script",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 30,
"src": "1440:7:9",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 53,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "addressAt",
"nodeType": "MemberAccess",
"referencedDeclaration": 193,
"src": "1440:17:9",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory,uint256) pure returns (address)"
}
},
"id": 55,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1440:27:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1414:53:9"
},
{
"body": {
"id": 77,
"nodeType": "Block",
"src": "1585:98:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 73,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 69,
"name": "contractAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51,
"src": "1611:15:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 70,
"name": "_blacklist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 35,
"src": "1630:10:9",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
}
},
"id": 72,
"indexExpression": {
"argumentTypes": null,
"id": 71,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 58,
"src": "1641:1:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1630:13:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1611:32:9",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"id": 74,
"name": "ERROR_BLACKLISTED_CALL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 14,
"src": "1645:22:9",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
],
"id": 68,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
588,
589
],
"referencedDeclaration": 589,
"src": "1603:7:9",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 75,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1603:65:9",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 76,
"nodeType": "ExpressionStatement",
"src": "1603:65:9"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 64,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 61,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 58,
"src": "1557:1:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 62,
"name": "_blacklist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 35,
"src": "1561:10:9",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
}
},
"id": 63,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1561:17:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1557:21:9",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 78,
"initializationExpression": {
"assignments": [
58
],
"declarations": [
{
"constant": false,
"id": 58,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "1545:6:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 57,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1545:4:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 60,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 59,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1554:1:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "1545:10:9"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 66,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "1580:3:9",
"subExpression": {
"argumentTypes": null,
"id": 65,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 58,
"src": "1580:1:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 67,
"nodeType": "ExpressionStatement",
"src": "1580:3:9"
},
"nodeType": "ForStatement",
"src": "1540:143:9"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 80,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 585,
"src": "1856:3:9",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 81,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1856:10:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 83,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 616,
"src": "1876:4:9",
"typeDescriptions": {
"typeIdentifier": "t_contract$_CallsScript_$149",
"typeString": "contract CallsScript"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_CallsScript_$149",
"typeString": "contract CallsScript"
}
],
"id": 82,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1868:7:9",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 84,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1868:13:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 85,
"name": "contractAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 51,
"src": "1883:15:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 79,
"name": "LogScriptCall",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 28,
"src": "1842:13:9",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$",
"typeString": "function (address,address,address)"
}
},
"id": 86,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1842:57:9",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 87,
"nodeType": "EmitStatement",
"src": "1837:62:9"
},
{
"assignments": [
89
],
"declarations": [
{
"constant": false,
"id": 89,
"name": "calldataLength",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "1914:22:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 88,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1914:7:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 98,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 95,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 93,
"name": "location",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "1964:8:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30783134",
"id": 94,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1975:4:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_20_by_1",
"typeString": "int_const 20"
},
"value": "0x14"
},
"src": "1964:15:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 91,
"name": "_script",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 30,
"src": "1947:7:9",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 92,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "uint32At",
"nodeType": "MemberAccess",
"referencedDeclaration": 211,
"src": "1947:16:9",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory,uint256) pure returns (uint32)"
}
},
"id": 96,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1947:33:9",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
],
"id": 90,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1939:7:9",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": "uint256"
},
"id": 97,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1939:42:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1914:67:9"
},
{
"assignments": [
100
],
"declarations": [
{
"constant": false,
"id": 100,
"name": "startOffset",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "1995:19:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 99,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1995:7:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 106,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 105,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 103,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 101,
"name": "location",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "2017:8:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30783134",
"id": 102,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2028:4:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_20_by_1",
"typeString": "int_const 20"
},
"value": "0x14"
},
"src": "2017:15:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30783034",
"id": 104,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2035:4:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
},
"value": "0x04"
},
"src": "2017:22:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1995:44:9"
},
{
"assignments": [
108
],
"declarations": [
{
"constant": false,
"id": 108,
"name": "calldataStart",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "2053:21:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 107,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2053:7:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 113,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 111,
"name": "startOffset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 100,
"src": "2096:11:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 109,
"name": "_script",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 30,
"src": "2077:7:9",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 110,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "locationOf",
"nodeType": "MemberAccess",
"referencedDeclaration": 222,
"src": "2077:18:9",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory,uint256) pure returns (uint256)"
}
},
"id": 112,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2077:31:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2053:55:9"
},
{
"expression": {
"argumentTypes": null,
"id": 118,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 114,
"name": "location",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "2176:8:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 117,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 115,
"name": "startOffset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 100,
"src": "2187:11:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"id": 116,
"name": "calldataLength",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 89,
"src": "2201:14:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2187:28:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2176:39:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 119,
"nodeType": "ExpressionStatement",
"src": "2176:39:9"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 124,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 121,
"name": "location",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "2237:8:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 122,
"name": "_script",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 30,
"src": "2249:7:9",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 123,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2249:14:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2237:26:9",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"id": 125,
"name": "ERROR_INVALID_LENGTH",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 17,
"src": "2265:20:9",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
],
"id": 120,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
588,
589
],
"referencedDeclaration": 589,
"src": "2229:7:9",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 126,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2229:57:9",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 127,
"nodeType": "ExpressionStatement",
"src": "2229:57:9"
},
{
"assignments": [],
"declarations": [
{
"constant": false,
"id": 129,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "2301:12:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 128,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2301:4:9",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 130,
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
"src": "2301:12:9"
},
{
"externalReferences": [
{
"contractAddress": {
"declaration": 51,
"isOffset": false,
"isSlot": false,
"src": "2386:15:9",
"valueSize": 1
}
},
{
"calldataStart": {
"declaration": 108,
"isOffset": false,
"isSlot": false,
"src": "2406:13:9",
"valueSize": 1
}
},
{
"calldataLength": {
"declaration": 89,
"isOffset": false,
"isSlot": false,
"src": "2421:14:9",
"valueSize": 1
}
},
{
"success": {
"declaration": 129,
"isOffset": false,
"isSlot": false,
"src": "2354:7:9",
"valueSize": 1
}
}
],
"id": 131,
"nodeType": "InlineAssembly",
"operations": "{\n success := call(sub(gas(), 5000), contractAddress, 0, calldataStart, calldataLength, 0, 0)\n}",
"src": "2327:150:9"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 133,
"name": "success",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 129,
"src": "2478:7:9",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"id": 134,
"name": "ERROR_CALL_REVERTED",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20,
"src": "2487:19:9",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory",
"typeString": "string memory"
}
],
"id": 132,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
588,
589
],
"referencedDeclaration": 589,
"src": "2470:7:9",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 135,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2470:37:9",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 136,
"nodeType": "ExpressionStatement",
"src": "2470:37:9"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 49,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 46,
"name": "location",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "1373:8:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 47,
"name": "_script",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 30,
"src": "1384:7:9",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 48,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1384:14:9",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1373:25:9",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 138,
"nodeType": "WhileStatement",
"src": "1366:1152:9"
}
]
},
"documentation": "@notice Executes a number of call scripts\n@param _script [ specId (uint32) ] many calls with this structure ->\n [ to (address: 20 bytes) ] [ calldataLength (uint32: 4 bytes) ] [ calldata (calldataLength bytes) ]\n@param _blacklist Addresses the script cannot call to, or will revert.\n@return always returns empty byte array",
"id": 140,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 38,
"modifierName": {
"argumentTypes": null,
"id": 37,
"name": "isInitialized",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 359,
"src": "1247:13:9",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "1247:13:9"
}
],
"name": "execScript",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 36,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 30,
"name": "_script",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "1194:13:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 29,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1194:5:9",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 32,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "1209:5:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 31,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1209:5:9",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 35,
"name": "_blacklist",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "1216:20:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 33,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1216:7:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 34,
"length": null,
"nodeType": "ArrayTypeName",
"src": "1216:9:9",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1193:44:9"
},
"payable": false,
"returnParameters": {
"id": 41,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 40,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "1270:5:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 39,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1270:5:9",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1269:7:9"
},
"scope": 149,
"src": "1174:1350:9",
"stateMutability": "nonpayable",
"superFunction": 280,
"visibility": "external"
},
{
"body": {
"id": 147,
"nodeType": "Block",
"src": "2586:37:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 145,
"name": "EXECUTOR_TYPE",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11,
"src": "2603:13:9",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 144,
"id": 146,
"nodeType": "Return",
"src": "2596:20:9"
}
]
},
"documentation": null,
"id": 148,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "executorType",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 141,
"nodeType": "ParameterList",
"parameters": [],
"src": "2551:2:9"
},
"payable": false,
"returnParameters": {
"id": 144,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 143,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 148,
"src": "2577:7:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 142,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2577:7:9",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2576:9:9"
},
"scope": 149,
"src": "2530:93:9",
"stateMutability": "pure",
"superFunction": 285,
"visibility": "external"
}
],
"scope": 150,
"src": "153:2472:9"
}
],
"src": "0:2626:9"
},
"legacyAST": {
"attributes": {
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/executors/CallsScript.sol",
"exportedSymbols": {
"CallsScript": [
149
]
}
},
"children": [
{
"attributes": {
"literals": [
"solidity",
"0.4",
".24"
]
},
"id": 1,
"name": "PragmaDirective",
"src": "0:23:9"
},
{
"attributes": {
"SourceUnit": 242,
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/ScriptHelpers.sol",
"file": "../ScriptHelpers.sol",
"scope": 150,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 2,
"name": "ImportDirective",
"src": "82:30:9"
},
{
"attributes": {
"SourceUnit": 254,
"absolutePath": "/src/external-vcs/github/aragonOS/contracts/evmscript/executors/BaseEVMScriptExecutor.sol",
"file": "./BaseEVMScriptExecutor.sol",
"scope": 150,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 3,
"name": "ImportDirective",
"src": "113:37:9"
},
{
"attributes": {
"contractDependencies": [
253,
266,
286,
319,
417,
464
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"linearizedBaseContracts": [
149,
253,
266,
319,
417,
464,
286
],
"name": "CallsScript",
"scope": 150
},
"children": [
{
"attributes": {
"arguments": null
},
"children": [
{
"attributes": {
"contractScope": null,
"name": "BaseEVMScriptExecutor",
"referencedDeclaration": 253,
"type": "contract BaseEVMScriptExecutor"
},
"id": 4,
"name": "UserDefinedTypeName",
"src": "177:21:9"
}
],
"id": 5,
"name": "InheritanceSpecifier",
"src": "177:21:9"
},
{
"children": [
{
"attributes": {
"contractScope": null,
"name": "ScriptHelpers",
"referencedDeclaration": 241,
"type": "library ScriptHelpers"
},
"id": 6,
"name": "UserDefinedTypeName",
"src": "211:13:9"
},
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 7,
"name": "ElementaryTypeName",
"src": "229:5:9"
}
],
"id": 8,
"name": "UsingForDirective",
"src": "205:30:9"
},
{
"attributes": {
"constant": true,
"name": "EXECUTOR_TYPE",
"scope": 149,
"stateVariable": true,
"storageLocation": "default",
"type": "bytes32",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes32",
"type": "bytes32"
},
"id": 9,
"name": "ElementaryTypeName",
"src": "360:7:9"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "307832646338353861303066336534313762653133393462383763303731353865393839656336383163653863633638613930393336383061633161383730333032",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "number",
"type": "int_const 2070...(69 digits omitted)...7314",
"value": "0x2dc858a00f3e417be1394b87c07158e989ec681ce8cc68a9093680ac1a870302"
},
"id": 10,
"name": "Literal",
"src": "402:66:9"
}
],
"id": 11,
"name": "VariableDeclaration",
"src": "360:108:9"
},
{
"attributes": {
"constant": true,
"name": "ERROR_BLACKLISTED_CALL",
"scope": 149,
"stateVariable": true,
"storageLocation": "default",
"type": "string",
"visibility": "private"
},
"children": [
{
"attributes": {
"name": "string",
"type": "string"
},
"id": 12,
"name": "ElementaryTypeName",
"src": "475:6:9"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "45564d43414c4c535f424c41434b4c49535445445f43414c4c",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "string",
"type": "literal_string \"EVMCALLS_BLACKLISTED_CALL\"",
"value": "EVMCALLS_BLACKLISTED_CALL"
},
"id": 13,
"name": "Literal",
"src": "524:27:9"
}
],
"id": 14,
"name": "VariableDeclaration",
"src": "475:76:9"
},
{
"attributes": {
"constant": true,
"name": "ERROR_INVALID_LENGTH",
"scope": 149,
"stateVariable": true,
"storageLocation": "default",
"type": "string",
"visibility": "private"
},
"children": [
{
"attributes": {
"name": "string",
"type": "string"
},
"id": 15,
"name": "ElementaryTypeName",
"src": "557:6:9"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "45564d43414c4c535f494e56414c49445f4c454e475448",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "string",
"type": "literal_string \"EVMCALLS_INVALID_LENGTH\"",
"value": "EVMCALLS_INVALID_LENGTH"
},
"id": 16,
"name": "Literal",
"src": "604:25:9"
}
],
"id": 17,
"name": "VariableDeclaration",
"src": "557:72:9"
},
{
"attributes": {
"constant": true,
"name": "ERROR_CALL_REVERTED",
"scope": 149,
"stateVariable": true,
"storageLocation": "default",
"type": "string",
"visibility": "private"
},
"children": [
{
"attributes": {
"name": "string",
"type": "string"
},
"id": 18,
"name": "ElementaryTypeName",
"src": "635:6:9"
},
{
"attributes": {
"argumentTypes": null,
"hexvalue": "45564d43414c4c535f43414c4c5f5245564552544544",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"subdenomination": null,
"token": "string",
"type": "literal_string \"EVMCALLS_CALL_REVERTED\"",
"value": "EVMCALLS_CALL_REVERTED"
},
"id": 19,
"name": "Literal",
"src": "681:24:9"
}
],
"id": 20,
"name": "VariableDeclaration",
"src": "635:70:9"
},
{
"attributes": {
"anonymous": false,
"documentation": null,
"name": "LogScriptCall"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"indexed": true,
"name": "sender",
"scope": 28,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"type": "address"
},
"id": 21,
"name": "ElementaryTypeName",
"src": "732:7:9"
}
],
"id": 22,
"name": "VariableDeclaration",
"src": "732:22:9"
},
{
"attributes": {
"constant": false,
"indexed": true,
"name": "src",
"scope": 28,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"type": "address"
},
"id": 23,
"name": "ElementaryTypeName",
"src": "756:7:9"
}
],
"id": 24,
"name": "VariableDeclaration",
"src": "756:19:9"
},
{
"attributes": {
"constant": false,
"indexed": true,
"name": "dst",
"scope": 28,
"stateVariable": false,
"storageLocation": "default",
"type": "address",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "address",
"type": "address"
},
"id": 25,
"name": "ElementaryTypeName",
"src": "777:7:9"
}
],
"id": 26,
"name": "VariableDeclaration",
"src": "777:19:9"
}
],
"id": 27,
"name": "ParameterList",
"src": "731:66:9"
}
],
"id": 28,
"name": "EventDefinition",
"src": "712:86:9"
},
{
"attributes": {
"constant": false,
"documentation": "@notice Executes a number of call scripts\n@param _script [ specId (uint32) ] many calls with this structure ->\n [ to (address: 20 bytes) ] [ calldataLength (uint32: 4 bytes) ] [ calldata (calldataLength bytes) ]\n@param _blacklist Addresses the script cannot call to, or will revert.\n@return always returns empty byte array",
"implemented": true,
"isConstructor": false,
"name": "execScript",
"payable": false,
"scope": 149,
"stateMutability": "nonpayable",
"superFunction": 280,
"visibility": "external"
},
"children": [
{
"children": [
{
"attributes": {
"constant": false,
"name": "_script",
"scope": 140,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 29,
"name": "ElementaryTypeName",
"src": "1194:5:9"
}
],
"id": 30,
"name": "VariableDeclaration",
"src": "1194:13:9"
},
{
"attributes": {
"constant": false,
"name": "",
"scope": 140,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes",
"type": "bytes"
},
"id": 31,
"name": "ElementaryTypeName",
"src": "1209:5:9"
}
],
"id": 32,
"name": "VariableDeclaration",
"src": "1209:5:9"
},
{
"attributes": {
"constant": false,
"name": "_blacklist",
"scope": 140,
"stateVariable": false,
"storageLocation": "default",
"type": "address[]",
"value": null,
"visibility": "internal"
},
"children": [
{
"attributes": {
"length": null,
"type": "address[]"
},
"children": [
{
"attributes": {
"name": "address",
"type": "address"
},
"id": 33,
"name": "ElementaryTypeName",
"src": "1216:7:9"
}
],
"id": 34,
"name": "ArrayTypeName",
"src": "1216:9:9"
}
],
"id": 35,
"name": "VariableDeclaration",
"src": "1216:20:9"
}
],
"id": 36,
"name": "ParameterList",
"src": "1193:44:9"
},
{
"children": [
{
"attributes": {
"constant": false,
"name": "",
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment