@aragon/apps-payroll
Version:
_**Code in Github:**_ [aragon-apps/apps/payroll](https://github.com/aragon/aragon-apps/tree/master/future-apps/payroll)
1,277 lines (1,276 loc) • 59.7 kB
JSON
{
"contractName": "AppStorage",
"abi": [
{
"constant": true,
"inputs": [],
"name": "kernel",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "appId",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b5061013c806100206000396000f30060806040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114610050578063d4aae0c414610077575b600080fd5b34801561005c57600080fd5b506100656100b5565b60408051918252519081900360200190f35b34801561008357600080fd5b5061008c6100e5565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60006100e07fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b61010c565b905090565b60006100e07f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b5b54905600a165627a7a723058206ac29bb2aa600d684726783c282a13cd2109df87e1b2036799330b13bfd3deed0029",
"deployedBytecode": "0x60806040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166380afdea88114610050578063d4aae0c414610077575b600080fd5b34801561005c57600080fd5b506100656100b5565b60408051918252519081900360200190f35b34801561008357600080fd5b5061008c6100e5565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60006100e07fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b61010c565b905090565b60006100e07f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b5b54905600a165627a7a723058206ac29bb2aa600d684726783c282a13cd2109df87e1b2036799330b13bfd3deed0029",
"sourceMap": "148:982:22:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;148:982:22;;;;;;;",
"deployedSourceMap": "148:982:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;796:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;796:106:22;;;;;;;;;;;;;;;;;;;;674:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;674:116:22;;;;;;;;;;;;;;;;;;;;;;;796:106;834:7;860:35;601:66;860:33;:35::i;:::-;853:42;;796:106;:::o;674:116::-;713:7;747:35;485:66;379:134:39;490:15;;480:27::o",
"source": "/*\n * SPDX-License-Identitifer: MIT\n */\n\npragma solidity ^0.4.24;\n\nimport \"../common/UnstructuredStorage.sol\";\nimport \"../kernel/IKernel.sol\";\n\n\ncontract AppStorage {\n using UnstructuredStorage for bytes32;\n\n /* Hardcoded constants to save gas\n bytes32 internal constant KERNEL_POSITION = keccak256(\"aragonOS.appStorage.kernel\");\n bytes32 internal constant APP_ID_POSITION = keccak256(\"aragonOS.appStorage.appId\");\n */\n bytes32 internal constant KERNEL_POSITION = 0x4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b;\n bytes32 internal constant APP_ID_POSITION = 0xd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b;\n\n function kernel() public view returns (IKernel) {\n return IKernel(KERNEL_POSITION.getStorageAddress());\n }\n\n function appId() public view returns (bytes32) {\n return APP_ID_POSITION.getStorageBytes32();\n }\n\n function setKernel(IKernel _kernel) internal {\n KERNEL_POSITION.setStorageAddress(address(_kernel));\n }\n\n function setAppId(bytes32 _appId) internal {\n APP_ID_POSITION.setStorageBytes32(_appId);\n }\n}\n",
"sourcePath": "@aragon/os/contracts/apps/AppStorage.sol",
"ast": {
"absolutePath": "@aragon/os/contracts/apps/AppStorage.sol",
"exportedSymbols": {
"AppStorage": [
10365
]
},
"id": 10366,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 10305,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "44:24:22"
},
{
"absolutePath": "@aragon/os/contracts/common/UnstructuredStorage.sol",
"file": "../common/UnstructuredStorage.sol",
"id": 10306,
"nodeType": "ImportDirective",
"scope": 10366,
"sourceUnit": 11307,
"src": "70:43:22",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@aragon/os/contracts/kernel/IKernel.sol",
"file": "../kernel/IKernel.sol",
"id": 10307,
"nodeType": "ImportDirective",
"scope": 10366,
"sourceUnit": 12601,
"src": "114:31:22",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 10365,
"linearizedBaseContracts": [
10365
],
"name": "AppStorage",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 10310,
"libraryName": {
"contractScope": null,
"id": 10308,
"name": "UnstructuredStorage",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 11306,
"src": "180:19:22",
"typeDescriptions": {
"typeIdentifier": "t_contract$_UnstructuredStorage_$11306",
"typeString": "library UnstructuredStorage"
}
},
"nodeType": "UsingForDirective",
"src": "174:38:22",
"typeName": {
"id": 10309,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "204:7:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
},
{
"constant": true,
"id": 10313,
"name": "KERNEL_POSITION",
"nodeType": "VariableDeclaration",
"scope": 10365,
"src": "441:110:22",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 10311,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "441:7:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"hexValue": "307834313732663066376432323839313533303732623061366361333639353965306362653265666333616665353066633831363336636161393633333831333762",
"id": 10312,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "485:66:22",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_29603418823659377402517424791837662213071105721787245324259490738465228198779_by_1",
"typeString": "int_const 2960...(69 digits omitted)...8779"
},
"value": "0x4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b"
},
"visibility": "internal"
},
{
"constant": true,
"id": 10316,
"name": "APP_ID_POSITION",
"nodeType": "VariableDeclaration",
"scope": 10365,
"src": "557:110:22",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 10314,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "557:7:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"hexValue": "307864363235343936323137616136613334353365656362396333343839646335613533653663363762343434333239656132623263626339666635343736333962",
"id": 10315,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "601:66:22",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_96860829410266183739968109275744835355652829419177135718944944339455505294235_by_1",
"typeString": "int_const 9686...(69 digits omitted)...4235"
},
"value": "0xd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b"
},
"visibility": "internal"
},
{
"body": {
"id": 10327,
"nodeType": "Block",
"src": "722:68:22",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 10322,
"name": "KERNEL_POSITION",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10313,
"src": "747:15:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 10323,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "getStorageAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 11251,
"src": "747:33:22",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$bound_to$_t_bytes32_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 10324,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "747:35:22",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 10321,
"name": "IKernel",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12600,
"src": "739:7:22",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IKernel_$12600_$",
"typeString": "type(contract IKernel)"
}
},
"id": 10325,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "739:44:22",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IKernel_$12600",
"typeString": "contract IKernel"
}
},
"functionReturnParameters": 10320,
"id": 10326,
"nodeType": "Return",
"src": "732:51:22"
}
]
},
"documentation": null,
"id": 10328,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "kernel",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 10317,
"nodeType": "ParameterList",
"parameters": [],
"src": "689:2:22"
},
"payable": false,
"returnParameters": {
"id": 10320,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10319,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 10328,
"src": "713:7:22",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IKernel_$12600",
"typeString": "contract IKernel"
},
"typeName": {
"contractScope": null,
"id": 10318,
"name": "IKernel",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 12600,
"src": "713:7:22",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IKernel_$12600",
"typeString": "contract IKernel"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "712:9:22"
},
"scope": 10365,
"src": "674:116:22",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 10337,
"nodeType": "Block",
"src": "843:59:22",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 10333,
"name": "APP_ID_POSITION",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10316,
"src": "860:15:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 10334,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "getStorageBytes32",
"nodeType": "MemberAccess",
"referencedDeclaration": 11260,
"src": "860:33:22",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$bound_to$_t_bytes32_$",
"typeString": "function (bytes32) view returns (bytes32)"
}
},
"id": 10335,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "860:35:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 10332,
"id": 10336,
"nodeType": "Return",
"src": "853:42:22"
}
]
},
"documentation": null,
"id": 10338,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "appId",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 10329,
"nodeType": "ParameterList",
"parameters": [],
"src": "810:2:22"
},
"payable": false,
"returnParameters": {
"id": 10332,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10331,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 10338,
"src": "834:7:22",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 10330,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "834:7:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "833:9:22"
},
"scope": 10365,
"src": "796:106:22",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 10351,
"nodeType": "Block",
"src": "953:68:22",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 10347,
"name": "_kernel",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10340,
"src": "1005:7:22",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IKernel_$12600",
"typeString": "contract IKernel"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IKernel_$12600",
"typeString": "contract IKernel"
}
],
"id": 10346,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "997:7:22",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 10348,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "997:16:22",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"argumentTypes": null,
"id": 10343,
"name": "KERNEL_POSITION",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10313,
"src": "963:15:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 10345,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "setStorageAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 11287,
"src": "963:33:22",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$bound_to$_t_bytes32_$",
"typeString": "function (bytes32,address)"
}
},
"id": 10349,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "963:51:22",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 10350,
"nodeType": "ExpressionStatement",
"src": "963:51:22"
}
]
},
"documentation": null,
"id": 10352,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "setKernel",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 10341,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10340,
"name": "_kernel",
"nodeType": "VariableDeclaration",
"scope": 10352,
"src": "927:15:22",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IKernel_$12600",
"typeString": "contract IKernel"
},
"typeName": {
"contractScope": null,
"id": 10339,
"name": "IKernel",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 12600,
"src": "927:7:22",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IKernel_$12600",
"typeString": "contract IKernel"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "926:17:22"
},
"payable": false,
"returnParameters": {
"id": 10342,
"nodeType": "ParameterList",
"parameters": [],
"src": "953:0:22"
},
"scope": 10365,
"src": "908:113:22",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 10363,
"nodeType": "Block",
"src": "1070:58:22",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 10360,
"name": "_appId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10354,
"src": "1114:6:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"argumentTypes": null,
"id": 10357,
"name": "APP_ID_POSITION",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10316,
"src": "1080:15:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 10359,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "setStorageBytes32",
"nodeType": "MemberAccess",
"referencedDeclaration": 11296,
"src": "1080:33:22",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$bound_to$_t_bytes32_$",
"typeString": "function (bytes32,bytes32)"
}
},
"id": 10361,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1080:41:22",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 10362,
"nodeType": "ExpressionStatement",
"src": "1080:41:22"
}
]
},
"documentation": null,
"id": 10364,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "setAppId",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 10355,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10354,
"name": "_appId",
"nodeType": "VariableDeclaration",
"scope": 10364,
"src": "1045:14:22",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 10353,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1045:7:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1044:16:22"
},
"payable": false,
"returnParameters": {
"id": 10356,
"nodeType": "ParameterList",
"parameters": [],
"src": "1070:0:22"
},
"scope": 10365,
"src": "1027:101:22",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 10366,
"src": "148:982:22"
}
],
"src": "44:1087:22"
},
"legacyAST": {
"absolutePath": "@aragon/os/contracts/apps/AppStorage.sol",
"exportedSymbols": {
"AppStorage": [
10365
]
},
"id": 10366,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 10305,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "44:24:22"
},
{
"absolutePath": "@aragon/os/contracts/common/UnstructuredStorage.sol",
"file": "../common/UnstructuredStorage.sol",
"id": 10306,
"nodeType": "ImportDirective",
"scope": 10366,
"sourceUnit": 11307,
"src": "70:43:22",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@aragon/os/contracts/kernel/IKernel.sol",
"file": "../kernel/IKernel.sol",
"id": 10307,
"nodeType": "ImportDirective",
"scope": 10366,
"sourceUnit": 12601,
"src": "114:31:22",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 10365,
"linearizedBaseContracts": [
10365
],
"name": "AppStorage",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 10310,
"libraryName": {
"contractScope": null,
"id": 10308,
"name": "UnstructuredStorage",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 11306,
"src": "180:19:22",
"typeDescriptions": {
"typeIdentifier": "t_contract$_UnstructuredStorage_$11306",
"typeString": "library UnstructuredStorage"
}
},
"nodeType": "UsingForDirective",
"src": "174:38:22",
"typeName": {
"id": 10309,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "204:7:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
},
{
"constant": true,
"id": 10313,
"name": "KERNEL_POSITION",
"nodeType": "VariableDeclaration",
"scope": 10365,
"src": "441:110:22",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 10311,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "441:7:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"hexValue": "307834313732663066376432323839313533303732623061366361333639353965306362653265666333616665353066633831363336636161393633333831333762",
"id": 10312,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "485:66:22",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_29603418823659377402517424791837662213071105721787245324259490738465228198779_by_1",
"typeString": "int_const 2960...(69 digits omitted)...8779"
},
"value": "0x4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b"
},
"visibility": "internal"
},
{
"constant": true,
"id": 10316,
"name": "APP_ID_POSITION",
"nodeType": "VariableDeclaration",
"scope": 10365,
"src": "557:110:22",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 10314,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "557:7:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"hexValue": "307864363235343936323137616136613334353365656362396333343839646335613533653663363762343434333239656132623263626339666635343736333962",
"id": 10315,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "601:66:22",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_96860829410266183739968109275744835355652829419177135718944944339455505294235_by_1",
"typeString": "int_const 9686...(69 digits omitted)...4235"
},
"value": "0xd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b"
},
"visibility": "internal"
},
{
"body": {
"id": 10327,
"nodeType": "Block",
"src": "722:68:22",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 10322,
"name": "KERNEL_POSITION",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10313,
"src": "747:15:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 10323,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "getStorageAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 11251,
"src": "747:33:22",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$bound_to$_t_bytes32_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 10324,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "747:35:22",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 10321,
"name": "IKernel",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12600,
"src": "739:7:22",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IKernel_$12600_$",
"typeString": "type(contract IKernel)"
}
},
"id": 10325,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "739:44:22",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IKernel_$12600",
"typeString": "contract IKernel"
}
},
"functionReturnParameters": 10320,
"id": 10326,
"nodeType": "Return",
"src": "732:51:22"
}
]
},
"documentation": null,
"id": 10328,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "kernel",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 10317,
"nodeType": "ParameterList",
"parameters": [],
"src": "689:2:22"
},
"payable": false,
"returnParameters": {
"id": 10320,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10319,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 10328,
"src": "713:7:22",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IKernel_$12600",
"typeString": "contract IKernel"
},
"typeName": {
"contractScope": null,
"id": 10318,
"name": "IKernel",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 12600,
"src": "713:7:22",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IKernel_$12600",
"typeString": "contract IKernel"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "712:9:22"
},
"scope": 10365,
"src": "674:116:22",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 10337,
"nodeType": "Block",
"src": "843:59:22",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 10333,
"name": "APP_ID_POSITION",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10316,
"src": "860:15:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 10334,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "getStorageBytes32",
"nodeType": "MemberAccess",
"referencedDeclaration": 11260,
"src": "860:33:22",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$bound_to$_t_bytes32_$",
"typeString": "function (bytes32) view returns (bytes32)"
}
},
"id": 10335,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "860:35:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 10332,
"id": 10336,
"nodeType": "Return",
"src": "853:42:22"
}
]
},
"documentation": null,
"id": 10338,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "appId",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 10329,
"nodeType": "ParameterList",
"parameters": [],
"src": "810:2:22"
},
"payable": false,
"returnParameters": {
"id": 10332,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10331,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 10338,
"src": "834:7:22",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 10330,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "834:7:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "833:9:22"
},
"scope": 10365,
"src": "796:106:22",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 10351,
"nodeType": "Block",
"src": "953:68:22",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 10347,
"name": "_kernel",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10340,
"src": "1005:7:22",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IKernel_$12600",
"typeString": "contract IKernel"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IKernel_$12600",
"typeString": "contract IKernel"
}
],
"id": 10346,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "997:7:22",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 10348,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "997:16:22",
"typeDescriptions": {