@zjbtest/contracts
Version:
AcalaNetwork Smart Contract library for Solidity
1,101 lines • 97.9 kB
JSON
{
"contractName": "SystemContract",
"abi": [],
"metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/utils/SystemContract.sol\":\"SystemContract\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/utils/SystemContract.sol\":{\"keccak256\":\"0xa1629e13e52c1caa85a8658eadb41827faffe20ef1f5db46a48fc1956a843b03\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2be225f1990ecbc01e3c35ff2aa0f0c1de1bf45b85d05468e6125182642dea37\",\"dweb:/ipfs/QmZBVmNFDGNTWAJjxxpi2VJfBU2mtSLDFQ9aB7ziEgrqZA\"]}},\"version\":1}",
"bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220bd8c2baa4718203c728e0c532724fc540f6088c4f1f32aa3aeea508447fc391c64736f6c63430008000033",
"deployedBytecode": "0x6080604052600080fdfea2646970667358221220bd8c2baa4718203c728e0c532724fc540f6088c4f1f32aa3aeea508447fc391c64736f6c63430008000033",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "71:585:14:-:0;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "71:585:14:-:0;;;;;",
"source": "// SPDX-License-Identifier: GPL-3.0-or-later\n\npragma solidity ^0.8.0;\n\ncontract SystemContract {\n modifier systemContract(address addr) {\n bytes memory addrBytes = abi.encodePacked(addr);\n for (uint i = 0; i < 12; i++) {\n require(addrBytes[i] == 0, \"not a system contract\");\n }\n _;\n }\n\n modifier systemContracts(address[] memory addrs) {\n for (uint i = 0; i < addrs.length; i++) {\n bytes memory addrBytes = abi.encodePacked(addrs[i]);\n for (uint j = 0; j < 12; j++) {\n require(addrBytes[j] == 0, \"not a system contract\");\n }\n }\n _;\n }\n}\n",
"sourcePath": "/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/utils/SystemContract.sol",
"ast": {
"absolutePath": "/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/utils/SystemContract.sol",
"exportedSymbols": {
"SystemContract": [
2074
]
},
"id": 2075,
"license": "GPL-3.0-or-later",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1989,
"literals": [
"solidity",
"^",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "46:23:14"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 2074,
"linearizedBaseContracts": [
2074
],
"name": "SystemContract",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 2022,
"nodeType": "Block",
"src": "139:190:14",
"statements": [
{
"assignments": [
1994
],
"declarations": [
{
"constant": false,
"id": 1994,
"mutability": "mutable",
"name": "addrBytes",
"nodeType": "VariableDeclaration",
"scope": 2022,
"src": "149:22:14",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 1993,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "149:5:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 1999,
"initialValue": {
"arguments": [
{
"id": 1997,
"name": "addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1991,
"src": "191:4:14",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 1995,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "174:3:14",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 1996,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "174:16:14",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 1998,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "174:22:14",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "149:47:14"
},
{
"body": {
"id": 2019,
"nodeType": "Block",
"src": "236:76:14",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
"id": 2015,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"baseExpression": {
"id": 2011,
"name": "addrBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1994,
"src": "258:9:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 2013,
"indexExpression": {
"id": 2012,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2001,
"src": "268:1:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "258:12:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "30",
"id": 2014,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "274:1:14",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "258:17:14",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "6e6f7420612073797374656d20636f6e7472616374",
"id": 2016,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "277:23:14",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2048fc62d6fa599cdedd13d2fdd3a09f7c2da540eff3443be54395301074d106",
"typeString": "literal_string \"not a system contract\""
},
"value": "not a system contract"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_2048fc62d6fa599cdedd13d2fdd3a09f7c2da540eff3443be54395301074d106",
"typeString": "literal_string \"not a system contract\""
}
],
"id": 2010,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "250:7:14",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2017,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "250:51:14",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2018,
"nodeType": "ExpressionStatement",
"src": "250:51:14"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2006,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2004,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2001,
"src": "223:1:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"hexValue": "3132",
"id": 2005,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "227:2:14",
"typeDescriptions": {
"typeIdentifier": "t_rational_12_by_1",
"typeString": "int_const 12"
},
"value": "12"
},
"src": "223:6:14",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2020,
"initializationExpression": {
"assignments": [
2001
],
"declarations": [
{
"constant": false,
"id": 2001,
"mutability": "mutable",
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 2020,
"src": "211:6:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2000,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "211:4:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 2003,
"initialValue": {
"hexValue": "30",
"id": 2002,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "220:1:14",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "211:10:14"
},
"loopExpression": {
"expression": {
"id": 2008,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "231:3:14",
"subExpression": {
"id": 2007,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2001,
"src": "231:1:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2009,
"nodeType": "ExpressionStatement",
"src": "231:3:14"
},
"nodeType": "ForStatement",
"src": "206:106:14"
},
{
"id": 2021,
"nodeType": "PlaceholderStatement",
"src": "321:1:14"
}
]
},
"id": 2023,
"name": "systemContract",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 1992,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1991,
"mutability": "mutable",
"name": "addr",
"nodeType": "VariableDeclaration",
"scope": 2023,
"src": "125:12:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1990,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "125:7:14",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "124:14:14"
},
"src": "101:228:14",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 2072,
"nodeType": "Block",
"src": "384:270:14",
"statements": [
{
"body": {
"id": 2069,
"nodeType": "Block",
"src": "434:203:14",
"statements": [
{
"assignments": [
2040
],
"declarations": [
{
"constant": false,
"id": 2040,
"mutability": "mutable",
"name": "addrBytes",
"nodeType": "VariableDeclaration",
"scope": 2069,
"src": "448:22:14",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2039,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "448:5:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 2047,
"initialValue": {
"arguments": [
{
"baseExpression": {
"id": 2043,
"name": "addrs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2026,
"src": "490:5:14",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
"id": 2045,
"indexExpression": {
"id": 2044,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2029,
"src": "496:1:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "490:8:14",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 2041,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "473:3:14",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 2042,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "473:16:14",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 2046,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "473:26:14",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "448:51:14"
},
{
"body": {
"id": 2067,
"nodeType": "Block",
"src": "543:84:14",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
"id": 2063,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"baseExpression": {
"id": 2059,
"name": "addrBytes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2040,
"src": "569:9:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 2061,
"indexExpression": {
"id": 2060,
"name": "j",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2049,
"src": "579:1:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "569:12:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"hexValue": "30",
"id": 2062,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "585:1:14",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "569:17:14",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "6e6f7420612073797374656d20636f6e7472616374",
"id": 2064,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "588:23:14",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2048fc62d6fa599cdedd13d2fdd3a09f7c2da540eff3443be54395301074d106",
"typeString": "literal_string \"not a system contract\""
},
"value": "not a system contract"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_2048fc62d6fa599cdedd13d2fdd3a09f7c2da540eff3443be54395301074d106",
"typeString": "literal_string \"not a system contract\""
}
],
"id": 2058,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "561:7:14",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2065,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "561:51:14",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2066,
"nodeType": "ExpressionStatement",
"src": "561:51:14"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2054,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2052,
"name": "j",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2049,
"src": "530:1:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"hexValue": "3132",
"id": 2053,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "534:2:14",
"typeDescriptions": {
"typeIdentifier": "t_rational_12_by_1",
"typeString": "int_const 12"
},
"value": "12"
},
"src": "530:6:14",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2068,
"initializationExpression": {
"assignments": [
2049
],
"declarations": [
{
"constant": false,
"id": 2049,
"mutability": "mutable",
"name": "j",
"nodeType": "VariableDeclaration",
"scope": 2068,
"src": "518:6:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2048,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "518:4:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 2051,
"initialValue": {
"hexValue": "30",
"id": 2050,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "527:1:14",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "518:10:14"
},
"loopExpression": {
"expression": {
"id": 2056,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "538:3:14",
"subExpression": {
"id": 2055,
"name": "j",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2049,
"src": "538:1:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2057,
"nodeType": "ExpressionStatement",
"src": "538:3:14"
},
"nodeType": "ForStatement",
"src": "513:114:14"
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2035,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 2032,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2029,
"src": "411:1:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"expression": {
"id": 2033,
"name": "addrs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2026,
"src": "415:5:14",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
"id": 2034,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"src": "415:12:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "411:16:14",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2070,
"initializationExpression": {
"assignments": [
2029
],
"declarations": [
{
"constant": false,
"id": 2029,
"mutability": "mutable",
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 2070,
"src": "399:6:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2028,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "399:4:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 2031,
"initialValue": {
"hexValue": "30",
"id": 2030,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "408:1:14",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "399:10:14"
},
"loopExpression": {
"expression": {
"id": 2037,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "429:3:14",
"subExpression": {
"id": 2036,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2029,
"src": "429:1:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2038,
"nodeType": "ExpressionStatement",
"src": "429:3:14"
},
"nodeType": "ForStatement",
"src": "394:243:14"
},
{
"id": 2071,
"nodeType": "PlaceholderStatement",
"src": "646:1:14"
}
]
},
"id": 2073,
"name": "systemContracts",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 2027,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2026,
"mutability": "mutable",
"name": "addrs",
"nodeType": "VariableDeclaration",
"scope": 2073,
"src": "360:22:14",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 2024,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "360:7:14",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 2025,
"nodeType": "ArrayTypeName",
"src": "360:9:14",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
}
],
"src": "359:24:14"
},
"src": "335:319:14",
"virtual": false,
"visibility": "internal"
}
],
"scope": 2075,
"src": "71:585:14"
}
],
"src": "46:611:14"
},
"legacyAST": {
"absolutePath":