Skip to content

Instantly share code, notes, and snippets.

@nCally
Last active November 11, 2020 10:11
Show Gist options
  • Save nCally/ef763524c57db370afd92bc5d04649cd to your computer and use it in GitHub Desktop.
Save nCally/ef763524c57db370afd92bc5d04649cd to your computer and use it in GitHub Desktop.
Groups.json
{
"contractName": "Groups",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "oracle",
"type": "address"
}
],
"name": "activateStorageOracle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "oracle",
"type": "address"
}
],
"name": "deactivateStorageOracle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOracle",
"type": "address"
}
],
"name": "reAssignStorageOracle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getLengthOfTokenAddressesUsedInDeposit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "incrementTokenDeposit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "decrementTokenDeposit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
}
],
"name": "getTokenDeposit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "incrementEtherDeposit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "decrementEtherDeposit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getEtherDeposit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "depositor",
"type": "address"
}
],
"name": "createMember",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_address",
"type": "address"
}
],
"name": "getMember",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "address",
"name": "groupCreator",
"type": "address"
}
],
"name": "createGroup",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "address payable",
"name": "creatorAddress",
"type": "address"
}
],
"name": "updateGroup",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"name": "doesGroupExist",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "groupName",
"type": "string"
}
],
"name": "doesGroupExist",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "depositor",
"type": "address"
}
],
"name": "doesMemberExist",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "depositor",
"type": "address"
}
],
"name": "createGroupMember",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "getGroupMember",
"outputs": [
{
"internalType": "address payable",
"name": "_address",
"type": "address"
},
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"internalType": "address",
"name": "depositor",
"type": "address"
}
],
"name": "getGroupMembersDeepIndexer",
"outputs": [
{
"internalType": "bool",
"name": "exists",
"type": "bool"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"name": "getRecordIndexLengthForGroupMembersIndexer",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "depositor",
"type": "address"
}
],
"name": "getRecordIndexLengthForGroupMembersIndexerByDepositor",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "indexerLocation",
"type": "uint256"
}
],
"name": "getGroupMembersIndexer",
"outputs": [
{
"internalType": "bool",
"name": "exist",
"type": "bool"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "depositor",
"type": "address"
},
{
"internalType": "uint256",
"name": "indexerLocation",
"type": "uint256"
}
],
"name": "getGroupMembersIndexerByDepositor",
"outputs": [
{
"internalType": "bool",
"name": "exist",
"type": "bool"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
},
{
"internalType": "address",
"name": "depositor",
"type": "address"
}
],
"name": "doesGroupMemberExist",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"name": "getGroupIndexer",
"outputs": [
{
"internalType": "bool",
"name": "exist",
"type": "bool"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "groupCreator",
"type": "address"
}
],
"name": "getRecordIndexLengthForCreator",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "groupCreator",
"type": "address"
},
{
"internalType": "uint256",
"name": "indexerLocation",
"type": "uint256"
}
],
"name": "getGroupForCreatorIndexer",
"outputs": [
{
"internalType": "bool",
"name": "exist",
"type": "bool"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "groupName",
"type": "string"
}
],
"name": "getGroupIndexerByName",
"outputs": [
{
"internalType": "bool",
"name": "exist",
"type": "bool"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"name": "getGroupById",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "getGroupByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getGroupsLength",
"outputs": [
{
"internalType": "uint256",
"name": "length",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "groupId",
"type": "uint256"
}
],
"name": "getGroupIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"activateStorageOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"groupCreator\",\"type\":\"address\"}],\"name\":\"createGroup\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"depositor\",\"type\":\"address\"}],\"name\":\"createGroupMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"depositor\",\"type\":\"address\"}],\"name\":\"createMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"deactivateStorageOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"decrementEtherDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"decrementTokenDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"groupName\",\"type\":\"string\"}],\"name\":\"doesGroupExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"}],\"name\":\"doesGroupExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"}],\"name\":\"doesGroupMemberExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"}],\"name\":\"doesMemberExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEtherDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"}],\"name\":\"getGroupById\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getGroupByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"groupCreator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"indexerLocation\",\"type\":\"uint256\"}],\"name\":\"getGroupForCreatorIndexer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"}],\"name\":\"getGroupIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"}],\"name\":\"getGroupIndexer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"groupName\",\"type\":\"string\"}],\"name\":\"getGroupIndexerByName\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getGroupMember\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"}],\"name\":\"getGroupMembersDeepIndexer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"indexerLocation\",\"type\":\"uint256\"}],\"name\":\"getGroupMembersIndexer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"indexerLocation\",\"type\":\"uint256\"}],\"name\":\"getGroupMembersIndexerByDepositor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGroupsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLengthOfTokenAddressesUsedInDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"getMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"groupCreator\",\"type\":\"address\"}],\"name\":\"getRecordIndexLengthForCreator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupId\",\"type\":\"uint256\"}],\"name\":\"getRecordIndexLengthForGroupMembersIndexer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"}],\"name\":\"getRecordIndexLengthForGroupMembersIndexerByDepositor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"getTokenDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"incrementEtherDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"incrementTokenDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOracle\",\"type\":\"address\"}],\"name\":\"reAssignStorageOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"address payable\",\"name\":\"creatorAddress\",\"type\":\"address\"}],\"name\":\"updateGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cally/code/xend/xendfinance/yearn-savings/Tests/contracts/Groups.sol\":\"Groups\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/cally/code/xend/xendfinance/yearn-savings/Tests/contracts/Groups.sol\":{\"keccak256\":\"0xde32fb7b84c240c0d158de286cd6a692f53f5a4fbc7155fd8fe63b264d3673bc\",\"urls\":[\"bzz-raw://f383820be46af352cf07cd1294d54ed2a986b74aa85654cac47a5b4c059f84bb\",\"dweb:/ipfs/QmXxKnVtvz6MfHMuGYAb3SjsGw3v5dJQD9qiXdXnc8u5wd\"]},\"/home/cally/code/xend/xendfinance/yearn-savings/Tests/contracts/IGroupSchema.sol\":{\"keccak256\":\"0x6a181fbc3fbf7b38adbb19dea1576bec36fbd48f12e195570554387b942bea9c\",\"urls\":[\"bzz-raw://888c9d70ae45cfc721dc10abd589a36926c252d000bc79230f8aa286851a1e3a\",\"dweb:/ipfs/QmaD6LBAu1JKowSpsYMWPiupfErwVx9p67f22EnbisZ5wK\"]},\"/home/cally/code/xend/xendfinance/yearn-savings/Tests/contracts/StorageOwners.sol\":{\"keccak256\":\"0x68a125811456d1b20c916672b66066fa9af742ee5c91b372141087e1b5e34331\",\"urls\":[\"bzz-raw://92e0c23367b089936f060e5b0d1d7eec135b66d3336cbf0572aba5b450e9e6fc\",\"dweb:/ipfs/QmdKqoCHX1f7hmxPi97pXoD2iCqjg4BvLDQnRWWXYnW3R7\"]}},\"version\":1}",
"bytecode": "0x608060405260008054600160a060020a031916331790556120e0806100256000396000f3fe608060405234801561001057600080fd5b5060043610610223576000357c01000000000000000000000000000000000000000000000000000000009004806352bc00c41161013757806381ea68fe116100ca578063d1f4427811610099578063d1f4427814610958578063d73c9de414610960578063daf0cf43146109a0578063e824f2b5146109c3578063f2fde38b146109ef57610223565b806381ea68fe146108155780638c2248261461083b5780638edb1a06146108675780639a2597981461088d57610223565b80636cc29ea0116101065780636cc29ea0146107c25780636d3524f5146107df5780636f583ba6146107e757806380abc21a1461080d57610223565b806352bc00c4146106905780635e82c389146106ad5780636041fc881461077f5780636b2c46d5146107a557610223565b80632bd10bbc116101ba5780633ac179f8116101895780633ac179f81461059d5780634448d5e1146105ba578063458a8c07146105e657806348c889231461065657806348cf9e5c1461067357610223565b80632bd10bbc146104015780632e367f9f146104305780633037faf11461045c5780633525e9c41461057757610223565b80630fdf80ed116101f65780630fdf80ed1461034d578063165301a5146103735780632124d529146103995780632ada2596146103bf57610223565b806308099b5d1461022857806309080945146102b35780630c202741146102df5780630d15c07d1461030d575b600080fd5b6102986004803603602081101561023e57600080fd5b81019060208101813564010000000081111561025957600080fd5b82018360208201111561026b57600080fd5b8035906020019184600183028401116401000000008311171561028d57600080fd5b509092509050610a15565b60408051921515835260208301919091528051918290030190f35b610298600480360360408110156102c957600080fd5b5080359060200135600160a060020a0316610a6e565b61030b600480360360408110156102f557600080fd5b5080359060200135600160a060020a0316610ac5565b005b6103396004803603604081101561032357600080fd5b5080359060200135600160a060020a0316610cfa565b604080519115158252519081900360200190f35b61030b6004803603602081101561036357600080fd5b5035600160a060020a0316610d0d565b6103396004803603602081101561038957600080fd5b5035600160a060020a0316610d9c565b61030b600480360360208110156103af57600080fd5b5035600160a060020a0316610daf565b6103e5600480360360208110156103d557600080fd5b5035600160a060020a0316610f48565b60408051600160a060020a039092168252519081900360200190f35b61041e6004803603602081101561041757600080fd5b5035610fa6565b60408051918252519081900360200190f35b61041e6004803603604081101561044657600080fd5b50600160a060020a038135169060200135611051565b6104796004803603602081101561047257600080fd5b503561112c565b60405180858152602001806020018060200184600160a060020a0316600160a060020a03168152602001838103835286818151815260200191508051906020019080838360005b838110156104d85781810151838201526020016104c0565b50505050905090810190601f1680156105055780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610538578181015183820152602001610520565b50505050905090810190601f1680156105655780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b61041e6004803603602081101561058d57600080fd5b5035600160a060020a031661114b565b61041e600480360360208110156105b357600080fd5b5035611166565b610298600480360360408110156105d057600080fd5b50600160a060020a038135169060200135611178565b610339600480360360208110156105fc57600080fd5b81019060208101813564010000000081111561061757600080fd5b82018360208201111561062957600080fd5b8035906020019184600183028401116401000000008311171561064b57600080fd5b5090925090506111e6565b6102986004803603602081101561066c57600080fd5b5035611227565b61041e6004803603602081101561068957600080fd5b5035611269565b61041e600480360360208110156106a657600080fd5b5035611274565b61030b600480360360808110156106c357600080fd5b813591908101906040810160208201356401000000008111156106e557600080fd5b8201836020820111156106f757600080fd5b8035906020019184600183028401116401000000008311171561071957600080fd5b91939092909160208101903564010000000081111561073757600080fd5b82018360208201111561074957600080fd5b8035906020019184600183028401116401000000008311171561076b57600080fd5b919350915035600160a060020a03166112db565b61030b6004803603602081101561079557600080fd5b5035600160a060020a03166113e7565b610339600480360360208110156107bb57600080fd5b5035611458565b610479600480360360208110156107d857600080fd5b5035611463565b61041e6115f5565b61030b600480360360208110156107fd57600080fd5b5035600160a060020a03166115fc565b61041e611673565b61041e6004803603602081101561082b57600080fd5b5035600160a060020a0316611679565b61041e6004803603604081101561085157600080fd5b50600160a060020a038135169060200135611694565b61041e6004803603602081101561087d57600080fd5b5035600160a060020a0316611789565b61041e600480360360608110156108a357600080fd5b8101906020810181356401000000008111156108be57600080fd5b8201836020820111156108d057600080fd5b803590602001918460018302840111640100000000831117156108f257600080fd5b91939092909160208101903564010000000081111561091057600080fd5b82018360208201111561092257600080fd5b8035906020019184600183028401116401000000008311171561094457600080fd5b919350915035600160a060020a03166117a4565b61041e611b2f565b61097d6004803603602081101561097657600080fd5b5035611b35565b60408051600160a060020a03909316835260208301919091528051918290030190f35b610298600480360360408110156109b657600080fd5b5080359060200135611b9d565b610298600480360360408110156109d957600080fd5b50600160a060020a038135169060200135611bc2565b61030b60048036036020811015610a0557600080fd5b5035600160a060020a0316611bf1565b600080610a20611eeb565b60058585604051808383808284379190910194855250506040805160209481900385018120818301909252815460ff1615158082526001909201549401849052989297509195505050505050565b600080610a79611eeb565b5050506000918252600960209081526040808420600160a060020a03939093168452918152918190208151808301909252805460ff161515808352600190910154919092018190529091565b3360009081526001602052604090205460ff1680610b1b576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b6000610b278484611c7c565b90508015610b7f576040805160e560020a62461bcd02815260206004820152601360248201527f47726f7570206d656d6265722065786973747300000000000000000000000000604482015290519081900360640190fd5b610b87611eeb565b5060408051808201909152600181526006546020820152610ba6611f02565b50604080516060810182526001808252600160a060020a0396871660208084018281528486018b815260008c815260078452878120805480880182559082528482208a516002928302909101805491151560ff199283161781558b87018051918a0191909155878452600887528a84208054808b0182559085528785208d519185020180549115159184169190911781558151908a01559e83526009865289832096835295909452968720975188549015159085161788559a5196840196909655600680549384018155909452915192027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f8101805494519097166101000274ffffffffffffffffffffffffffffffffffffffff001993151594909216939093179190911617909355505090517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4090910155565b6000610d068383611c7c565b9392505050565b3360009081526001602052604090205460ff1680610d63576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b50336000908152600160208190526040808320805460ff19908116909155600160a060020a039490941683529091208054909216179055565b6000610da782611ca7565b90505b919050565b3360009081526001602052604090205460ff1680610e05576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b610e0d611eeb565b506040805180820190915260018152600160a060020a03831660208201526000610e3684611ca7565b90508015610e8e576040805160e560020a62461bcd02815260206004820152601560248201527f4d656d62657220616c7265616479206578697374730000000000000000000000604482015290519081900360640190fd5b610e96611eeb565b50506040805180820182526001808252600a805460208085018281528285018455600093845287517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a890930180549883015160ff19998a169415159490941774ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a0395861602179055989091168252600b90529290922090518154909316921515929092178255925192019190915550565b600080610f5483611cdd565b9050610f5e611eeb565b600a8281548110610f6b57fe5b60009182526020918290206040805180820190915291015460ff8116151582526101009004600160a060020a03169101819052949350505050565b3360009081526001602052604081205460ff1680610ffc576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b82600e5410156110405760405160e560020a62461bcd0281526004018080602001828103825260288152602001806120836028913960400191505060405180910390fd5b5050600e8054919091039081905590565b3360009081526001602052604081205460ff16806110a7576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600f6020526040902054838110156111025760405160e560020a62461bcd0281526004018080602001828103825260288152602001806120836028913960400191505060405180910390fd5b505050600160a060020a03919091166000908152600f602052604090208054919091039081905590565b6000606080600061113c85611d73565b93509350935093509193509193565b600160a060020a031660009081526004602052604090205490565b60009081526007602052604090205490565b600080611183611eeb565b600160a060020a03851660009081526004602052604090208054859081106111a757fe5b600091825260209182902060408051808201909152600290920201805460ff161515808352600190910154919092018190529093509150509250929050565b6000610d0683838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611de692505050565b600080611232611eeb565b5050506000908152600360209081526040918290208251808401909352805460ff1615158084526001909101549290910182905291565b6000610da782611e53565b3360009081526001602052604081205460ff16806112ca576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b5050600e8054919091019081905590565b3360009081526001602052604090205460ff1680611331576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600061133c88611e53565b905086866002838154811061134d57fe5b9060005260206000209060050201600201919061136b929190611f22565b5084846002838154811061137b57fe5b90600052602060002090600502016003019190611399929190611f22565b5082600282815481106113a857fe5b906000526020600020906005020160040160006101000a815481600160a060020a030219169083600160a060020a031602179055505050505050505050565b600054600160a060020a03163314611437576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b6000610da782611ed6565b600060608060008061147486611e53565b905060006002828154811061148557fe5b90600052602060002090600502019050806001015481600201826003018360040160009054906101000a9004600160a060020a0316828054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561154f5780601f106115245761010080835404028352916020019161154f565b820191906000526020600020905b81548152906001019060200180831161153257829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959850879450925084019050828280156115dd5780601f106115b2576101008083540402835291602001916115dd565b820191906000526020600020905b8154815290600101906020018083116115c057829003601f168201915b50505050509150955095509550955050509193509193565b6002545b90565b600054600160a060020a0316331461164c576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b600d5490565b600160a060020a031660009081526008602052604090205490565b3360009081526001602052604081205460ff16806116ea576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600f602052604090205461176057600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb501805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790555b600160a060020a0384166000908152600f60205260409020805484019081905591505092915050565b600160a060020a03166000908152600f602052604090205490565b3360009081526001602052604081205460ff16806117fa576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600061183b88888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611de692505050565b90508015611893576040805160e560020a62461bcd02815260206004820181905260248201527f47726f7570206e616d652068617320616c7265616479206265656e2075736564604482015290519081900360640190fd5b600c805460010190556118a4611fa0565b6040518060a00160405280600115158152602001600c5481526020018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8b0181900481028201810190925289815291810191908a908a9081908401838280828437600092019190915250505090825250600160a060020a038716602090910152600254909150611952611eeb565b506040805180820182526001808252602080830185905260028054928301815560005285517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace6005909302928301805460ff1916911515919091178155868201517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf840155938601518051939487949093611a13937f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0909101920190611fda565b5060608201518051611a2f916003840191602090910190611fda565b50608091909101516004909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055600c546000908152600360209081526040918290208351815460ff191690151517815590830151600191909101555181906005908d908d908083838082843791909101948552505060408051602094819003850190208551815460ff1990811691151591909117825595850151600191820155600160a060020a039c909c166000908152600485529081208054808e0182559082529084902086516002909202018054909516901515178455505091909101519601959095555050600c54979650505050505050565b600e5490565b600080611b40611f02565b60068481548110611b4d57fe5b6000918252602091829020604080516060810182526002909302909101805460ff811615158452600160a060020a0361010090910416938301849052600101549101819052909350915050915091565b600080611ba8611eeb565b60008581526007602052604090208054859081106111a757fe5b600080611bcd611eeb565b600160a060020a03851660009081526008602052604090208054859081106111a757fe5b600054600160a060020a03163314611c41576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600160a060020a03811615611c79576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6000918252600960209081526040808420600160a060020a0393909316845291905290205460ff1690565b600160a060020a0381166000908152600b602052604081205460ff168015611cd3576001915050610daa565b6000915050610daa565b600160a060020a0381166000908152600b602052604081205460ff16801515600114611d53576040805160e560020a62461bcd02815260206004820152601060248201527f4d656d626572206e6f7420666f756e6400000000000000000000000000000000604482015290519081900360640190fd5b5050600160a060020a03166000908152600b602052604090206001015490565b60025460009060609081908390858111611dd7576040805160e560020a62461bcd02815260206004820152600c60248201527f4f7574206f662072616e67650000000000000000000000000000000000000000604482015290519081900360640190fd5b60006002878154811061148557fe5b6000806005836040518082805190602001908083835b60208310611e1b5780518252601f199092019160209182019101611dfc565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092205460ff1695945050505050565b60008181526003602052604081205460ff16801515600114611ebf576040805160e560020a62461bcd02815260206004820152600f60248201527f47726f7570206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b505060009081526003602052604090206001015490565b60009081526003602052604090205460ff1690565b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f635782800160ff19823516178555611f90565b82800160010185558215611f90579182015b82811115611f90578235825591602001919060010190611f75565b50611f9c929150612048565b5090565b6040518060a001604052806000151581526020016000815260200160608152602001606081526020016000600160a060020a031681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061201b57805160ff1916838001178555611f90565b82800160010185558215611f90579182015b82811115611f9057825182559160200191906001019061202d565b6115f991905b80821115611f9c576000815560010161204e56fe756e617574686f72697a65642061636365737320746f20636f6e7472616374006465706f7369742062616c616e6365206f7665726472616674206973206e6f7420616c6c6f776564a26469706673582212206562085419b6bf035d9a04baa20d16decae53be844a0d4191073a29b787f030164736f6c63430006060033",
"deployedBytecode": "0x608060405234801561001057600080fd5b5060043610610223576000357c01000000000000000000000000000000000000000000000000000000009004806352bc00c41161013757806381ea68fe116100ca578063d1f4427811610099578063d1f4427814610958578063d73c9de414610960578063daf0cf43146109a0578063e824f2b5146109c3578063f2fde38b146109ef57610223565b806381ea68fe146108155780638c2248261461083b5780638edb1a06146108675780639a2597981461088d57610223565b80636cc29ea0116101065780636cc29ea0146107c25780636d3524f5146107df5780636f583ba6146107e757806380abc21a1461080d57610223565b806352bc00c4146106905780635e82c389146106ad5780636041fc881461077f5780636b2c46d5146107a557610223565b80632bd10bbc116101ba5780633ac179f8116101895780633ac179f81461059d5780634448d5e1146105ba578063458a8c07146105e657806348c889231461065657806348cf9e5c1461067357610223565b80632bd10bbc146104015780632e367f9f146104305780633037faf11461045c5780633525e9c41461057757610223565b80630fdf80ed116101f65780630fdf80ed1461034d578063165301a5146103735780632124d529146103995780632ada2596146103bf57610223565b806308099b5d1461022857806309080945146102b35780630c202741146102df5780630d15c07d1461030d575b600080fd5b6102986004803603602081101561023e57600080fd5b81019060208101813564010000000081111561025957600080fd5b82018360208201111561026b57600080fd5b8035906020019184600183028401116401000000008311171561028d57600080fd5b509092509050610a15565b60408051921515835260208301919091528051918290030190f35b610298600480360360408110156102c957600080fd5b5080359060200135600160a060020a0316610a6e565b61030b600480360360408110156102f557600080fd5b5080359060200135600160a060020a0316610ac5565b005b6103396004803603604081101561032357600080fd5b5080359060200135600160a060020a0316610cfa565b604080519115158252519081900360200190f35b61030b6004803603602081101561036357600080fd5b5035600160a060020a0316610d0d565b6103396004803603602081101561038957600080fd5b5035600160a060020a0316610d9c565b61030b600480360360208110156103af57600080fd5b5035600160a060020a0316610daf565b6103e5600480360360208110156103d557600080fd5b5035600160a060020a0316610f48565b60408051600160a060020a039092168252519081900360200190f35b61041e6004803603602081101561041757600080fd5b5035610fa6565b60408051918252519081900360200190f35b61041e6004803603604081101561044657600080fd5b50600160a060020a038135169060200135611051565b6104796004803603602081101561047257600080fd5b503561112c565b60405180858152602001806020018060200184600160a060020a0316600160a060020a03168152602001838103835286818151815260200191508051906020019080838360005b838110156104d85781810151838201526020016104c0565b50505050905090810190601f1680156105055780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015610538578181015183820152602001610520565b50505050905090810190601f1680156105655780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b61041e6004803603602081101561058d57600080fd5b5035600160a060020a031661114b565b61041e600480360360208110156105b357600080fd5b5035611166565b610298600480360360408110156105d057600080fd5b50600160a060020a038135169060200135611178565b610339600480360360208110156105fc57600080fd5b81019060208101813564010000000081111561061757600080fd5b82018360208201111561062957600080fd5b8035906020019184600183028401116401000000008311171561064b57600080fd5b5090925090506111e6565b6102986004803603602081101561066c57600080fd5b5035611227565b61041e6004803603602081101561068957600080fd5b5035611269565b61041e600480360360208110156106a657600080fd5b5035611274565b61030b600480360360808110156106c357600080fd5b813591908101906040810160208201356401000000008111156106e557600080fd5b8201836020820111156106f757600080fd5b8035906020019184600183028401116401000000008311171561071957600080fd5b91939092909160208101903564010000000081111561073757600080fd5b82018360208201111561074957600080fd5b8035906020019184600183028401116401000000008311171561076b57600080fd5b919350915035600160a060020a03166112db565b61030b6004803603602081101561079557600080fd5b5035600160a060020a03166113e7565b610339600480360360208110156107bb57600080fd5b5035611458565b610479600480360360208110156107d857600080fd5b5035611463565b61041e6115f5565b61030b600480360360208110156107fd57600080fd5b5035600160a060020a03166115fc565b61041e611673565b61041e6004803603602081101561082b57600080fd5b5035600160a060020a0316611679565b61041e6004803603604081101561085157600080fd5b50600160a060020a038135169060200135611694565b61041e6004803603602081101561087d57600080fd5b5035600160a060020a0316611789565b61041e600480360360608110156108a357600080fd5b8101906020810181356401000000008111156108be57600080fd5b8201836020820111156108d057600080fd5b803590602001918460018302840111640100000000831117156108f257600080fd5b91939092909160208101903564010000000081111561091057600080fd5b82018360208201111561092257600080fd5b8035906020019184600183028401116401000000008311171561094457600080fd5b919350915035600160a060020a03166117a4565b61041e611b2f565b61097d6004803603602081101561097657600080fd5b5035611b35565b60408051600160a060020a03909316835260208301919091528051918290030190f35b610298600480360360408110156109b657600080fd5b5080359060200135611b9d565b610298600480360360408110156109d957600080fd5b50600160a060020a038135169060200135611bc2565b61030b60048036036020811015610a0557600080fd5b5035600160a060020a0316611bf1565b600080610a20611eeb565b60058585604051808383808284379190910194855250506040805160209481900385018120818301909252815460ff1615158082526001909201549401849052989297509195505050505050565b600080610a79611eeb565b5050506000918252600960209081526040808420600160a060020a03939093168452918152918190208151808301909252805460ff161515808352600190910154919092018190529091565b3360009081526001602052604090205460ff1680610b1b576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b6000610b278484611c7c565b90508015610b7f576040805160e560020a62461bcd02815260206004820152601360248201527f47726f7570206d656d6265722065786973747300000000000000000000000000604482015290519081900360640190fd5b610b87611eeb565b5060408051808201909152600181526006546020820152610ba6611f02565b50604080516060810182526001808252600160a060020a0396871660208084018281528486018b815260008c815260078452878120805480880182559082528482208a516002928302909101805491151560ff199283161781558b87018051918a0191909155878452600887528a84208054808b0182559085528785208d519185020180549115159184169190911781558151908a01559e83526009865289832096835295909452968720975188549015159085161788559a5196840196909655600680549384018155909452915192027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f8101805494519097166101000274ffffffffffffffffffffffffffffffffffffffff001993151594909216939093179190911617909355505090517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4090910155565b6000610d068383611c7c565b9392505050565b3360009081526001602052604090205460ff1680610d63576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b50336000908152600160208190526040808320805460ff19908116909155600160a060020a039490941683529091208054909216179055565b6000610da782611ca7565b90505b919050565b3360009081526001602052604090205460ff1680610e05576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b610e0d611eeb565b506040805180820190915260018152600160a060020a03831660208201526000610e3684611ca7565b90508015610e8e576040805160e560020a62461bcd02815260206004820152601560248201527f4d656d62657220616c7265616479206578697374730000000000000000000000604482015290519081900360640190fd5b610e96611eeb565b50506040805180820182526001808252600a805460208085018281528285018455600093845287517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a890930180549883015160ff19998a169415159490941774ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a0395861602179055989091168252600b90529290922090518154909316921515929092178255925192019190915550565b600080610f5483611cdd565b9050610f5e611eeb565b600a8281548110610f6b57fe5b60009182526020918290206040805180820190915291015460ff8116151582526101009004600160a060020a03169101819052949350505050565b3360009081526001602052604081205460ff1680610ffc576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b82600e5410156110405760405160e560020a62461bcd0281526004018080602001828103825260288152602001806120836028913960400191505060405180910390fd5b5050600e8054919091039081905590565b3360009081526001602052604081205460ff16806110a7576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600f6020526040902054838110156111025760405160e560020a62461bcd0281526004018080602001828103825260288152602001806120836028913960400191505060405180910390fd5b505050600160a060020a03919091166000908152600f602052604090208054919091039081905590565b6000606080600061113c85611d73565b93509350935093509193509193565b600160a060020a031660009081526004602052604090205490565b60009081526007602052604090205490565b600080611183611eeb565b600160a060020a03851660009081526004602052604090208054859081106111a757fe5b600091825260209182902060408051808201909152600290920201805460ff161515808352600190910154919092018190529093509150509250929050565b6000610d0683838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611de692505050565b600080611232611eeb565b5050506000908152600360209081526040918290208251808401909352805460ff1615158084526001909101549290910182905291565b6000610da782611e53565b3360009081526001602052604081205460ff16806112ca576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b5050600e8054919091019081905590565b3360009081526001602052604090205460ff1680611331576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600061133c88611e53565b905086866002838154811061134d57fe5b9060005260206000209060050201600201919061136b929190611f22565b5084846002838154811061137b57fe5b90600052602060002090600502016003019190611399929190611f22565b5082600282815481106113a857fe5b906000526020600020906005020160040160006101000a815481600160a060020a030219169083600160a060020a031602179055505050505050505050565b600054600160a060020a03163314611437576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b6000610da782611ed6565b600060608060008061147486611e53565b905060006002828154811061148557fe5b90600052602060002090600502019050806001015481600201826003018360040160009054906101000a9004600160a060020a0316828054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561154f5780601f106115245761010080835404028352916020019161154f565b820191906000526020600020905b81548152906001019060200180831161153257829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959850879450925084019050828280156115dd5780601f106115b2576101008083540402835291602001916115dd565b820191906000526020600020905b8154815290600101906020018083116115c057829003601f168201915b50505050509150955095509550955050509193509193565b6002545b90565b600054600160a060020a0316331461164c576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b600d5490565b600160a060020a031660009081526008602052604090205490565b3360009081526001602052604081205460ff16806116ea576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600f602052604090205461176057600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb501805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790555b600160a060020a0384166000908152600f60205260409020805484019081905591505092915050565b600160a060020a03166000908152600f602052604090205490565b3360009081526001602052604081205460ff16806117fa576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600061183b88888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611de692505050565b90508015611893576040805160e560020a62461bcd02815260206004820181905260248201527f47726f7570206e616d652068617320616c7265616479206265656e2075736564604482015290519081900360640190fd5b600c805460010190556118a4611fa0565b6040518060a00160405280600115158152602001600c5481526020018a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8b0181900481028201810190925289815291810191908a908a9081908401838280828437600092019190915250505090825250600160a060020a038716602090910152600254909150611952611eeb565b506040805180820182526001808252602080830185905260028054928301815560005285517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace6005909302928301805460ff1916911515919091178155868201517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf840155938601518051939487949093611a13937f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad0909101920190611fda565b5060608201518051611a2f916003840191602090910190611fda565b50608091909101516004909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055600c546000908152600360209081526040918290208351815460ff191690151517815590830151600191909101555181906005908d908d908083838082843791909101948552505060408051602094819003850190208551815460ff1990811691151591909117825595850151600191820155600160a060020a039c909c166000908152600485529081208054808e0182559082529084902086516002909202018054909516901515178455505091909101519601959095555050600c54979650505050505050565b600e5490565b600080611b40611f02565b60068481548110611b4d57fe5b6000918252602091829020604080516060810182526002909302909101805460ff811615158452600160a060020a0361010090910416938301849052600101549101819052909350915050915091565b600080611ba8611eeb565b60008581526007602052604090208054859081106111a757fe5b600080611bcd611eeb565b600160a060020a03851660009081526008602052604090208054859081106111a757fe5b600054600160a060020a03163314611c41576040805160e560020a62461bcd02815260206004820152601f6024820152600080516020612063833981519152604482015290519081900360640190fd5b600160a060020a03811615611c79576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6000918252600960209081526040808420600160a060020a0393909316845291905290205460ff1690565b600160a060020a0381166000908152600b602052604081205460ff168015611cd3576001915050610daa565b6000915050610daa565b600160a060020a0381166000908152600b602052604081205460ff16801515600114611d53576040805160e560020a62461bcd02815260206004820152601060248201527f4d656d626572206e6f7420666f756e6400000000000000000000000000000000604482015290519081900360640190fd5b5050600160a060020a03166000908152600b602052604090206001015490565b60025460009060609081908390858111611dd7576040805160e560020a62461bcd02815260206004820152600c60248201527f4f7574206f662072616e67650000000000000000000000000000000000000000604482015290519081900360640190fd5b60006002878154811061148557fe5b6000806005836040518082805190602001908083835b60208310611e1b5780518252601f199092019160209182019101611dfc565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092205460ff1695945050505050565b60008181526003602052604081205460ff16801515600114611ebf576040805160e560020a62461bcd02815260206004820152600f60248201527f47726f7570206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b505060009081526003602052604090206001015490565b60009081526003602052604090205460ff1690565b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f635782800160ff19823516178555611f90565b82800160010185558215611f90579182015b82811115611f90578235825591602001919060010190611f75565b50611f9c929150612048565b5090565b6040518060a001604052806000151581526020016000815260200160608152602001606081526020016000600160a060020a031681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061201b57805160ff1916838001178555611f90565b82800160010185558215611f90579182015b82811115611f9057825182559160200191906001019061202d565b6115f991905b80821115611f9c576000815560010161204e56fe756e617574686f72697a65642061636365737320746f20636f6e7472616374006465706f7369742062616c616e6365206f7665726472616674206973206e6f7420616c6c6f776564a26469706673582212206562085419b6bf035d9a04baa20d16decae53be844a0d4191073a29b787f030164736f6c63430006060033",
"immutableReferences": {},
"sourceMap": "85:11497:21:-:0;;;158:5:39;:18;;-1:-1:-1;;;;;;158:18:39;166:10;158:18;;;85:11497:21;;;;;;",
"deployedSourceMap": "85:11497:21:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;85:11497:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;9696:271:21;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9696:271:21;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;9696:271:21;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;9696:271:21;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;9696:271:21;;-1:-1:-1;9696:271:21;-1:-1:-1;9696:271:21;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;7103:314;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7103:314:21;;;;;;-1:-1:-1;;;;;7103:314:21;;:::i;6188:641::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6188:641:21;;;;;;-1:-1:-1;;;;;6188:641:21;;:::i;:::-;;8489:188;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8489:188:21;;;;;;-1:-1:-1;;;;;8489:188:21;;:::i;:::-;;;;;;;;;;;;;;;;;;428:190:39;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;428:190:39;-1:-1:-1;;;;;428:190:39;;:::i;5857:124:21:-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5857:124:21;-1:-1:-1;;;;;5857:124:21;;:::i;3088:425::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3088:425:21;-1:-1:-1;;;;;3088:425:21;;:::i;3519:209::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3519:209:21;-1:-1:-1;;;;;3519:209:21;;:::i;:::-;;;;-1:-1:-1;;;;;3519:209:21;;;;;;;;;;;;;;2642:331;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2642:331:21;;:::i;:::-;;;;;;;;;;;;;;;;1813:442;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1813:442:21;;;;;;;;:::i;10360:252::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10360:252:21;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10360:252:21;-1:-1:-1;;;;;10360:252:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10360:252:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10360:252:21;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10360:252:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9168:189;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9168:189:21;-1:-1:-1;;;;;9168:189:21;;:::i;7423:188::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7423:188:21;;:::i;9363:327::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;9363:327:21;;;;;;;;:::i;5481:158::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5481:158:21;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;5481:158:21;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;5481:158:21;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;5481:158:21;;-1:-1:-1;5481:158:21;-1:-1:-1;5481:158:21;:::i;8915:247::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;8915:247:21;;:::i;11180:119::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11180:119:21;;:::i;2432:204::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2432:204:21;;:::i;4828:356::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;4828:356:21;;;;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;4828:356:21;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;4828:356:21;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4828:356:21;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;4828:356:21;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;4828:356:21;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4828:356:21;;-1:-1:-1;4828:356:21;-1:-1:-1;4828:356:21;-1:-1:-1;;;;;4828:356:21;;:::i;307:115:39:-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;307:115:39;-1:-1:-1;;;;;307:115:39;;:::i;5190:118:21:-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5190:118:21;;:::i;9973:381::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9973:381:21;;:::i;10618:128::-;;;:::i;189:112:39:-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;189:112:39;-1:-1:-1;;;;;189:112:39;;:::i;1280:155:21:-;;;:::i;7617:200::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7617:200:21;-1:-1:-1;;;;;7617:200:21;;:::i;1441:366::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;1441:366:21;;;;;;;;:::i;2261:165::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2261:165:21;-1:-1:-1;;;;;2261:165:21;;:::i;4025:797::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4025:797:21;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;4025:797:21;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;4025:797:21;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4025:797:21;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;4025:797:21;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;4025:797:21;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4025:797:21;;-1:-1:-1;4025:797:21;-1:-1:-1;4025:797:21;-1:-1:-1;;;;;4025:797:21;;:::i;2979:103::-;;;:::i;6835:262::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6835:262:21;;:::i;:::-;;;;-1:-1:-1;;;;;6835:262:21;;;;;;;;;;;;;;;;;;;;;7823:317;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;7823:317:21;;;;;;;:::i;8146:337::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8146:337:21;;;;;;;;:::i;624:155:39:-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;624:155:39;-1:-1:-1;;;;;624:155:39;;:::i;9696:271:21:-;9801:10;9813:13;9842:30;;:::i;:::-;9875:18;9894:9;;9875:29;;;;;30:3:-1;22:6;14;1:33;45:16;;;;9875:29:21;;;-1:-1:-1;;9875:29:21;;;;;;;;;;;;9842:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9696:271:21;;-1:-1:-1;;;;;;9696:271:21:o;7103:314::-;7222:11;7235:13;7269:30;;:::i;:::-;-1:-1:-1;;;7311:32:21;;;;:23;:32;;;;;;;;-1:-1:-1;;;;;7311:43:21;;;;;;;;;;;;;7269:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7103:314::o;6188:641::-;974:10:39;942:14;959:26;;;:14;:26;;;;;;;;;995:53;;;;;-1:-1:-1;;;;;995:53:39;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;995:53:39;;;;;;;;;;;;;;;6316:10:21::1;6329:41;6351:7;6360:9;6329:21;:41::i;:::-;6316:54:::0;-1:-1:-1;6388:14:21;::::1;6380:46;;;::::0;;-1:-1:-1;;;;;6380:46:21;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;6437:30;;:::i;:::-;-1:-1:-1::0;6470:38:21::1;::::0;;;;::::1;::::0;;;6482:4:::1;6470:38:::0;;6488:12:::1;:19:::0;6470:38:::1;::::0;::::1;::::0;6519:30:::1;;:::i;:::-;-1:-1:-1::0;6552:37:21::1;::::0;;::::1;::::0;::::1;::::0;;6564:4:::1;6552:37:::0;;;-1:-1:-1;;;;;6552:37:21;;::::1;;::::0;;::::1;::::0;;;;;;;;;-1:-1:-1;6600:28:21;;;:19:::1;:28:::0;;;;;27:10:-1;;23:18;;::::1;45:23:::0;;6600:46:21;;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;6600:46:21;;::::1;;::::0;;;;::::1;::::0;;;;::::1;::::0;;;;6656:41;;;:30:::1;:41:::0;;;;;27:10:-1;;23:18;;::::1;45:23:::0;;6656:59:21;;;;;;;;;;::::1;;::::0;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;;;;::::1;::::0;6725:32;;;:23:::1;:32:::0;;;;;:43;;;;;;;;;;:57;;;;;::::1;;::::0;;::::1;;::::0;;;;;;::::1;::::0;;;;6792:12:::1;27:10:-1::0;;23:18;;::::1;45:23:::0;;6792:30:21;;;;;;::::1;::::0;;::::1;::::0;;;;;;::::1;6600:46;6792:30;-1:-1:-1::0;;6792:30:21;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;::::1;;::::0;;;-1:-1:-1;;6792:30:21;;;;;;;6188:641::o;8489:188::-;8602:4;8629:41;8651:7;8660:9;8629:21;:41::i;:::-;8622:48;8489:188;-1:-1:-1;;;8489:188:21:o;428:190:39:-;974:10;942:14;959:26;;;:14;:26;;;;;;;;;995:53;;;;;-1:-1:-1;;;;;995:53:39;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;995:53:39;;;;;;;;;;;;;;;-1:-1:-1;550:10:39::1;564:5;535:26:::0;;;:14:::1;:26;::::0;;;;;;;:34;;-1:-1:-1;;535:34:39;;::::1;::::0;;;-1:-1:-1;;;;;579:25:39;;;::::1;::::0;;;;;:32;;;;::::1;;::::0;;428:190::o;5857:124:21:-;5924:4;5947:27;5964:9;5947:16;:27::i;:::-;5940:34;;5857:124;;;;:::o;3088:425::-;974:10:39;942:14;959:26;;;:14;:26;;;;;;;;;995:53;;;;;-1:-1:-1;;;;;995:53:39;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;995:53:39;;;;;;;;;;;;;;;3194:20:21::1;;:::i;:::-;-1:-1:-1::0;3217:23:21::1;::::0;;;;::::1;::::0;;;3224:4:::1;3217:23:::0;;-1:-1:-1;;;;;3217:23:21;::::1;;::::0;::::1;::::0;-1:-1:-1;3264:27:21::1;3230:9:::0;3264:16:::1;:27::i;:::-;3251:40:::0;-1:-1:-1;3310:14:21;::::1;3302:48;;;::::0;;-1:-1:-1;;;;;3302:48:21;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;3361:30;;:::i;:::-;-1:-1:-1::0;;3394:33:21::1;::::0;;;;::::1;::::0;;3406:4:::1;3394:33:::0;;;3412:7:::1;:14:::0;;3394:33:::1;::::0;;::::1;::::0;;;23:18:-1;;::::1;45:23:::0;;-1:-1;3438:20:21;;;;;;;;::::1;::::0;;;;::::1;::::0;-1:-1:-1;;3438:20:21;;::::1;::::0;::::1;;::::0;;;::::1;-1:-1:-1::0;;3438:20:21::1;;-1:-1:-1::0;;;;;3438:20:21;;::::1;;;::::0;;3468:24;;;::::1;::::0;;:13:::1;:24:::0;;;;;;:38;;;;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;-1:-1:-1;3088:425:21:o;3519:209::-;3579:7;3598:13;3614:25;3630:8;3614:15;:25::i;:::-;3598:41;;3649:20;;:::i;:::-;3672:7;3680:5;3672:14;;;;;;;;;;;;;;;;;3649:37;;;;;;;;;3672:14;;3649:37;;;;;;;;;;;-1:-1:-1;;;;;3649:37:21;;;;;;;3519:209;-1:-1:-1;;;;3519:209:21:o;2642:331::-;974:10:39;2749:7:21;959:26:39;;;:14;:26;;;;;;;;;995:53;;;;;-1:-1:-1;;;;;995:53:39;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;995:53:39;;;;;;;;;;;;;;;2817:6:21::1;2793:20;;:30;;2772:117;;;;-1:-1:-1::0;;;;;2772:117:21::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;2899:20:21::1;:30:::0;;;;;::::1;::::0;;;;;2642:331::o;1813:442::-;974:10:39;1942:7:21;959:26:39;;;:14;:26;;;;;;;;;995:53;;;;;-1:-1:-1;;;;;995:53:39;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;995:53:39;;;;;;;;;;;;;;;-1:-1:-1;;;;;1989:34:21;::::1;1965:21;1989:34:::0;;;:20:::1;:34;::::0;;;;;2054:23;;::::1;;2033:110;;;;-1:-1:-1::0;;;;;2033:110:21::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;2153:34:21;;;::::1;;::::0;;;:20:::1;:34;::::0;;;;:44;;;;;::::1;::::0;;;;;1813:442::o;10360:252::-;10460:7;10481:13;10508;10535:15;10582:23;10599:5;10582:16;:23::i;:::-;10575:30;;;;;;;;10360:252;;;;;:::o;9168:189::-;-1:-1:-1;;;;;9307:36:21;9277:7;9307:36;;;:22;:36;;;;;:43;;9168:189::o;7423:188::-;7539:7;7569:28;;;:19;:28;;;;;:35;;7423:188::o;9363:327::-;9490:10;9502:13;9532:30;;:::i;:::-;-1:-1:-1;;;;;9574:36:21;;;;;;:22;:36;;;;;:53;;9611:15;;9574:53;;;;;;;;;;;;;;;9532:95;;;;;;;;;9574:53;;;;;9532:95;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9532:95:21;-1:-1:-1;;9363:327:21;;;;;:::o;5481:158::-;5579:4;5606:26;5622:9;;5606:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5606:15:21;;-1:-1:-1;;;5606:26:21:i;8915:247::-;9004:10;9016:13;9045:30;;:::i;:::-;-1:-1:-1;;;9078:21:21;;;;:12;:21;;;;;;;;;9045:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8915:247::o;11180:119::-;11243:7;11269:23;11284:7;11269:14;:23::i;2432:204::-;974:10:39;2539:7:21;959:26:39;;;:14;:26;;;;;;;;;995:53;;;;;-1:-1:-1;;;;;995:53:39;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;995:53:39;;;;;;;;;;;;;;;-1:-1:-1;;2562:20:21::1;:30:::0;;;;;::::1;::::0;;;;;2432:204::o;4828:356::-;974:10:39;942:14;959:26;;;:14;:26;;;;;;;;;995:53;;;;;-1:-1:-1;;;;;995:53:39;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;995:53:39;;;;;;;;;;;;;;;5014:13:21::1;5030:18;5045:2;5030:14;:18::i;:::-;5014:34;;5079:4;;5058:6;5065:5;5058:13;;;;;;;;;;;;;;;;;;:18;;:25;;;;;;;:::i;:::-;;5116:6;;5093;5100:5;5093:13;;;;;;;;;;;;;;;;;;:20;;:29;;;;;;;:::i;:::-;;5163:14;5132:6;5139:5;5132:13;;;;;;;;;;;;;;;;;;:28;;;:45;;;;;-1:-1:-1::0;;;;;5132:45:21::1;;;;;-1:-1:-1::0;;;;;5132:45:21::1;;;;;;1058:1:39;4828:356:21::0;;;;;;;:::o;307:115:39:-;838:5;;-1:-1:-1;;;;;838:5:39;824:10;:19;816:63;;;;;-1:-1:-1;;;;;816:63:39;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;816:63:39;;;;;;;;;;;;;;;-1:-1:-1;;;;;385:22:39::1;410:5;385:22:::0;;;:14:::1;:22;::::0;;;;:30;;-1:-1:-1;;385:30:39::1;::::0;;307:115::o;5190:118:21:-;5254:4;5277:24;5293:7;5277:15;:24::i;9973:381::-;10072:7;10093:13;10120;10147:15;10187:13;10203:23;10218:7;10203:14;:23::i;:::-;10187:39;;10237:19;10259:6;10266:5;10259:13;;;;;;;;;;;;;;;;;;10237:35;;10290:5;:8;;;10300:5;:10;;10312:5;:12;;10326:5;:20;;;;;;;;;;-1:-1:-1;;;;;10326:20:21;10282:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10282:65:21;;;;;;;;;;;;;-1:-1:-1;;10282:65:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10282:65:21;;-1:-1:-1;10282:65:21;-1:-1:-1;10282:65:21;;;-1:-1:-1;10282:65:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9973:381;;;;;:::o;10618:128::-;10703:6;:13;10618:128;;:::o;189:112:39:-;838:5;;-1:-1:-1;;;;;838:5:39;824:10;:19;816:63;;;;;-1:-1:-1;;;;;816:63:39;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;816:63:39;;;;;;;;;;;;;;;-1:-1:-1;;;;;265:22:39::1;;::::0;;;290:4:::1;265:22;::::0;;;;;;;:29;;-1:-1:-1;;265:29:39::1;::::0;;::::1;::::0;;189:112::o;1280:155:21:-;1407:14;:21;1280:155;:::o;7617:200::-;-1:-1:-1;;;;;7762:41:21;7736:7;7762:41;;;:30;:41;;;;;:48;;7617:200::o;1441:366::-;974:10:39;1570:7:21;959:26:39;;;:14;:26;;;;;;;;;995:53;;;;;-1:-1:-1;;;;;995:53:39;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;995:53:39;;;;;;;;;;;;;;;-1:-1:-1;;;;;1597:34:21;::::1;;::::0;;;:20:::1;:34;::::0;;;;;1593:103:::1;;1652:14;27:10:-1::0;;39:1:::1;23:18:::0;::::1;45:23:::0;;-1:-1;1652:33:21;;;;;::::1;::::0;;-1:-1:-1;;1652:33:21::1;-1:-1:-1::0;;;;;1652:33:21;::::1;;::::0;;1593:103:::1;-1:-1:-1::0;;;;;1705:34:21;::::1;;::::0;;;:20:::1;:34;::::0;;;;:44;;;::::1;::::0;;;;;-1:-1:-1;1441:366:21;;;;;:::o;2261:165::-;-1:-1:-1;;;;;2385:34:21;2355:7;2385:34;;;:20;:34;;;;;;;2261:165::o;4025:797::-;974:10:39;4180:7:21;959:26:39;;;:14;:26;;;;;;;;;995:53;;;;;-1:-1:-1;;;;;995:53:39;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;995:53:39;;;;;;;;;;;;;;;4199:10:21::1;4212:21;4228:4;;4212:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;4212:15:21::1;::::0;-1:-1:-1;;;4212:21:21:i:1;:::-;4199:34:::0;-1:-1:-1;4251:14:21;::::1;4243:59;;;::::0;;-1:-1:-1;;;;;4243:59:21;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;4313:11;:16:::0;;4328:1:::1;4313:16;::::0;;4339:18:::1;;:::i;:::-;4360:131;;;;;;;;4379:4;4360:131;;;;;;4397:11;;4360:131;;;;4422:4;;4360:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;;4360:131:21;;;-1:-1:-1;4360:131:21::1;::::0;;::::1;137:4:-1;4360:131:21::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;::::1;::::0;;4440:6;;;;;;4360:131;::::1;4440:6:::0;;;;4360:131;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;;4360:131:21;;;-1:-1:-1;;;;;;4360:131:21;::::1;;::::0;;::::1;::::0;4517:6:::1;:13:::0;4339:152;;-1:-1:-1;4540:30:21::1;;:::i;:::-;-1:-1:-1::0;4573:24:21::1;::::0;;;;::::1;::::0;;4585:4:::1;4573:24:::0;;;::::1;::::0;;::::1;::::0;;;4607:6:::1;27:10:-1::0;;23:18;;::::1;45:23:::0;;-1:-1;4607:18:21;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;4607:18:21::1;::::0;::::1;;::::0;;;::::1;::::0;;;;::::1;::::0;;;;;;;::::1;::::0;;;4573:24;;4607:18;;;;::::1;::::0;;;;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;4607:18:21::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;4607:18:21::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;4607:18:21::1;-1:-1:-1::0;;;;;4607:18:21;;::::1;::::0;;;::::1;::::0;;4648:11:::1;::::0;-1:-1:-1;4635:25:21;;;:12:::1;:25;::::0;;;;;;;;:39;;;;-1:-1:-1;;4635:39:21::1;::::0;::::1;;;::::0;;;;::::1;::::0;-1:-1:-1;4635:39:21;;;::::1;::::0;4684:24;4635:39;;4684:18:::1;::::0;4703:4;;;;4684:24;4703:4;;;;4684:24;1:33:-1::1;45:16:::0;;;::::1;4684:24:21::0;;;-1:-1:-1;;4684:24:21::1;::::0;;::::1;::::0;;;;;;;;:38;;;;-1:-1:-1;;4684:38:21;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;;;::::1;::::0;-1:-1:-1;4684:38:21;;::::1;::::0;-1:-1:-1;;;;;4732:36:21;;;::::1;-1:-1:-1::0;4732:36:21;;;:22:::1;:36:::0;;;;;27:10:-1;;23:18;;::::1;45:23:::0;;4732:54:21;;;;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;::::1;;;::::0;;-1:-1:-1;;4732:54:21;;;::::1;::::0;;::::1;::::0;;;;-1:-1:-1;;4804:11:21::1;::::0;;4025:797;-1:-1:-1;;;;;;;4025:797:21:o;2979:103::-;3055:20;;2979:103;:::o;6835:262::-;6921:24;6947:15;6978:30;;:::i;:::-;7011:12;7024:5;7011:19;;;;;;;;;;;;;;;;;6978:52;;;;;;;;7011:19;;;;;;;6978:52;;;;;;;;;-1:-1:-1;;;;;6978:52:21;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6978:52:21;-1:-1:-1;;6835:262:21;;;:::o;7823:317::-;7944:10;7956:13;7990:30;;:::i;:::-;8032:28;;;;:19;:28;;;;;:45;;8061:15;;8032:45;;;;;8146:337;8278:10;8290:13;8320:30;;:::i;:::-;-1:-1:-1;;;;;8362:41:21;;;;;;:30;:41;;;;;:58;;8404:15;;8362:58;;;;;624:155:39;838:5;;-1:-1:-1;;;;;838:5:39;824:10;:19;816:63;;;;;-1:-1:-1;;;;;816:63:39;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;816:63:39;;;;;;;;;;;;;;;-1:-1:-1;;;;;708:22:39;::::1;::::0;704:69:::1;;746:5;:16:::0;;-1:-1:-1;;746:16:39::1;-1:-1:-1::0;;;;;746:16:39;::::1;;::::0;;704:69:::1;624:155:::0;:::o;8683:226:21:-;8797:4;8830:32;;;:23;:32;;;;;;;;-1:-1:-1;;;;;8830:43:21;;;;;;;;;;;:50;;;;8683:226::o;5987:195::-;-1:-1:-1;;;;;6084:24:21;;6055:4;6084:24;;;:13;:24;;;;;:31;;;6126:49;;;;6144:4;6137:11;;;;;6126:49;6170:5;6163:12;;;;;3734:285;-1:-1:-1;;;;;3842:23:21;;3800:7;3842:23;;;:13;:23;;;;;:30;;;3890:23;;;3842:30;3890:23;3882:52;;;;;-1:-1:-1;;;;;3882:52:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3961:23:21;3945:13;3961:23;;;:13;:23;;;;;:29;;;;3734:285::o;10752:422::-;10985:6;:13;10853:7;;10874:13;;;;10853:7;;11016:14;;;11008:39;;;;;-1:-1:-1;;;;;11008:39:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;11057:19;11079:6;11086:5;11079:13;;;;;;;5645:206;5742:4;5762:15;5780:18;5799:9;5780:29;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;5780:29:21;;;;;-1:-1:-1;5780:29:21;;;;;;;;;;:36;;;;5645:206;-1:-1:-1;;;;;5645:206:21:o;11305:275::-;11369:7;11410:21;;;:12;:21;;;;;:28;;;11456:22;;;11410:28;11456:22;11448:50;;;;;-1:-1:-1;;;;;11448:50:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11508:13:21;11524:21;;;:12;:21;;;;;:27;;;;11305:275::o;5314:161::-;5379:4;5413:21;;;:12;:21;;;;;:28;;;;5314:161::o;85:11497::-;;;;;;;;;;-1:-1:-1;85:11497:21;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;85:11497:21;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;85:11497:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;85:11497:21;;;-1:-1:-1;85:11497:21;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;85:11497:21;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
"source": "pragma solidity ^0.6.0;\n\nimport \"./IGroupSchema.sol\";\nimport \"./StorageOwners.sol\";\n\ncontract Groups is IGroupSchema, StorageOwners {\n // list of group records\n Group[] private Groups;\n //Mapping that enables ease of traversal of the group records\n mapping(uint256 => RecordIndex) private GroupIndexer;\n\n // Mapping that enables ease of traversal of groups created by an addressor\n mapping(address => RecordIndex[]) private GroupForCreatorIndexer;\n\n // indexes a group location using the group name\n mapping(string => RecordIndex) private GroupIndexerByName;\n\n GroupMember[] GroupMembers;\n\n //Mapping of a groups members. Key is the group id,\n mapping(uint256 => RecordIndex[]) private GroupMembersIndexer;\n\n mapping(address => RecordIndex[]) private GroupMembersIndexerByDepositor;\n mapping(uint256 => mapping(address => RecordIndex))\n private GroupMembersDeepIndexer;\n\n // list of group records\n Member[] private Members;\n\n //Mapping that enables ease of traversal of the member records. key is the member address\n mapping(address => RecordIndex) private MemberIndexer;\n\n uint256 lastGroupId;\n\n address[] tokenAddresses;\n uint256 totalEthersDeposited;\n mapping(address => uint256) totalTokensDeposited;\n\n function getLengthOfTokenAddressesUsedInDeposit()\n external\n view\n returns (uint256)\n {\n return tokenAddresses.length;\n }\n\n function incrementTokenDeposit(address tokenAddress, uint256 amount)\n external\n onlyStorageOracle\n returns (uint256)\n {\n if (totalTokensDeposited[tokenAddress] == 0) {\n tokenAddresses.push(tokenAddress);\n }\n totalTokensDeposited[tokenAddress] += amount;\n return totalTokensDeposited[tokenAddress];\n }\n\n function decrementTokenDeposit(address tokenAddress, uint256 amount)\n external\n onlyStorageOracle\n returns (uint256)\n {\n uint256 currentAmount = totalTokensDeposited[tokenAddress];\n require(\n currentAmount >= amount,\n \"deposit balance overdraft is not allowed\"\n );\n totalTokensDeposited[tokenAddress] -= amount;\n return totalTokensDeposited[tokenAddress];\n }\n\n function getTokenDeposit(address tokenAddress)\n external\n view\n returns (uint256)\n {\n return totalTokensDeposited[tokenAddress];\n }\n\n function incrementEtherDeposit(uint256 amount)\n external\n onlyStorageOracle\n returns (uint256)\n {\n totalEthersDeposited += amount;\n return totalEthersDeposited;\n }\n\n function decrementEtherDeposit(uint256 amount)\n external\n onlyStorageOracle\n returns (uint256)\n {\n require(\n totalEthersDeposited >= amount,\n \"deposit balance overdraft is not allowed\"\n );\n totalEthersDeposited -= amount;\n return totalEthersDeposited;\n }\n\n function getEtherDeposit() external view returns (uint256) {\n return totalEthersDeposited;\n }\n\n function createMember(address payable depositor)\n external\n onlyStorageOracle\n {\n Member memory member = Member(true, depositor);\n\n bool exist = _doesMemberExist(depositor);\n\n require(exist == false, \"Member already exists\");\n\n RecordIndex memory recordIndex = RecordIndex(true, Members.length);\n\n Members.push(member);\n MemberIndexer[depositor] = recordIndex;\n }\n\n function getMember(address _address) external view returns (address) {\n uint256 index = _getMemberIndex(_address);\n Member memory member = Members[index];\n\n return (member._address);\n }\n\n function _getMemberIndex(address _address) internal view returns (uint256) {\n bool doesMemberExist = MemberIndexer[_address].exists;\n require(doesMemberExist == true, \"Member not found\");\n\n uint256 index = MemberIndexer[_address].index;\n return index;\n }\n\n function createGroup(\n string calldata name,\n string calldata symbol,\n address groupCreator\n ) external onlyStorageOracle returns (uint256) {\n bool exist = _doesGroupExist(name);\n require(exist == false, \"Group name has already been used\");\n\n lastGroupId += 1;\n Group memory group = Group(\n true,\n lastGroupId,\n name,\n symbol,\n payable(groupCreator)\n );\n uint256 index = Groups.length;\n RecordIndex memory recordIndex = RecordIndex(true, index);\n Groups.push(group);\n GroupIndexer[lastGroupId] = recordIndex;\n GroupIndexerByName[name] = recordIndex;\n GroupForCreatorIndexer[groupCreator].push(recordIndex);\n\n return lastGroupId;\n }\n\n function updateGroup(\n uint256 id,\n string calldata name,\n string calldata symbol,\n address payable creatorAddress\n ) external onlyStorageOracle {\n uint256 index = _getGroupIndex(id);\n Groups[index].name = name;\n Groups[index].symbol = symbol;\n Groups[index].creatorAddress = creatorAddress;\n }\n\n function doesGroupExist(uint256 groupId) external view returns (bool) {\n return _doesGroupExist(groupId);\n }\n\n function _doesGroupExist(uint256 groupId) internal view returns (bool) {\n bool groupExist = GroupIndexer[groupId].exists;\n return groupExist;\n }\n\n function doesGroupExist(string calldata groupName)\n external\n view\n returns (bool)\n {\n return _doesGroupExist(groupName);\n }\n\n function _doesGroupExist(string memory groupName)\n internal\n view\n returns (bool)\n {\n bool groupExist = GroupIndexerByName[groupName].exists;\n\n return groupExist;\n }\n\n function doesMemberExist(address depositor) external view returns (bool) {\n return _doesMemberExist(depositor);\n }\n\n function _doesMemberExist(address depositor) internal view returns (bool) {\n bool exist = MemberIndexer[depositor].exists;\n\n if (exist) return true;\n else return false;\n }\n\n function createGroupMember(uint256 groupId, address payable depositor)\n external\n onlyStorageOracle\n {\n bool exist = _doesGroupMemberExist(groupId, depositor);\n require(exist == false, \"Group member exists\");\n\n RecordIndex memory recordIndex = RecordIndex(true, GroupMembers.length);\n\n GroupMember memory groupMember = GroupMember(true, depositor, groupId);\n\n GroupMembersIndexer[groupId].push(recordIndex);\n GroupMembersIndexerByDepositor[depositor].push(recordIndex);\n GroupMembersDeepIndexer[groupId][depositor] = recordIndex;\n GroupMembers.push(groupMember);\n }\n\n function getGroupMember(uint256 index)\n external\n view\n returns (address payable _address, uint256 groupId)\n {\n GroupMember memory groupMember = GroupMembers[index];\n return (groupMember._address, groupMember.groupId);\n }\n\n function getGroupMembersDeepIndexer(uint256 groupId, address depositor)\n external\n view\n returns (bool exists, uint256 index)\n {\n\n RecordIndex memory recordIndex\n = GroupMembersDeepIndexer[groupId][depositor];\n return (recordIndex.exists, recordIndex.index);\n }\n\n function getRecordIndexLengthForGroupMembersIndexer(uint256 groupId)\n external\n view\n returns (uint256)\n {\n return GroupMembersIndexer[groupId].length;\n }\n\n function getRecordIndexLengthForGroupMembersIndexerByDepositor(\n address depositor\n ) external view returns (uint256) {\n return GroupMembersIndexerByDepositor[depositor].length;\n }\n\n function getGroupMembersIndexer(uint256 groupId, uint256 indexerLocation)\n external\n view\n returns (bool exist, uint256 index)\n {\n\n RecordIndex memory recordIndex\n = GroupMembersIndexer[groupId][indexerLocation];\n return (recordIndex.exists, recordIndex.index);\n }\n\n function getGroupMembersIndexerByDepositor(\n address depositor,\n uint256 indexerLocation\n ) external view returns (bool exist, uint256 index) {\n\n RecordIndex memory recordIndex\n = GroupMembersIndexerByDepositor[depositor][indexerLocation];\n return (recordIndex.exists, recordIndex.index);\n }\n\n function doesGroupMemberExist(uint256 groupId, address depositor)\n external\n view\n returns (bool)\n {\n return _doesGroupMemberExist(groupId, depositor);\n }\n\n function _doesGroupMemberExist(uint256 groupId, address depositor)\n internal\n view\n returns (bool)\n {\n bool exist = GroupMembersDeepIndexer[groupId][depositor].exists;\n return exist;\n }\n\n function getGroupIndexer(uint256 groupId)\n external\n view\n returns (bool exist, uint256 index)\n {\n RecordIndex memory recordIndex = GroupIndexer[groupId];\n return (recordIndex.exists, recordIndex.index);\n }\n\n function getRecordIndexLengthForCreator(address groupCreator)\n external\n view\n returns (uint256)\n {\n return GroupForCreatorIndexer[groupCreator].length;\n }\n\n function getGroupForCreatorIndexer(\n address groupCreator,\n uint256 indexerLocation\n ) external view returns (bool exist, uint256 index) {\n\n RecordIndex memory recordIndex\n = GroupForCreatorIndexer[groupCreator][indexerLocation];\n return (recordIndex.exists, recordIndex.index);\n }\n\n function getGroupIndexerByName(string calldata groupName)\n external\n view\n returns (bool exist, uint256 index)\n {\n RecordIndex memory recordIndex = GroupIndexerByName[groupName];\n return (recordIndex.exists, recordIndex.index);\n }\n\n function getGroupById(uint256 groupId)\n external\n view\n returns (\n uint256,\n string memory,\n string memory,\n address payable\n )\n {\n uint256 index = _getGroupIndex(groupId);\n\n Group storage group = Groups[index];\n return (group.id, group.name, group.symbol, group.creatorAddress);\n }\n\n function getGroupByIndex(uint256 index)\n external\n view\n returns (\n uint256,\n string memory,\n string memory,\n address payable\n )\n {\n return _getGroupByIndex(index);\n }\n\n function getGroupsLength() external view returns (uint256 length) {\n length = Groups.length;\n return length;\n }\n\n function _getGroupByIndex(uint256 index)\n internal\n view\n returns (\n uint256,\n string memory,\n string memory,\n address payable\n )\n {\n uint256 length = Groups.length;\n require(length > index, \"Out of range\");\n Group storage group = Groups[index];\n return (group.id, group.name, group.symbol, group.creatorAddress);\n }\n\n function getGroupIndex(uint256 groupId) external view returns (uint256) {\n return _getGroupIndex(groupId);\n }\n\n function _getGroupIndex(uint256 groupId) internal view returns (uint256) {\n bool doesGroupExist = GroupIndexer[groupId].exists;\n require(doesGroupExist == true, \"Group not found\");\n uint256 index = GroupIndexer[groupId].index;\n return index;\n }\n}\n",
"sourcePath": "/home/cally/code/xend/xendfinance/yearn-savings/Tests/contracts/Groups.sol",
"ast": {
"absolutePath": "/home/cally/code/xend/xendfinance/yearn-savings/Tests/contracts/Groups.sol",
"exportedSymbols": {
"Groups": [
6982
]
},
"id": 6983,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 6001,
"literals": [
"solidity",
"^",
"0.6",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:21"
},
{
"absolutePath": "/home/cally/code/xend/xendfinance/yearn-savings/Tests/contracts/IGroupSchema.sol",
"file": "./IGroupSchema.sol",
"id": 6002,
"nodeType": "ImportDirective",
"scope": 6983,
"sourceUnit": 7694,
"src": "25:28:21",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/cally/code/xend/xendfinance/yearn-savings/Tests/contracts/StorageOwners.sol",
"file": "./StorageOwners.sol",
"id": 6003,
"nodeType": "ImportDirective",
"scope": 6983,
"sourceUnit": 9190,
"src": "54:29:21",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 6004,
"name": "IGroupSchema",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7693,
"src": "104:12:21",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IGroupSchema_$7693",
"typeString": "contract IGroupSchema"
}
},
"id": 6005,
"nodeType": "InheritanceSpecifier",
"src": "104:12:21"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 6006,
"name": "StorageOwners",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 9189,
"src": "118:13:21",
"typeDescriptions": {
"typeIdentifier": "t_contract$_StorageOwners_$9189",
"typeString": "contract StorageOwners"
}
},
"id": 6007,
"nodeType": "InheritanceSpecifier",
"src": "118:13:21"
}
],
"contractDependencies": [
7693,
9189
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 6982,
"linearizedBaseContracts": [
6982,
9189,
7693
],
"name": "Groups",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 6010,
"mutability": "mutable",
"name": "Groups",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "167:22:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 6008,
"name": "Group",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7610,
"src": "167:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group"
}
},
"id": 6009,
"length": null,
"nodeType": "ArrayTypeName",
"src": "167:7:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage_ptr",
"typeString": "struct IGroupSchema.Group[]"
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6014,
"mutability": "mutable",
"name": "GroupIndexer",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "261:52:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex)"
},
"typeName": {
"id": 6013,
"keyType": {
"id": 6011,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "269:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "261:31:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex)"
},
"valueType": {
"contractScope": null,
"id": 6012,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "280:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6019,
"mutability": "mutable",
"name": "GroupForCreatorIndexer",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "400:64:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex[])"
},
"typeName": {
"id": 6018,
"keyType": {
"id": 6015,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "408:7:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "400:33:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex[])"
},
"valueType": {
"baseType": {
"contractScope": null,
"id": 6016,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "419:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"id": 6017,
"length": null,
"nodeType": "ArrayTypeName",
"src": "419:13:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex[]"
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6023,
"mutability": "mutable",
"name": "GroupIndexerByName",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "524:57:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(string => struct IGroupSchema.RecordIndex)"
},
"typeName": {
"id": 6022,
"keyType": {
"id": 6020,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "532:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"nodeType": "Mapping",
"src": "524:30:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(string => struct IGroupSchema.RecordIndex)"
},
"valueType": {
"contractScope": null,
"id": 6021,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "542:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6026,
"mutability": "mutable",
"name": "GroupMembers",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "588:26:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_GroupMember_$7683_storage_$dyn_storage",
"typeString": "struct IGroupSchema.GroupMember[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 6024,
"name": "GroupMember",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7683,
"src": "588:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_storage_ptr",
"typeString": "struct IGroupSchema.GroupMember"
}
},
"id": 6025,
"length": null,
"nodeType": "ArrayTypeName",
"src": "588:13:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_GroupMember_$7683_storage_$dyn_storage_ptr",
"typeString": "struct IGroupSchema.GroupMember[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6031,
"mutability": "mutable",
"name": "GroupMembersIndexer",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "677:61:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex[])"
},
"typeName": {
"id": 6030,
"keyType": {
"id": 6027,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "685:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "677:33:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex[])"
},
"valueType": {
"baseType": {
"contractScope": null,
"id": 6028,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "696:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"id": 6029,
"length": null,
"nodeType": "ArrayTypeName",
"src": "696:13:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex[]"
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6036,
"mutability": "mutable",
"name": "GroupMembersIndexerByDepositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "745:72:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex[])"
},
"typeName": {
"id": 6035,
"keyType": {
"id": 6032,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "753:7:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "745:33:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex[])"
},
"valueType": {
"baseType": {
"contractScope": null,
"id": 6033,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "764:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"id": 6034,
"length": null,
"nodeType": "ArrayTypeName",
"src": "764:13:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex[]"
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6042,
"mutability": "mutable",
"name": "GroupMembersDeepIndexer",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "823:91:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$_$",
"typeString": "mapping(uint256 => mapping(address => struct IGroupSchema.RecordIndex))"
},
"typeName": {
"id": 6041,
"keyType": {
"id": 6037,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "831:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "823:51:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$_$",
"typeString": "mapping(uint256 => mapping(address => struct IGroupSchema.RecordIndex))"
},
"valueType": {
"id": 6040,
"keyType": {
"id": 6038,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "850:7:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "842:31:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex)"
},
"valueType": {
"contractScope": null,
"id": 6039,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "861:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6045,
"mutability": "mutable",
"name": "Members",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "950:24:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Member_$7676_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Member[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 6043,
"name": "Member",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7676,
"src": "950:6:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_storage_ptr",
"typeString": "struct IGroupSchema.Member"
}
},
"id": 6044,
"length": null,
"nodeType": "ArrayTypeName",
"src": "950:8:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Member_$7676_storage_$dyn_storage_ptr",
"typeString": "struct IGroupSchema.Member[]"
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6049,
"mutability": "mutable",
"name": "MemberIndexer",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "1075:53:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex)"
},
"typeName": {
"id": 6048,
"keyType": {
"id": 6046,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1083:7:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "1075:31:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex)"
},
"valueType": {
"contractScope": null,
"id": 6047,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "1094:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6051,
"mutability": "mutable",
"name": "lastGroupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "1135:19:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6050,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1135:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6054,
"mutability": "mutable",
"name": "tokenAddresses",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "1161:24:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 6052,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1161:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 6053,
"length": null,
"nodeType": "ArrayTypeName",
"src": "1161:9:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6056,
"mutability": "mutable",
"name": "totalEthersDeposited",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "1191:28:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6055,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1191:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6060,
"mutability": "mutable",
"name": "totalTokensDeposited",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "1225:48:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 6059,
"keyType": {
"id": 6057,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1233:7:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "1225:27:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 6058,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1244:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 6068,
"nodeType": "Block",
"src": "1390:45:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6065,
"name": "tokenAddresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6054,
"src": "1407:14:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 6066,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1407:21:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6064,
"id": 6067,
"nodeType": "Return",
"src": "1400:28:21"
}
]
},
"documentation": null,
"functionSelector": "80abc21a",
"id": 6069,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getLengthOfTokenAddressesUsedInDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6061,
"nodeType": "ParameterList",
"parameters": [],
"src": "1327:2:21"
},
"returnParameters": {
"id": 6064,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6063,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6069,
"src": "1377:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6062,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1377:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1376:9:21"
},
"scope": 6982,
"src": "1280:155:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6103,
"nodeType": "Block",
"src": "1583:224:21",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 6084,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6080,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "1597:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6082,
"indexExpression": {
"argumentTypes": null,
"id": 6081,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6071,
"src": "1618:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1597:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 6083,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1635:1:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1597:39:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 6092,
"nodeType": "IfStatement",
"src": "1593:103:21",
"trueBody": {
"id": 6091,
"nodeType": "Block",
"src": "1638:58:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6088,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6071,
"src": "1672:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"argumentTypes": null,
"id": 6085,
"name": "tokenAddresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6054,
"src": "1652:14:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 6087,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1652:19:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 6089,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1652:33:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6090,
"nodeType": "ExpressionStatement",
"src": "1652:33:21"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 6097,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6093,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "1705:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6095,
"indexExpression": {
"argumentTypes": null,
"id": 6094,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6071,
"src": "1726:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1705:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"id": 6096,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6073,
"src": "1743:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1705:44:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6098,
"nodeType": "ExpressionStatement",
"src": "1705:44:21"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6099,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "1766:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6101,
"indexExpression": {
"argumentTypes": null,
"id": 6100,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6071,
"src": "1787:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1766:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6079,
"id": 6102,
"nodeType": "Return",
"src": "1759:41:21"
}
]
},
"documentation": null,
"functionSelector": "8c224826",
"id": 6104,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6076,
"modifierName": {
"argumentTypes": null,
"id": 6075,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "1535:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "1535:17:21"
}
],
"name": "incrementTokenDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6074,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6071,
"mutability": "mutable",
"name": "tokenAddress",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6104,
"src": "1472:20:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6070,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1472:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6073,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6104,
"src": "1494:14:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6072,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1494:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1471:38:21"
},
"returnParameters": {
"id": 6079,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6078,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6104,
"src": "1570:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6077,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1570:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1569:9:21"
},
"scope": 6982,
"src": "1441:366:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6138,
"nodeType": "Block",
"src": "1955:300:21",
"statements": [
{
"assignments": [
6116
],
"declarations": [
{
"constant": false,
"id": 6116,
"mutability": "mutable",
"name": "currentAmount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6138,
"src": "1965:21:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6115,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1965:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6120,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6117,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "1989:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6119,
"indexExpression": {
"argumentTypes": null,
"id": 6118,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6106,
"src": "2010:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1989:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1965:58:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 6124,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6122,
"name": "currentAmount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6116,
"src": "2054:13:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 6123,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6108,
"src": "2071:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2054:23:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6465706f7369742062616c616e6365206f7665726472616674206973206e6f7420616c6c6f776564",
"id": 6125,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2091:42:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_93135185e3cdc7267f9e95576d02a002a0a0a999bb1e29d0bfab2a49fec4b4db",
"typeString": "literal_string \"deposit balance overdraft is not allowed\""
},
"value": "deposit balance overdraft is not allowed"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_93135185e3cdc7267f9e95576d02a002a0a0a999bb1e29d0bfab2a49fec4b4db",
"typeString": "literal_string \"deposit balance overdraft is not allowed\""
}
],
"id": 6121,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2033:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6126,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2033:110:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6127,
"nodeType": "ExpressionStatement",
"src": "2033:110:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6132,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6128,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "2153:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6130,
"indexExpression": {
"argumentTypes": null,
"id": 6129,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6106,
"src": "2174:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2153:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 6131,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6108,
"src": "2191:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2153:44:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6133,
"nodeType": "ExpressionStatement",
"src": "2153:44:21"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6134,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "2214:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6136,
"indexExpression": {
"argumentTypes": null,
"id": 6135,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6106,
"src": "2235:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2214:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6114,
"id": 6137,
"nodeType": "Return",
"src": "2207:41:21"
}
]
},
"documentation": null,
"functionSelector": "2e367f9f",
"id": 6139,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6111,
"modifierName": {
"argumentTypes": null,
"id": 6110,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "1907:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "1907:17:21"
}
],
"name": "decrementTokenDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6109,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6106,
"mutability": "mutable",
"name": "tokenAddress",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6139,
"src": "1844:20:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6105,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1844:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6108,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6139,
"src": "1866:14:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6107,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1866:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1843:38:21"
},
"returnParameters": {
"id": 6114,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6113,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6139,
"src": "1942:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6112,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1942:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1941:9:21"
},
"scope": 6982,
"src": "1813:442:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6150,
"nodeType": "Block",
"src": "2368:58:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6146,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "2385:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6148,
"indexExpression": {
"argumentTypes": null,
"id": 6147,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6141,
"src": "2406:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2385:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6145,
"id": 6149,
"nodeType": "Return",
"src": "2378:41:21"
}
]
},
"documentation": null,
"functionSelector": "8edb1a06",
"id": 6151,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getTokenDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6142,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6141,
"mutability": "mutable",
"name": "tokenAddress",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6151,
"src": "2286:20:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6140,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2286:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2285:22:21"
},
"returnParameters": {
"id": 6145,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6144,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6151,
"src": "2355:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6143,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2355:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2354:9:21"
},
"scope": 6982,
"src": "2261:165:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6166,
"nodeType": "Block",
"src": "2552:84:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 6162,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 6160,
"name": "totalEthersDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6056,
"src": "2562:20:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"id": 6161,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6153,
"src": "2586:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2562:30:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6163,
"nodeType": "ExpressionStatement",
"src": "2562:30:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6164,
"name": "totalEthersDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6056,
"src": "2609:20:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6159,
"id": 6165,
"nodeType": "Return",
"src": "2602:27:21"
}
]
},
"documentation": null,
"functionSelector": "52bc00c4",
"id": 6167,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6156,
"modifierName": {
"argumentTypes": null,
"id": 6155,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "2504:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "2504:17:21"
}
],
"name": "incrementEtherDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6154,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6153,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6167,
"src": "2463:14:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6152,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2463:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2462:16:21"
},
"returnParameters": {
"id": 6159,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6158,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6167,
"src": "2539:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6157,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2539:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2538:9:21"
},
"scope": 6982,
"src": "2432:204:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6189,
"nodeType": "Block",
"src": "2762:211:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 6179,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6177,
"name": "totalEthersDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6056,
"src": "2793:20:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 6178,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6169,
"src": "2817:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2793:30:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6465706f7369742062616c616e6365206f7665726472616674206973206e6f7420616c6c6f776564",
"id": 6180,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2837:42:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_93135185e3cdc7267f9e95576d02a002a0a0a999bb1e29d0bfab2a49fec4b4db",
"typeString": "literal_string \"deposit balance overdraft is not allowed\""
},
"value": "deposit balance overdraft is not allowed"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_93135185e3cdc7267f9e95576d02a002a0a0a999bb1e29d0bfab2a49fec4b4db",
"typeString": "literal_string \"deposit balance overdraft is not allowed\""
}
],
"id": 6176,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2772:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6181,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2772:117:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6182,
"nodeType": "ExpressionStatement",
"src": "2772:117:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6185,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 6183,
"name": "totalEthersDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6056,
"src": "2899:20:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 6184,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6169,
"src": "2923:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2899:30:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6186,
"nodeType": "ExpressionStatement",
"src": "2899:30:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6187,
"name": "totalEthersDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6056,
"src": "2946:20:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6175,
"id": 6188,
"nodeType": "Return",
"src": "2939:27:21"
}
]
},
"documentation": null,
"functionSelector": "2bd10bbc",
"id": 6190,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6172,
"modifierName": {
"argumentTypes": null,
"id": 6171,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "2714:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "2714:17:21"
}
],
"name": "decrementEtherDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6170,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6169,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6190,
"src": "2673:14:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6168,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2673:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2672:16:21"
},
"returnParameters": {
"id": 6175,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6174,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6190,
"src": "2749:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6173,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2749:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2748:9:21"
},
"scope": 6982,
"src": "2642:331:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6197,
"nodeType": "Block",
"src": "3038:44:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 6195,
"name": "totalEthersDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6056,
"src": "3055:20:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6194,
"id": 6196,
"nodeType": "Return",
"src": "3048:27:21"
}
]
},
"documentation": null,
"functionSelector": "d1f44278",
"id": 6198,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getEtherDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6191,
"nodeType": "ParameterList",
"parameters": [],
"src": "3003:2:21"
},
"returnParameters": {
"id": 6194,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6193,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6198,
"src": "3029:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6192,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3029:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3028:9:21"
},
"scope": 6982,
"src": "2979:103:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6245,
"nodeType": "Block",
"src": "3184:329:21",
"statements": [
{
"assignments": [
6206
],
"declarations": [
{
"constant": false,
"id": 6206,
"mutability": "mutable",
"name": "member",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6245,
"src": "3194:20:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_memory_ptr",
"typeString": "struct IGroupSchema.Member"
},
"typeName": {
"contractScope": null,
"id": 6205,
"name": "Member",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7676,
"src": "3194:6:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_storage_ptr",
"typeString": "struct IGroupSchema.Member"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6211,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 6208,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3224:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"id": 6209,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6200,
"src": "3230:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 6207,
"name": "Member",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7676,
"src": "3217:6:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Member_$7676_storage_ptr_$",
"typeString": "type(struct IGroupSchema.Member storage pointer)"
}
},
"id": 6210,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3217:23:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_memory_ptr",
"typeString": "struct IGroupSchema.Member memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3194:46:21"
},
{
"assignments": [
6213
],
"declarations": [
{
"constant": false,
"id": 6213,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6245,
"src": "3251:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6212,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3251:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6217,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6215,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6200,
"src": "3281:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 6214,
"name": "_doesMemberExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6516,
"src": "3264:16:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
"typeString": "function (address) view returns (bool)"
}
},
"id": 6216,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3264:27:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3251:40:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 6221,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6219,
"name": "exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6213,
"src": "3310:5:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 6220,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3319:5:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"src": "3310:14:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "4d656d62657220616c726561647920657869737473",
"id": 6222,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3326:23:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d34a411e6db759566a168837edf6a26f23da6d9b5e90e8aa118b090931f87829",
"typeString": "literal_string \"Member already exists\""
},
"value": "Member already exists"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_d34a411e6db759566a168837edf6a26f23da6d9b5e90e8aa118b090931f87829",
"typeString": "literal_string \"Member already exists\""
}
],
"id": 6218,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "3302:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6223,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3302:48:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6224,
"nodeType": "ExpressionStatement",
"src": "3302:48:21"
},
{
"assignments": [
6226
],
"declarations": [
{
"constant": false,
"id": 6226,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6245,
"src": "3361:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6225,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "3361:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6232,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 6228,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3406:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6229,
"name": "Members",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6045,
"src": "3412:7:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Member_$7676_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Member storage ref[] storage ref"
}
},
"id": 6230,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3412:14:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6227,
"name": "RecordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7688,
"src": "3394:11:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_RecordIndex_$7688_storage_ptr_$",
"typeString": "type(struct IGroupSchema.RecordIndex storage pointer)"
}
},
"id": 6231,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3394:33:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3361:66:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6236,
"name": "member",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6206,
"src": "3451:6:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_memory_ptr",
"typeString": "struct IGroupSchema.Member memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Member_$7676_memory_ptr",
"typeString": "struct IGroupSchema.Member memory"
}
],
"expression": {
"argumentTypes": null,
"id": 6233,
"name": "Members",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6045,
"src": "3438:7:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Member_$7676_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Member storage ref[] storage ref"
}
},
"id": 6235,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3438:12:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Member_$7676_storage_$returns$__$",
"typeString": "function (struct IGroupSchema.Member storage ref)"
}
},
"id": 6237,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3438:20:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6238,
"nodeType": "ExpressionStatement",
"src": "3438:20:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6243,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6239,
"name": "MemberIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6049,
"src": "3468:13:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6241,
"indexExpression": {
"argumentTypes": null,
"id": 6240,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6200,
"src": "3482:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3468:24:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6242,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6226,
"src": "3495:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"src": "3468:38:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6244,
"nodeType": "ExpressionStatement",
"src": "3468:38:21"
}
]
},
"documentation": null,
"functionSelector": "2124d529",
"id": 6246,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6203,
"modifierName": {
"argumentTypes": null,
"id": 6202,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "3162:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "3162:17:21"
}
],
"name": "createMember",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6201,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6200,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6246,
"src": "3110:25:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 6199,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3110:15:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3109:27:21"
},
"returnParameters": {
"id": 6204,
"nodeType": "ParameterList",
"parameters": [],
"src": "3184:0:21"
},
"scope": 6982,
"src": "3088:425:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6269,
"nodeType": "Block",
"src": "3588:140:21",
"statements": [
{
"assignments": [
6254
],
"declarations": [
{
"constant": false,
"id": 6254,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6269,
"src": "3598:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6253,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3598:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6258,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6256,
"name": "_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6248,
"src": "3630:8:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 6255,
"name": "_getMemberIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6301,
"src": "3614:15:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
"typeString": "function (address) view returns (uint256)"
}
},
"id": 6257,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3614:25:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3598:41:21"
},
{
"assignments": [
6260
],
"declarations": [
{
"constant": false,
"id": 6260,
"mutability": "mutable",
"name": "member",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6269,
"src": "3649:20:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_memory_ptr",
"typeString": "struct IGroupSchema.Member"
},
"typeName": {
"contractScope": null,
"id": 6259,
"name": "Member",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7676,
"src": "3649:6:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_storage_ptr",
"typeString": "struct IGroupSchema.Member"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6264,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6261,
"name": "Members",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6045,
"src": "3672:7:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Member_$7676_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Member storage ref[] storage ref"
}
},
"id": 6263,
"indexExpression": {
"argumentTypes": null,
"id": 6262,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6254,
"src": "3680:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3672:14:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_storage",
"typeString": "struct IGroupSchema.Member storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3649:37:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6265,
"name": "member",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6260,
"src": "3705:6:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_memory_ptr",
"typeString": "struct IGroupSchema.Member memory"
}
},
"id": 6266,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_address",
"nodeType": "MemberAccess",
"referencedDeclaration": 7675,
"src": "3705:15:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"id": 6267,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3704:17:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"functionReturnParameters": 6252,
"id": 6268,
"nodeType": "Return",
"src": "3697:24:21"
}
]
},
"documentation": null,
"functionSelector": "2ada2596",
"id": 6270,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getMember",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6249,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6248,
"mutability": "mutable",
"name": "_address",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6270,
"src": "3538:16:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6247,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3538:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3537:18:21"
},
"returnParameters": {
"id": 6252,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6251,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6270,
"src": "3579:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6250,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3579:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3578:9:21"
},
"scope": 6982,
"src": "3519:209:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6300,
"nodeType": "Block",
"src": "3809:210:21",
"statements": [
{
"assignments": [
6278
],
"declarations": [
{
"constant": false,
"id": 6278,
"mutability": "mutable",
"name": "doesMemberExist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6300,
"src": "3819:20:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6277,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3819:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6283,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6279,
"name": "MemberIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6049,
"src": "3842:13:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6281,
"indexExpression": {
"argumentTypes": null,
"id": 6280,
"name": "_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6272,
"src": "3856:8:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3842:23:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6282,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "3842:30:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3819:53:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 6287,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6285,
"name": "doesMemberExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6278,
"src": "3890:15:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 6286,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3909:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "3890:23:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "4d656d626572206e6f7420666f756e64",
"id": 6288,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3915:18:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_fc1f262b34698d09d1ba7a1d92c0c5806c0ff83ba4b32a75ec01e3fa11279c22",
"typeString": "literal_string \"Member not found\""
},
"value": "Member not found"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_fc1f262b34698d09d1ba7a1d92c0c5806c0ff83ba4b32a75ec01e3fa11279c22",
"typeString": "literal_string \"Member not found\""
}
],
"id": 6284,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "3882:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6289,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3882:52:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6290,
"nodeType": "ExpressionStatement",
"src": "3882:52:21"
},
{
"assignments": [
6292
],
"declarations": [
{
"constant": false,
"id": 6292,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6300,
"src": "3945:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6291,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3945:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6297,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6293,
"name": "MemberIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6049,
"src": "3961:13:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6295,
"indexExpression": {
"argumentTypes": null,
"id": 6294,
"name": "_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6272,
"src": "3975:8:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3961:23:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6296,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "index",
"nodeType": "MemberAccess",
"referencedDeclaration": 7687,
"src": "3961:29:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3945:45:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6298,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6292,
"src": "4007:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6276,
"id": 6299,
"nodeType": "Return",
"src": "4000:12:21"
}
]
},
"documentation": null,
"id": 6301,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_getMemberIndex",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6273,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6272,
"mutability": "mutable",
"name": "_address",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6301,
"src": "3759:16:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6271,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3759:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3758:18:21"
},
"returnParameters": {
"id": 6276,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6275,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6301,
"src": "3800:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6274,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3800:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3799:9:21"
},
"scope": 6982,
"src": "3734:285:21",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 6383,
"nodeType": "Block",
"src": "4189:633:21",
"statements": [
{
"assignments": [
6315
],
"declarations": [
{
"constant": false,
"id": 6315,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6383,
"src": "4199:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6314,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "4199:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6319,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6317,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6303,
"src": "4228:4:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
],
"id": 6316,
"name": "_doesGroupExist",
"nodeType": "Identifier",
"overloadedDeclarations": [
6454,
6483
],
"referencedDeclaration": 6483,
"src": "4212:15:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_bool_$",
"typeString": "function (string memory) view returns (bool)"
}
},
"id": 6318,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4212:21:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4199:34:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 6323,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6321,
"name": "exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6315,
"src": "4251:5:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 6322,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4260:5:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"src": "4251:14:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "47726f7570206e616d652068617320616c7265616479206265656e2075736564",
"id": 6324,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4267:34:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_36dbb2f869e7e864e28590896062e39da8f8f005a8e87a407a4964205d84f588",
"typeString": "literal_string \"Group name has already been used\""
},
"value": "Group name has already been used"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_36dbb2f869e7e864e28590896062e39da8f8f005a8e87a407a4964205d84f588",
"typeString": "literal_string \"Group name has already been used\""
}
],
"id": 6320,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "4243:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6325,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4243:59:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6326,
"nodeType": "ExpressionStatement",
"src": "4243:59:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6329,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 6327,
"name": "lastGroupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6051,
"src": "4313:11:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "31",
"id": 6328,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4328:1:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "4313:16:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6330,
"nodeType": "ExpressionStatement",
"src": "4313:16:21"
},
{
"assignments": [
6332
],
"declarations": [
{
"constant": false,
"id": 6332,
"mutability": "mutable",
"name": "group",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6383,
"src": "4339:18:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_memory_ptr",
"typeString": "struct IGroupSchema.Group"
},
"typeName": {
"contractScope": null,
"id": 6331,
"name": "Group",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7610,
"src": "4339:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6343,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 6334,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4379:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"id": 6335,
"name": "lastGroupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6051,
"src": "4397:11:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 6336,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6303,
"src": "4422:4:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
{
"argumentTypes": null,
"id": 6337,
"name": "symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6305,
"src": "4440:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6340,
"name": "groupCreator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6307,
"src": "4468:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 6339,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4460:8:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_payable_$",
"typeString": "type(address payable)"
},
"typeName": {
"id": 6338,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4460:8:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 6341,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4460:21:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
},
{
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
},
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 6333,
"name": "Group",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7610,
"src": "4360:5:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Group_$7610_storage_ptr_$",
"typeString": "type(struct IGroupSchema.Group storage pointer)"
}
},
"id": 6342,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4360:131:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_memory_ptr",
"typeString": "struct IGroupSchema.Group memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4339:152:21"
},
{
"assignments": [
6345
],
"declarations": [
{
"constant": false,
"id": 6345,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6383,
"src": "4501:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6344,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4501:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6348,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6346,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "4517:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6347,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4517:13:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4501:29:21"
},
{
"assignments": [
6350
],
"declarations": [
{
"constant": false,
"id": 6350,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6383,
"src": "4540:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6349,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "4540:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6355,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 6352,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4585:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"id": 6353,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6345,
"src": "4591:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6351,
"name": "RecordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7688,
"src": "4573:11:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_RecordIndex_$7688_storage_ptr_$",
"typeString": "type(struct IGroupSchema.RecordIndex storage pointer)"
}
},
"id": 6354,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4573:24:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4540:57:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6359,
"name": "group",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6332,
"src": "4619:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_memory_ptr",
"typeString": "struct IGroupSchema.Group memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Group_$7610_memory_ptr",
"typeString": "struct IGroupSchema.Group memory"
}
],
"expression": {
"argumentTypes": null,
"id": 6356,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "4607:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6358,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4607:11:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Group_$7610_storage_$returns$__$",
"typeString": "function (struct IGroupSchema.Group storage ref)"
}
},
"id": 6360,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4607:18:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6361,
"nodeType": "ExpressionStatement",
"src": "4607:18:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6366,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6362,
"name": "GroupIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6014,
"src": "4635:12:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6364,
"indexExpression": {
"argumentTypes": null,
"id": 6363,
"name": "lastGroupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6051,
"src": "4648:11:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4635:25:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6365,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6350,
"src": "4663:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"src": "4635:39:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6367,
"nodeType": "ExpressionStatement",
"src": "4635:39:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6372,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6368,
"name": "GroupIndexerByName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6023,
"src": "4684:18:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(string memory => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6370,
"indexExpression": {
"argumentTypes": null,
"id": 6369,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6303,
"src": "4703:4:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4684:24:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6371,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6350,
"src": "4711:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"src": "4684:38:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6373,
"nodeType": "ExpressionStatement",
"src": "4684:38:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6378,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6350,
"src": "4774:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6374,
"name": "GroupForCreatorIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6019,
"src": "4732:22:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref[] storage ref)"
}
},
"id": 6376,
"indexExpression": {
"argumentTypes": null,
"id": 6375,
"name": "groupCreator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6307,
"src": "4755:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4732:36:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref[] storage ref"
}
},
"id": 6377,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4732:41:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_RecordIndex_$7688_storage_$returns$__$",
"typeString": "function (struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6379,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4732:54:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6380,
"nodeType": "ExpressionStatement",
"src": "4732:54:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6381,
"name": "lastGroupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6051,
"src": "4804:11:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6313,
"id": 6382,
"nodeType": "Return",
"src": "4797:18:21"
}
]
},
"documentation": null,
"functionSelector": "9a259798",
"id": 6384,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6310,
"modifierName": {
"argumentTypes": null,
"id": 6309,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "4153:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "4153:17:21"
}
],
"name": "createGroup",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6308,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6303,
"mutability": "mutable",
"name": "name",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6384,
"src": "4055:20:21",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 6302,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4055:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6305,
"mutability": "mutable",
"name": "symbol",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6384,
"src": "4085:22:21",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 6304,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4085:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6307,
"mutability": "mutable",
"name": "groupCreator",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6384,
"src": "4117:20:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6306,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4117:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4045:98:21"
},
"returnParameters": {
"id": 6313,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6312,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6384,
"src": "4180:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6311,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4180:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4179:9:21"
},
"scope": 6982,
"src": "4025:797:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6424,
"nodeType": "Block",
"src": "5004:180:21",
"statements": [
{
"assignments": [
6398
],
"declarations": [
{
"constant": false,
"id": 6398,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6424,
"src": "5014:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6397,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5014:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6402,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6400,
"name": "id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6386,
"src": "5045:2:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6399,
"name": "_getGroupIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6981,
"src": "5030:14:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) view returns (uint256)"
}
},
"id": 6401,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5030:18:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5014:34:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6408,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6403,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "5058:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6405,
"indexExpression": {
"argumentTypes": null,
"id": 6404,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6398,
"src": "5065:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5058:13:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage",
"typeString": "struct IGroupSchema.Group storage ref"
}
},
"id": 6406,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "name",
"nodeType": "MemberAccess",
"referencedDeclaration": 7605,
"src": "5058:18:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6407,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6388,
"src": "5079:4:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"src": "5058:25:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 6409,
"nodeType": "ExpressionStatement",
"src": "5058:25:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6415,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6410,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "5093:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6412,
"indexExpression": {
"argumentTypes": null,
"id": 6411,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6398,
"src": "5100:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5093:13:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage",
"typeString": "struct IGroupSchema.Group storage ref"
}
},
"id": 6413,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "symbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 7607,
"src": "5093:20:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6414,
"name": "symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6390,
"src": "5116:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"src": "5093:29:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 6416,
"nodeType": "ExpressionStatement",
"src": "5093:29:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6422,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6417,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "5132:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6419,
"indexExpression": {
"argumentTypes": null,
"id": 6418,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6398,
"src": "5139:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5132:13:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage",
"typeString": "struct IGroupSchema.Group storage ref"
}
},
"id": 6420,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "creatorAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 7609,
"src": "5132:28:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6421,
"name": "creatorAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6392,
"src": "5163:14:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "5132:45:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 6423,
"nodeType": "ExpressionStatement",
"src": "5132:45:21"
}
]
},
"documentation": null,
"functionSelector": "5e82c389",
"id": 6425,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6395,
"modifierName": {
"argumentTypes": null,
"id": 6394,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "4986:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "4986:17:21"
}
],
"name": "updateGroup",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6393,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6386,
"mutability": "mutable",
"name": "id",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6425,
"src": "4858:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6385,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4858:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6388,
"mutability": "mutable",
"name": "name",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6425,
"src": "4878:20:21",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 6387,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4878:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6390,
"mutability": "mutable",
"name": "symbol",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6425,
"src": "4908:22:21",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 6389,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4908:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6392,
"mutability": "mutable",
"name": "creatorAddress",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6425,
"src": "4940:30:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 6391,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4940:15:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4848:128:21"
},
"returnParameters": {
"id": 6396,
"nodeType": "ParameterList",
"parameters": [],
"src": "5004:0:21"
},
"scope": 6982,
"src": "4828:356:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6436,
"nodeType": "Block",
"src": "5260:48:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6433,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6427,
"src": "5293:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6432,
"name": "_doesGroupExist",
"nodeType": "Identifier",
"overloadedDeclarations": [
6454,
6483
],
"referencedDeclaration": 6454,
"src": "5277:15:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
"typeString": "function (uint256) view returns (bool)"
}
},
"id": 6434,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5277:24:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 6431,
"id": 6435,
"nodeType": "Return",
"src": "5270:31:21"
}
]
},
"documentation": null,
"functionSelector": "6b2c46d5",
"id": 6437,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "doesGroupExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6428,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6427,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6437,
"src": "5214:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6426,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5214:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5213:17:21"
},
"returnParameters": {
"id": 6431,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6430,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6437,
"src": "5254:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6429,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5254:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5253:6:21"
},
"scope": 6982,
"src": "5190:118:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6453,
"nodeType": "Block",
"src": "5385:90:21",
"statements": [
{
"assignments": [
6445
],
"declarations": [
{
"constant": false,
"id": 6445,
"mutability": "mutable",
"name": "groupExist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6453,
"src": "5395:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6444,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5395:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6450,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6446,
"name": "GroupIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6014,
"src": "5413:12:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6448,
"indexExpression": {
"argumentTypes": null,
"id": 6447,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6439,
"src": "5426:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5413:21:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6449,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "5413:28:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5395:46:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6451,
"name": "groupExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6445,
"src": "5458:10:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 6443,
"id": 6452,
"nodeType": "Return",
"src": "5451:17:21"
}
]
},
"documentation": null,
"id": 6454,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_doesGroupExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6440,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6439,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6454,
"src": "5339:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6438,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5339:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5338:17:21"
},
"returnParameters": {
"id": 6443,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6442,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6454,
"src": "5379:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6441,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5379:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5378:6:21"
},
"scope": 6982,
"src": "5314:161:21",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 6465,
"nodeType": "Block",
"src": "5589:50:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6462,
"name": "groupName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6456,
"src": "5622:9:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
],
"id": 6461,
"name": "_doesGroupExist",
"nodeType": "Identifier",
"overloadedDeclarations": [
6454,
6483
],
"referencedDeclaration": 6483,
"src": "5606:15:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_bool_$",
"typeString": "function (string memory) view returns (bool)"
}
},
"id": 6463,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5606:26:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 6460,
"id": 6464,
"nodeType": "Return",
"src": "5599:33:21"
}
]
},
"documentation": null,
"functionSelector": "458a8c07",
"id": 6466,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "doesGroupExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6457,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6456,
"mutability": "mutable",
"name": "groupName",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6466,
"src": "5505:25:21",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 6455,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5505:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5504:27:21"
},
"returnParameters": {
"id": 6460,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6459,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6466,
"src": "5579:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6458,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5579:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5578:6:21"
},
"scope": 6982,
"src": "5481:158:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6482,
"nodeType": "Block",
"src": "5752:99:21",
"statements": [
{
"assignments": [
6474
],
"declarations": [
{
"constant": false,
"id": 6474,
"mutability": "mutable",
"name": "groupExist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6482,
"src": "5762:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6473,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5762:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6479,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6475,
"name": "GroupIndexerByName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6023,
"src": "5780:18:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(string memory => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6477,
"indexExpression": {
"argumentTypes": null,
"id": 6476,
"name": "groupName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6468,
"src": "5799:9:21",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5780:29:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6478,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "5780:36:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5762:54:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6480,
"name": "groupExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6474,
"src": "5834:10:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 6472,
"id": 6481,
"nodeType": "Return",
"src": "5827:17:21"
}
]
},
"documentation": null,
"id": 6483,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_doesGroupExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6469,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6468,
"mutability": "mutable",
"name": "groupName",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6483,
"src": "5670:23:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 6467,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5670:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5669:25:21"
},
"returnParameters": {
"id": 6472,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6471,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6483,
"src": "5742:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6470,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5742:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5741:6:21"
},
"scope": 6982,
"src": "5645:206:21",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 6494,
"nodeType": "Block",
"src": "5930:51:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6491,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6485,
"src": "5964:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 6490,
"name": "_doesMemberExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6516,
"src": "5947:16:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
"typeString": "function (address) view returns (bool)"
}
},
"id": 6492,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5947:27:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 6489,
"id": 6493,
"nodeType": "Return",
"src": "5940:34:21"
}
]
},
"documentation": null,
"functionSelector": "165301a5",
"id": 6495,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "doesMemberExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6486,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6485,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6495,
"src": "5882:17:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6484,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5882:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5881:19:21"
},
"returnParameters": {
"id": 6489,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6488,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6495,
"src": "5924:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6487,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5924:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5923:6:21"
},
"scope": 6982,
"src": "5857:124:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6515,
"nodeType": "Block",
"src": "6061:121:21",
"statements": [
{
"assignments": [
6503
],
"declarations": [
{
"constant": false,
"id": 6503,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6515,
"src": "6071:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6502,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6071:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6508,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6504,
"name": "MemberIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6049,
"src": "6084:13:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6506,
"indexExpression": {
"argumentTypes": null,
"id": 6505,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6497,
"src": "6098:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6084:24:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6507,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "6084:31:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6071:44:21"
},
{
"condition": {
"argumentTypes": null,
"id": 6509,
"name": "exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6503,
"src": "6130:5:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 6512,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6170:5:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 6501,
"id": 6513,
"nodeType": "Return",
"src": "6163:12:21"
},
"id": 6514,
"nodeType": "IfStatement",
"src": "6126:49:21",
"trueBody": {
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 6510,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6144:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 6501,
"id": 6511,
"nodeType": "Return",
"src": "6137:11:21"
}
}
]
},
"documentation": null,
"id": 6516,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_doesMemberExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6498,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6497,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6516,
"src": "6013:17:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6496,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6013:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6012:19:21"
},
"returnParameters": {
"id": 6501,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6500,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6516,
"src": "6055:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6499,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6055:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6054:6:21"
},
"scope": 6982,
"src": "5987:195:21",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 6583,
"nodeType": "Block",
"src": "6306:523:21",
"statements": [
{
"assignments": [
6526
],
"declarations": [
{
"constant": false,
"id": 6526,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6583,
"src": "6316:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6525,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6316:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6531,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6528,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6518,
"src": "6351:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 6529,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6520,
"src": "6360:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 6527,
"name": "_doesGroupMemberExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6746,
"src": "6329:21:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$",
"typeString": "function (uint256,address) view returns (bool)"
}
},
"id": 6530,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6329:41:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6316:54:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 6535,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6533,
"name": "exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6526,
"src": "6388:5:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 6534,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6397:5:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"src": "6388:14:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "47726f7570206d656d62657220657869737473",
"id": 6536,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6404:21:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3f73b1a580ba6f5c728a6c9410cf94924e21681a7c7e328d0493fbd69de0f144",
"typeString": "literal_string \"Group member exists\""
},
"value": "Group member exists"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_3f73b1a580ba6f5c728a6c9410cf94924e21681a7c7e328d0493fbd69de0f144",
"typeString": "literal_string \"Group member exists\""
}
],
"id": 6532,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "6380:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6537,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6380:46:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6538,
"nodeType": "ExpressionStatement",
"src": "6380:46:21"
},
{
"assignments": [
6540
],
"declarations": [
{
"constant": false,
"id": 6540,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6583,
"src": "6437:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6539,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "6437:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6546,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 6542,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6482:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6543,
"name": "GroupMembers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6026,
"src": "6488:12:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_GroupMember_$7683_storage_$dyn_storage",
"typeString": "struct IGroupSchema.GroupMember storage ref[] storage ref"
}
},
"id": 6544,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6488:19:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6541,
"name": "RecordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7688,
"src": "6470:11:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_RecordIndex_$7688_storage_ptr_$",
"typeString": "type(struct IGroupSchema.RecordIndex storage pointer)"
}
},
"id": 6545,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6470:38:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6437:71:21"
},
{
"assignments": [
6548
],
"declarations": [
{
"constant": false,
"id": 6548,
"mutability": "mutable",
"name": "groupMember",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6583,
"src": "6519:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember"
},
"typeName": {
"contractScope": null,
"id": 6547,
"name": "GroupMember",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7683,
"src": "6519:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_storage_ptr",
"typeString": "struct IGroupSchema.GroupMember"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6554,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 6550,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6564:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"id": 6551,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6520,
"src": "6570:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 6552,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6518,
"src": "6581:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6549,
"name": "GroupMember",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7683,
"src": "6552:11:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_GroupMember_$7683_storage_ptr_$",
"typeString": "type(struct IGroupSchema.GroupMember storage pointer)"
}
},
"id": 6553,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6552:37:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6519:70:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6559,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6540,
"src": "6634:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6555,
"name": "GroupMembersIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6031,
"src": "6600:19:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex storage ref[] storage ref)"
}
},
"id": 6557,
"indexExpression": {
"argumentTypes": null,
"id": 6556,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6518,
"src": "6620:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6600:28:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref[] storage ref"
}
},
"id": 6558,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6600:33:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_RecordIndex_$7688_storage_$returns$__$",
"typeString": "function (struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6560,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6600:46:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6561,
"nodeType": "ExpressionStatement",
"src": "6600:46:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6566,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6540,
"src": "6703:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6562,
"name": "GroupMembersIndexerByDepositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6036,
"src": "6656:30:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref[] storage ref)"
}
},
"id": 6564,
"indexExpression": {
"argumentTypes": null,
"id": 6563,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6520,
"src": "6687:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6656:41:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref[] storage ref"
}
},
"id": 6565,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6656:46:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_RecordIndex_$7688_storage_$returns$__$",
"typeString": "function (struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6567,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6656:59:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6568,
"nodeType": "ExpressionStatement",
"src": "6656:59:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6575,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6569,
"name": "GroupMembersDeepIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6042,
"src": "6725:23:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$_$",
"typeString": "mapping(uint256 => mapping(address => struct IGroupSchema.RecordIndex storage ref))"
}
},
"id": 6572,
"indexExpression": {
"argumentTypes": null,
"id": 6570,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6518,
"src": "6749:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6725:32:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6573,
"indexExpression": {
"argumentTypes": null,
"id": 6571,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6520,
"src": "6758:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6725:43:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6574,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6540,
"src": "6771:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"src": "6725:57:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6576,
"nodeType": "ExpressionStatement",
"src": "6725:57:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6580,
"name": "groupMember",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6548,
"src": "6810:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember memory"
}
],
"expression": {
"argumentTypes": null,
"id": 6577,
"name": "GroupMembers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6026,
"src": "6792:12:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_GroupMember_$7683_storage_$dyn_storage",
"typeString": "struct IGroupSchema.GroupMember storage ref[] storage ref"
}
},
"id": 6579,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6792:17:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_GroupMember_$7683_storage_$returns$__$",
"typeString": "function (struct IGroupSchema.GroupMember storage ref)"
}
},
"id": 6581,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6792:30:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6582,
"nodeType": "ExpressionStatement",
"src": "6792:30:21"
}
]
},
"documentation": null,
"functionSelector": "0c202741",
"id": 6584,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6523,
"modifierName": {
"argumentTypes": null,
"id": 6522,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "6284:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "6284:17:21"
}
],
"name": "createGroupMember",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6521,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6518,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6584,
"src": "6215:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6517,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6215:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6520,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6584,
"src": "6232:25:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 6519,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6232:15:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6214:44:21"
},
"returnParameters": {
"id": 6524,
"nodeType": "ParameterList",
"parameters": [],
"src": "6306:0:21"
},
"scope": 6982,
"src": "6188:641:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6605,
"nodeType": "Block",
"src": "6968:129:21",
"statements": [
{
"assignments": [
6594
],
"declarations": [
{
"constant": false,
"id": 6594,
"mutability": "mutable",
"name": "groupMember",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6605,
"src": "6978:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember"
},
"typeName": {
"contractScope": null,
"id": 6593,
"name": "GroupMember",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7683,
"src": "6978:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_storage_ptr",
"typeString": "struct IGroupSchema.GroupMember"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6598,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6595,
"name": "GroupMembers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6026,
"src": "7011:12:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_GroupMember_$7683_storage_$dyn_storage",
"typeString": "struct IGroupSchema.GroupMember storage ref[] storage ref"
}
},
"id": 6597,
"indexExpression": {
"argumentTypes": null,
"id": 6596,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6586,
"src": "7024:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7011:19:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_storage",
"typeString": "struct IGroupSchema.GroupMember storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6978:52:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6599,
"name": "groupMember",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6594,
"src": "7048:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember memory"
}
},
"id": 6600,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_address",
"nodeType": "MemberAccess",
"referencedDeclaration": 7680,
"src": "7048:20:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6601,
"name": "groupMember",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6594,
"src": "7070:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember memory"
}
},
"id": 6602,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "groupId",
"nodeType": "MemberAccess",
"referencedDeclaration": 7682,
"src": "7070:19:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 6603,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "7047:43:21",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_address_payable_$_t_uint256_$",
"typeString": "tuple(address payable,uint256)"
}
},
"functionReturnParameters": 6592,
"id": 6604,
"nodeType": "Return",
"src": "7040:50:21"
}
]
},
"documentation": null,
"functionSelector": "d73c9de4",
"id": 6606,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGroupMember",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6587,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6586,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6606,
"src": "6859:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6585,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6859:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6858:15:21"
},
"returnParameters": {
"id": 6592,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6589,
"mutability": "mutable",
"name": "_address",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6606,
"src": "6921:24:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 6588,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6921:15:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6591,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6606,
"src": "6947:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6590,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6947:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6920:43:21"
},
"scope": 6982,
"src": "6835:262:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6631,
"nodeType": "Block",
"src": "7254:163:21",
"statements": [
{
"assignments": [
6618
],
"declarations": [
{
"constant": false,
"id": 6618,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6631,
"src": "7269:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6617,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "7269:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6624,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6619,
"name": "GroupMembersDeepIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6042,
"src": "7311:23:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$_$",
"typeString": "mapping(uint256 => mapping(address => struct IGroupSchema.RecordIndex storage ref))"
}
},
"id": 6621,
"indexExpression": {
"argumentTypes": null,
"id": 6620,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6608,
"src": "7335:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7311:32:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6623,
"indexExpression": {
"argumentTypes": null,
"id": 6622,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6610,
"src": "7344:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7311:43:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7269:85:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6625,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6618,
"src": "7372:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6626,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "7372:18:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6627,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6618,
"src": "7392:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6628,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "index",
"nodeType": "MemberAccess",
"referencedDeclaration": 7687,
"src": "7392:17:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 6629,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "7371:39:21",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"functionReturnParameters": 6616,
"id": 6630,
"nodeType": "Return",
"src": "7364:46:21"
}
]
},
"documentation": null,
"functionSelector": "09080945",
"id": 6632,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGroupMembersDeepIndexer",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6611,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6608,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6632,
"src": "7139:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6607,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7139:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6610,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6632,
"src": "7156:17:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6609,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7156:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7138:36:21"
},
"returnParameters": {
"id": 6616,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6613,
"mutability": "mutable",
"name": "exists",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6632,
"src": "7222:11:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6612,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7222:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6615,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6632,
"src": "7235:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6614,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7235:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7221:28:21"
},
"scope": 6982,
"src": "7103:314:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6644,
"nodeType": "Block",
"src": "7552:59:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6639,
"name": "GroupMembersIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6031,
"src": "7569:19:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex storage ref[] storage ref)"
}
},
"id": 6641,
"indexExpression": {
"argumentTypes": null,
"id": 6640,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6634,
"src": "7589:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7569:28:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref[] storage ref"
}
},
"id": 6642,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7569:35:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6638,
"id": 6643,
"nodeType": "Return",
"src": "7562:42:21"
}
]
},
"documentation": null,
"functionSelector": "3ac179f8",
"id": 6645,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getRecordIndexLengthForGroupMembersIndexer",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6635,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6634,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6645,
"src": "7475:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6633,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7475:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7474:17:21"
},
"returnParameters": {
"id": 6638,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6637,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6645,
"src": "7539:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6636,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7539:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7538:9:21"
},
"scope": 6982,
"src": "7423:188:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6657,
"nodeType": "Block",
"src": "7745:72:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6652,
"name": "GroupMembersIndexerByDepositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6036,
"src": "7762:30:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref[] storage ref)"
}
},
"id": 6654,
"indexExpression": {
"argumentTypes": null,
"id": 6653,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6647,
"src": "7793:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7762:41:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref[] storage ref"
}
},
"id": 6655,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "7762:48:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6651,
"id": 6656,
"nodeType": "Return",
"src": "7755:55:21"
}
]
},
"documentation": null,
"functionSelector": "81ea68fe",
"id": 6658,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getRecordIndexLengthForGroupMembersIndexerByDepositor",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6648,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6647,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6658,
"src": "7689:17:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6646,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7689:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7679:33:21"
},
"returnParameters": {
"id": 6651,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6650,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6658,
"src": "7736:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6649,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7736:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7735:9:21"
},
"scope": 6982,
"src": "7617:200:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6683,
"nodeType": "Block",
"src": "7975:165:21",
"statements": [
{
"assignments": [
6670
],
"declarations": [
{
"constant": false,
"id": 6670,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6683,
"src": "7990:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6669,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "7990:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6676,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6671,
"name": "GroupMembersIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6031,
"src": "8032:19:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex storage ref[] storage ref)"
}
},
"id": 6673,
"indexExpression": {
"argumentTypes": null,
"id": 6672,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6660,
"src": "8052:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "8032:28:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref[] storage ref"
}
},
"id": 6675,
"indexExpression": {
"argumentTypes": null,
"id": 6674,
"name": "indexerLocation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6662,
"src": "8061:15:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "8032:45:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7990:87:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6677,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6670,
"src": "8095:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6678,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "8095:18:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6679,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6670,
"src": "8115:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6680,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "index",
"nodeType": "MemberAccess",
"referencedDeclaration": 7687,
"src": "8115:17:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 6681,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "8094:39:21",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"functionReturnParameters": 6668,
"id": 6682,
"nodeType": "Return",
"src": "8087:46:21"
}
]
},
"documentation": null,
"functionSelector": "daf0cf43",
"id": 6684,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGroupMembersIndexer",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6663,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6660,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6684,
"src": "7855:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6659,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7855:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6662,
"mutability": "mutable",
"name": "indexerLocation",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6684,
"src": "7872:23:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6661,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7872:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7854:42:21"
},
"returnParameters": {
"id": 6668,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6665,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6684,
"src": "7944:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6664,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7944:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6667,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6684,
"src": "7956:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6666,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7956:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7943:27:21"
},
"scope": 6982,
"src": "7823:317:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6709,
"nodeType": "Block",
"src": "8305:178:21",
"statements": [
{
"assignments": [
6696
],
"declarations": [
{
"constant": false,
"id": 6696,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6709,
"src": "8320:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6695,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "8320:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6702,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6697,
"name": "GroupMembersIndexerByDepositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6036,
"src": "8362:30:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref[] storage ref)"
}
},
"id": 6699,
"indexExpression": {
"argumentTypes": null,
"id": 6698,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6686,
"src": "8393:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "8362:41:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref[] storage ref"
}
},
"id": 6701,
"indexExpression": {
"argumentTypes": null,
"id": 6700,
"name": "indexerLocation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6688,
"src": "8404:15:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "8362:58:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8320:100:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6703,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6696,
"src": "8438:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6704,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "8438:18:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6705,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6696,
"src": "8458:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6706,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "index",
"nodeType": "MemberAccess",
"referencedDeclaration": 7687,
"src": "8458:17:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 6707,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "8437:39:21",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"functionReturnParameters": 6694,
"id": 6708,
"nodeType": "Return",
"src": "8430:46:21"
}
]
},
"documentation": null,
"functionSelector": "e824f2b5",
"id": 6710,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGroupMembersIndexerByDepositor",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6689,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6686,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6710,
"src": "8198:17:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6685,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8198:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6688,
"mutability": "mutable",
"name": "indexerLocation",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6710,
"src": "8225:23:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6687,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8225:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8188:66:21"
},
"returnParameters": {
"id": 6694,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6691,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6710,
"src": "8278:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6690,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8278:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6693,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6710,
"src": "8290:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6692,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8290:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8277:27:21"
},
"scope": 6982,
"src": "8146:337:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6724,
"nodeType": "Block",
"src": "8612:65:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6720,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6712,
"src": "8651:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 6721,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6714,
"src": "8660:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 6719,
"name": "_doesGroupMemberExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6746,
"src": "8629:21:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$",
"typeString": "function (uint256,address) view returns (bool)"
}
},
"id": 6722,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8629:41:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 6718,
"id": 6723,
"nodeType": "Return",
"src": "8622:48:21"
}
]
},
"documentation": null,
"functionSelector": "0d15c07d",
"id": 6725,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "doesGroupMemberExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6715,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6712,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6725,
"src": "8519:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6711,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8519:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6714,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6725,
"src": "8536:17:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6713,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8536:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8518:36:21"
},
"returnParameters": {
"id": 6718,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6717,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6725,
"src": "8602:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6716,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8602:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8601:6:21"
},
"scope": 6982,
"src": "8489:188:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6745,
"nodeType": "Block",
"src": "8807:102:21",
"statements": [
{
"assignments": [
6735
],
"declarations": [
{
"constant": false,
"id": 6735,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6745,
"src": "8817:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6734,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8817:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6742,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6736,
"name": "GroupMembersDeepIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6042,
"src": "8830:23:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$_$",
"typeString": "mapping(uint256 => mapping(address => struct IGroupSchema.RecordIndex storage ref))"
}
},
"id": 6738,
"indexExpression": {
"argumentTypes": null,
"id": 6737,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6727,
"src": "8854:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "8830:32:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6740,
"indexExpression": {
"argumentTypes": null,
"id": 6739,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6729,
"src": "8863:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "8830:43:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6741,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "8830:50:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "8817:63:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6743,
"name": "exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6735,
"src": "8897:5:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 6733,
"id": 6744,
"nodeType": "Return",
"src": "8890:12:21"
}
]
},
"documentation": null,
"id": 6746,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_doesGroupMemberExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6730,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6727,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6746,
"src": "8714:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6726,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8714:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6729,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6746,
"src": "8731:17:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6728,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8731:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8713:36:21"
},
"returnParameters": {
"id": 6733,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6732,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6746,
"src": "8797:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6731,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8797:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8796:6:21"
},
"scope": 6982,
"src": "8683:226:21",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 6767,
"nodeType": "Block",
"src": "9035:127:21",
"statements": [
{
"assignments": [
6756
],
"declarations": [
{
"constant": false,
"id": 6756,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6767,
"src": "9045:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6755,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "9045:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6760,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6757,
"name": "GroupIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6014,
"src": "9078:12:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6759,
"indexExpression": {
"argumentTypes": null,
"id": 6758,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6748,
"src": "9091:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9078:21:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9045:54:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6761,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6756,
"src": "9117:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6762,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "9117:18:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6763,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6756,
"src": "9137:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6764,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "index",
"nodeType": "MemberAccess",
"referencedDeclaration": 7687,
"src": "9137:17:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 6765,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "9116:39:21",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"functionReturnParameters": 6754,
"id": 6766,
"nodeType": "Return",
"src": "9109:46:21"
}
]
},
"documentation": null,
"functionSelector": "48c88923",
"id": 6768,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGroupIndexer",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6749,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6748,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6768,
"src": "8940:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6747,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "8940:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8939:17:21"
},
"returnParameters": {
"id": 6754,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6751,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6768,
"src": "9004:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6750,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "9004:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6753,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6768,
"src": "9016:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6752,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9016:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9003:27:21"
},
"scope": 6982,
"src": "8915:247:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6780,
"nodeType": "Block",
"src": "9290:67:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6775,
"name": "GroupForCreatorIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6019,
"src": "9307:22:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref[] storage ref)"
}
},
"id": 6777,
"indexExpression": {
"argumentTypes": null,
"id": 6776,
"name": "groupCreator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6770,
"src": "9330:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9307:36:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref[] storage ref"
}
},
"id": 6778,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "9307:43:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6774,
"id": 6779,
"nodeType": "Return",
"src": "9300:50:21"
}
]
},
"documentation": null,
"functionSelector": "3525e9c4",
"id": 6781,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getRecordIndexLengthForCreator",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6771,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6770,
"mutability": "mutable",
"name": "groupCreator",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6781,
"src": "9208:20:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6769,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9208:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9207:22:21"
},
"returnParameters": {
"id": 6774,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6773,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6781,
"src": "9277:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6772,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9277:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9276:9:21"
},
"scope": 6982,
"src": "9168:189:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6806,
"nodeType": "Block",
"src": "9517:173:21",
"statements": [
{
"assignments": [
6793
],
"declarations": [
{
"constant": false,
"id": 6793,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6806,
"src": "9532:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6792,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "9532:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6799,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6794,
"name": "GroupForCreatorIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6019,
"src": "9574:22:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref[] storage ref)"
}
},
"id": 6796,
"indexExpression": {
"argumentTypes": null,
"id": 6795,
"name": "groupCreator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6783,
"src": "9597:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9574:36:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref[] storage ref"
}
},
"id": 6798,
"indexExpression": {
"argumentTypes": null,
"id": 6797,
"name": "indexerLocation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6785,
"src": "9611:15:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9574:53:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9532:95:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6800,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6793,
"src": "9645:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6801,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "9645:18:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6802,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6793,
"src": "9665:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6803,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "index",
"nodeType": "MemberAccess",
"referencedDeclaration": 7687,
"src": "9665:17:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 6804,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "9644:39:21",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"functionReturnParameters": 6791,
"id": 6805,
"nodeType": "Return",
"src": "9637:46:21"
}
]
},
"documentation": null,
"functionSelector": "4448d5e1",
"id": 6807,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGroupForCreatorIndexer",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6786,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6783,
"mutability": "mutable",
"name": "groupCreator",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6807,
"src": "9407:20:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6782,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9407:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6785,
"mutability": "mutable",
"name": "indexerLocation",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6807,
"src": "9437:23:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6784,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9437:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9397:69:21"
},
"returnParameters": {
"id": 6791,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6788,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6807,
"src": "9490:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6787,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "9490:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6790,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6807,
"src": "9502:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6789,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9502:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9489:27:21"
},
"scope": 6982,
"src": "9363:327:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6828,
"nodeType": "Block",
"src": "9832:135:21",
"statements": [
{
"assignments": [
6817
],
"declarations": [
{
"constant": false,
"id": 6817,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6828,
"src": "9842:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6816,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "9842:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6821,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6818,
"name": "GroupIndexerByName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6023,
"src": "9875:18:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(string memory => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6820,
"indexExpression": {
"argumentTypes": null,
"id": 6819,
"name": "groupName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6809,
"src": "9894:9:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "9875:29:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "9842:62:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6822,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6817,
"src": "9922:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6823,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "9922:18:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6824,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6817,
"src": "9942:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6825,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "index",
"nodeType": "MemberAccess",
"referencedDeclaration": 7687,
"src": "9942:17:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 6826,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "9921:39:21",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
"typeString": "tuple(bool,uint256)"
}
},
"functionReturnParameters": 6815,
"id": 6827,
"nodeType": "Return",
"src": "9914:46:21"
}
]
},
"documentation": null,
"functionSelector": "08099b5d",
"id": 6829,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGroupIndexerByName",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6810,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6809,
"mutability": "mutable",
"name": "groupName",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6829,
"src": "9727:25:21",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 6808,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "9727:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9726:27:21"
},
"returnParameters": {
"id": 6815,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6812,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6829,
"src": "9801:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6811,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "9801:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6814,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6829,
"src": "9813:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6813,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9813:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9800:27:21"
},
"scope": 6982,
"src": "9696:271:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6864,
"nodeType": "Block",
"src": "10177:177:21",
"statements": [
{
"assignments": [
6843
],
"declarations": [
{
"constant": false,
"id": 6843,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6864,
"src": "10187:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6842,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10187:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6847,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6845,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6831,
"src": "10218:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6844,
"name": "_getGroupIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6981,
"src": "10203:14:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) view returns (uint256)"
}
},
"id": 6846,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "10203:23:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "10187:39:21"
},
{
"assignments": [
6849
],
"declarations": [
{
"constant": false,
"id": 6849,
"mutability": "mutable",
"name": "group",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6864,
"src": "10237:19:21",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group"
},
"typeName": {
"contractScope": null,
"id": 6848,
"name": "Group",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7610,
"src": "10237:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6853,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6850,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "10259:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6852,
"indexExpression": {
"argumentTypes": null,
"id": 6851,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6843,
"src": "10266:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "10259:13:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage",
"typeString": "struct IGroupSchema.Group storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "10237:35:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6854,
"name": "group",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6849,
"src": "10290:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group storage pointer"
}
},
"id": 6855,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 7603,
"src": "10290:8:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6856,
"name": "group",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6849,
"src": "10300:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group storage pointer"
}
},
"id": 6857,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "name",
"nodeType": "MemberAccess",
"referencedDeclaration": 7605,
"src": "10300:10:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6858,
"name": "group",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6849,
"src": "10312:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group storage pointer"
}
},
"id": 6859,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "symbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 7607,
"src": "10312:12:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6860,
"name": "group",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6849,
"src": "10326:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group storage pointer"
}
},
"id": 6861,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "creatorAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 7609,
"src": "10326:20:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"id": 6862,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "10289:58:21",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_uint256_$_t_string_storage_$_t_string_storage_$_t_address_payable_$",
"typeString": "tuple(uint256,string storage ref,string storage ref,address payable)"
}
},
"functionReturnParameters": 6841,
"id": 6863,
"nodeType": "Return",
"src": "10282:65:21"
}
]
},
"documentation": null,
"functionSelector": "6cc29ea0",
"id": 6865,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGroupById",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6832,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6831,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6865,
"src": "9995:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6830,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9995:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9994:17:21"
},
"returnParameters": {
"id": 6841,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6834,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6865,
"src": "10072:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6833,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10072:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6836,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6865,
"src": "10093:13:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 6835,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "10093:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6838,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6865,
"src": "10120:13:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 6837,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "10120:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6840,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6865,
"src": "10147:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 6839,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10147:15:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10058:114:21"
},
"scope": 6982,
"src": "9973:381:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6882,
"nodeType": "Block",
"src": "10565:47:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6879,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6867,
"src": "10599:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6878,
"name": "_getGroupByIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6938,
"src": "10582:16:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_payable_$",
"typeString": "function (uint256) view returns (uint256,string memory,string memory,address payable)"
}
},
"id": 6880,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "10582:23:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_payable_$",
"typeString": "tuple(uint256,string memory,string memory,address payable)"
}
},
"functionReturnParameters": 6877,
"id": 6881,
"nodeType": "Return",
"src": "10575:30:21"
}
]
},
"documentation": null,
"functionSelector": "3037faf1",
"id": 6883,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGroupByIndex",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6868,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6867,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6883,
"src": "10385:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6866,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10385:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10384:15:21"
},
"returnParameters": {
"id": 6877,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6870,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6883,
"src": "10460:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6869,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10460:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6872,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6883,
"src": "10481:13:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 6871,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "10481:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6874,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6883,
"src": "10508:13:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 6873,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "10508:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6876,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6883,
"src": "10535:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 6875,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10535:15:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10446:114:21"
},
"scope": 6982,
"src": "10360:252:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6895,
"nodeType": "Block",
"src": "10684:62:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 6891,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 6888,
"name": "length",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6886,
"src": "10694:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6889,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "10703:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6890,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "10703:13:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "10694:22:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6892,
"nodeType": "ExpressionStatement",
"src": "10694:22:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6893,
"name": "length",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6886,
"src": "10733:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6887,
"id": 6894,
"nodeType": "Return",
"src": "10726:13:21"
}
]
},
"documentation": null,
"functionSelector": "6d3524f5",
"id": 6896,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGroupsLength",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6884,
"nodeType": "ParameterList",
"parameters": [],
"src": "10642:2:21"
},
"returnParameters": {
"id": 6887,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6886,
"mutability": "mutable",
"name": "length",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6896,
"src": "10668:14:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6885,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10668:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10667:16:21"
},
"scope": 6982,
"src": "10618:128:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6937,
"nodeType": "Block",
"src": "10958:216:21",
"statements": [
{
"assignments": [
6910
],
"declarations": [
{
"constant": false,
"id": 6910,
"mutability": "mutable",
"name": "length",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6937,
"src": "10968:14:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6909,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10968:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6913,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6911,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "10985:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6912,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "10985:13:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "10968:30:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 6917,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6915,
"name": "length",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6910,
"src": "11016:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"id": 6916,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6898,
"src": "11025:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "11016:14:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "4f7574206f662072616e6765",
"id": 6918,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11032:14:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c8de02deba8e639087754d5067b8a43e5887b03be7353558822d412acbff2048",
"typeString": "literal_string \"Out of range\""
},
"value": "Out of range"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_c8de02deba8e639087754d5067b8a43e5887b03be7353558822d412acbff2048",
"typeString": "literal_string \"Out of range\""
}
],
"id": 6914,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "11008:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6919,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11008:39:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6920,
"nodeType": "ExpressionStatement",
"src": "11008:39:21"
},
{
"assignments": [
6922
],
"declarations": [
{
"constant": false,
"id": 6922,
"mutability": "mutable",
"name": "group",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6937,
"src": "11057:19:21",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group"
},
"typeName": {
"contractScope": null,
"id": 6921,
"name": "Group",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7610,
"src": "11057:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6926,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6923,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "11079:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6925,
"indexExpression": {
"argumentTypes": null,
"id": 6924,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6898,
"src": "11086:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11079:13:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage",
"typeString": "struct IGroupSchema.Group storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11057:35:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6927,
"name": "group",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6922,
"src": "11110:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group storage pointer"
}
},
"id": 6928,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "id",
"nodeType": "MemberAccess",
"referencedDeclaration": 7603,
"src": "11110:8:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6929,
"name": "group",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6922,
"src": "11120:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group storage pointer"
}
},
"id": 6930,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "name",
"nodeType": "MemberAccess",
"referencedDeclaration": 7605,
"src": "11120:10:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6931,
"name": "group",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6922,
"src": "11132:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group storage pointer"
}
},
"id": 6932,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "symbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 7607,
"src": "11132:12:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6933,
"name": "group",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6922,
"src": "11146:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group storage pointer"
}
},
"id": 6934,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "creatorAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 7609,
"src": "11146:20:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"id": 6935,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "11109:58:21",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_uint256_$_t_string_storage_$_t_string_storage_$_t_address_payable_$",
"typeString": "tuple(uint256,string storage ref,string storage ref,address payable)"
}
},
"functionReturnParameters": 6908,
"id": 6936,
"nodeType": "Return",
"src": "11102:65:21"
}
]
},
"documentation": null,
"id": 6938,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_getGroupByIndex",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6899,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6898,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6938,
"src": "10778:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6897,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10778:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10777:15:21"
},
"returnParameters": {
"id": 6908,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6901,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6938,
"src": "10853:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6900,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10853:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6903,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6938,
"src": "10874:13:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 6902,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "10874:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6905,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6938,
"src": "10901:13:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 6904,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "10901:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6907,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6938,
"src": "10928:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 6906,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "10928:15:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10839:114:21"
},
"scope": 6982,
"src": "10752:422:21",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 6949,
"nodeType": "Block",
"src": "11252:47:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6946,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6940,
"src": "11284:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6945,
"name": "_getGroupIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6981,
"src": "11269:14:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) view returns (uint256)"
}
},
"id": 6947,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11269:23:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6944,
"id": 6948,
"nodeType": "Return",
"src": "11262:30:21"
}
]
},
"documentation": null,
"functionSelector": "48cf9e5c",
"id": 6950,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGroupIndex",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6941,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6940,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6950,
"src": "11203:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6939,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11203:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "11202:17:21"
},
"returnParameters": {
"id": 6944,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6943,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6950,
"src": "11243:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6942,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11243:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "11242:9:21"
},
"scope": 6982,
"src": "11180:119:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6980,
"nodeType": "Block",
"src": "11378:202:21",
"statements": [
{
"assignments": [
6958
],
"declarations": [
{
"constant": false,
"id": 6958,
"mutability": "mutable",
"name": "doesGroupExist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6980,
"src": "11388:19:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6957,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "11388:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6963,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6959,
"name": "GroupIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6014,
"src": "11410:12:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6961,
"indexExpression": {
"argumentTypes": null,
"id": 6960,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6952,
"src": "11423:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11410:21:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6962,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "11410:28:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11388:50:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 6967,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6965,
"name": "doesGroupExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6958,
"src": "11456:14:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 6966,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11474:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "11456:22:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "47726f7570206e6f7420666f756e64",
"id": 6968,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "11480:17:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_57d5bc959dc632e061b44ac189085b0365c7cdf2042d81d5debca6f868a9abe3",
"typeString": "literal_string \"Group not found\""
},
"value": "Group not found"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_57d5bc959dc632e061b44ac189085b0365c7cdf2042d81d5debca6f868a9abe3",
"typeString": "literal_string \"Group not found\""
}
],
"id": 6964,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "11448:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6969,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "11448:50:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6970,
"nodeType": "ExpressionStatement",
"src": "11448:50:21"
},
{
"assignments": [
6972
],
"declarations": [
{
"constant": false,
"id": 6972,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6980,
"src": "11508:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6971,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11508:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6977,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6973,
"name": "GroupIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6014,
"src": "11524:12:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6975,
"indexExpression": {
"argumentTypes": null,
"id": 6974,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6952,
"src": "11537:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "11524:21:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6976,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "index",
"nodeType": "MemberAccess",
"referencedDeclaration": 7687,
"src": "11524:27:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "11508:43:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6978,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6972,
"src": "11568:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6956,
"id": 6979,
"nodeType": "Return",
"src": "11561:12:21"
}
]
},
"documentation": null,
"id": 6981,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_getGroupIndex",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6953,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6952,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6981,
"src": "11329:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6951,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11329:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "11328:17:21"
},
"returnParameters": {
"id": 6956,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6955,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6981,
"src": "11369:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6954,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11369:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "11368:9:21"
},
"scope": 6982,
"src": "11305:275:21",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
}
],
"scope": 6983,
"src": "85:11497:21"
}
],
"src": "0:11583:21"
},
"legacyAST": {
"absolutePath": "/home/cally/code/xend/xendfinance/yearn-savings/Tests/contracts/Groups.sol",
"exportedSymbols": {
"Groups": [
6982
]
},
"id": 6983,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 6001,
"literals": [
"solidity",
"^",
"0.6",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:21"
},
{
"absolutePath": "/home/cally/code/xend/xendfinance/yearn-savings/Tests/contracts/IGroupSchema.sol",
"file": "./IGroupSchema.sol",
"id": 6002,
"nodeType": "ImportDirective",
"scope": 6983,
"sourceUnit": 7694,
"src": "25:28:21",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/cally/code/xend/xendfinance/yearn-savings/Tests/contracts/StorageOwners.sol",
"file": "./StorageOwners.sol",
"id": 6003,
"nodeType": "ImportDirective",
"scope": 6983,
"sourceUnit": 9190,
"src": "54:29:21",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 6004,
"name": "IGroupSchema",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7693,
"src": "104:12:21",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IGroupSchema_$7693",
"typeString": "contract IGroupSchema"
}
},
"id": 6005,
"nodeType": "InheritanceSpecifier",
"src": "104:12:21"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 6006,
"name": "StorageOwners",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 9189,
"src": "118:13:21",
"typeDescriptions": {
"typeIdentifier": "t_contract$_StorageOwners_$9189",
"typeString": "contract StorageOwners"
}
},
"id": 6007,
"nodeType": "InheritanceSpecifier",
"src": "118:13:21"
}
],
"contractDependencies": [
7693,
9189
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 6982,
"linearizedBaseContracts": [
6982,
9189,
7693
],
"name": "Groups",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 6010,
"mutability": "mutable",
"name": "Groups",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "167:22:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 6008,
"name": "Group",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7610,
"src": "167:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group"
}
},
"id": 6009,
"length": null,
"nodeType": "ArrayTypeName",
"src": "167:7:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage_ptr",
"typeString": "struct IGroupSchema.Group[]"
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6014,
"mutability": "mutable",
"name": "GroupIndexer",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "261:52:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex)"
},
"typeName": {
"id": 6013,
"keyType": {
"id": 6011,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "269:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "261:31:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex)"
},
"valueType": {
"contractScope": null,
"id": 6012,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "280:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6019,
"mutability": "mutable",
"name": "GroupForCreatorIndexer",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "400:64:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex[])"
},
"typeName": {
"id": 6018,
"keyType": {
"id": 6015,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "408:7:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "400:33:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex[])"
},
"valueType": {
"baseType": {
"contractScope": null,
"id": 6016,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "419:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"id": 6017,
"length": null,
"nodeType": "ArrayTypeName",
"src": "419:13:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex[]"
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6023,
"mutability": "mutable",
"name": "GroupIndexerByName",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "524:57:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(string => struct IGroupSchema.RecordIndex)"
},
"typeName": {
"id": 6022,
"keyType": {
"id": 6020,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "532:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"nodeType": "Mapping",
"src": "524:30:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(string => struct IGroupSchema.RecordIndex)"
},
"valueType": {
"contractScope": null,
"id": 6021,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "542:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6026,
"mutability": "mutable",
"name": "GroupMembers",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "588:26:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_GroupMember_$7683_storage_$dyn_storage",
"typeString": "struct IGroupSchema.GroupMember[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 6024,
"name": "GroupMember",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7683,
"src": "588:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_storage_ptr",
"typeString": "struct IGroupSchema.GroupMember"
}
},
"id": 6025,
"length": null,
"nodeType": "ArrayTypeName",
"src": "588:13:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_GroupMember_$7683_storage_$dyn_storage_ptr",
"typeString": "struct IGroupSchema.GroupMember[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6031,
"mutability": "mutable",
"name": "GroupMembersIndexer",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "677:61:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex[])"
},
"typeName": {
"id": 6030,
"keyType": {
"id": 6027,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "685:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "677:33:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex[])"
},
"valueType": {
"baseType": {
"contractScope": null,
"id": 6028,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "696:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"id": 6029,
"length": null,
"nodeType": "ArrayTypeName",
"src": "696:13:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex[]"
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6036,
"mutability": "mutable",
"name": "GroupMembersIndexerByDepositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "745:72:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex[])"
},
"typeName": {
"id": 6035,
"keyType": {
"id": 6032,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "753:7:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "745:33:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex[])"
},
"valueType": {
"baseType": {
"contractScope": null,
"id": 6033,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "764:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"id": 6034,
"length": null,
"nodeType": "ArrayTypeName",
"src": "764:13:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex[]"
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6042,
"mutability": "mutable",
"name": "GroupMembersDeepIndexer",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "823:91:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$_$",
"typeString": "mapping(uint256 => mapping(address => struct IGroupSchema.RecordIndex))"
},
"typeName": {
"id": 6041,
"keyType": {
"id": 6037,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "831:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "823:51:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$_$",
"typeString": "mapping(uint256 => mapping(address => struct IGroupSchema.RecordIndex))"
},
"valueType": {
"id": 6040,
"keyType": {
"id": 6038,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "850:7:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "842:31:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex)"
},
"valueType": {
"contractScope": null,
"id": 6039,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "861:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6045,
"mutability": "mutable",
"name": "Members",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "950:24:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Member_$7676_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Member[]"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 6043,
"name": "Member",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7676,
"src": "950:6:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_storage_ptr",
"typeString": "struct IGroupSchema.Member"
}
},
"id": 6044,
"length": null,
"nodeType": "ArrayTypeName",
"src": "950:8:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Member_$7676_storage_$dyn_storage_ptr",
"typeString": "struct IGroupSchema.Member[]"
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6049,
"mutability": "mutable",
"name": "MemberIndexer",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "1075:53:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex)"
},
"typeName": {
"id": 6048,
"keyType": {
"id": 6046,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1083:7:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "1075:31:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex)"
},
"valueType": {
"contractScope": null,
"id": 6047,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "1094:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 6051,
"mutability": "mutable",
"name": "lastGroupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "1135:19:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6050,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1135:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6054,
"mutability": "mutable",
"name": "tokenAddresses",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "1161:24:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 6052,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1161:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 6053,
"length": null,
"nodeType": "ArrayTypeName",
"src": "1161:9:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6056,
"mutability": "mutable",
"name": "totalEthersDeposited",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "1191:28:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6055,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1191:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6060,
"mutability": "mutable",
"name": "totalTokensDeposited",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6982,
"src": "1225:48:21",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 6059,
"keyType": {
"id": 6057,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1233:7:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "1225:27:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 6058,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1244:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 6068,
"nodeType": "Block",
"src": "1390:45:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6065,
"name": "tokenAddresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6054,
"src": "1407:14:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 6066,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1407:21:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6064,
"id": 6067,
"nodeType": "Return",
"src": "1400:28:21"
}
]
},
"documentation": null,
"functionSelector": "80abc21a",
"id": 6069,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getLengthOfTokenAddressesUsedInDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6061,
"nodeType": "ParameterList",
"parameters": [],
"src": "1327:2:21"
},
"returnParameters": {
"id": 6064,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6063,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6069,
"src": "1377:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6062,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1377:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1376:9:21"
},
"scope": 6982,
"src": "1280:155:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6103,
"nodeType": "Block",
"src": "1583:224:21",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 6084,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6080,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "1597:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6082,
"indexExpression": {
"argumentTypes": null,
"id": 6081,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6071,
"src": "1618:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1597:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 6083,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1635:1:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1597:39:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 6092,
"nodeType": "IfStatement",
"src": "1593:103:21",
"trueBody": {
"id": 6091,
"nodeType": "Block",
"src": "1638:58:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6088,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6071,
"src": "1672:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"argumentTypes": null,
"id": 6085,
"name": "tokenAddresses",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6054,
"src": "1652:14:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 6087,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1652:19:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 6089,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1652:33:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6090,
"nodeType": "ExpressionStatement",
"src": "1652:33:21"
}
]
}
},
{
"expression": {
"argumentTypes": null,
"id": 6097,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6093,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "1705:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6095,
"indexExpression": {
"argumentTypes": null,
"id": 6094,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6071,
"src": "1726:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1705:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"id": 6096,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6073,
"src": "1743:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1705:44:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6098,
"nodeType": "ExpressionStatement",
"src": "1705:44:21"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6099,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "1766:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6101,
"indexExpression": {
"argumentTypes": null,
"id": 6100,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6071,
"src": "1787:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1766:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6079,
"id": 6102,
"nodeType": "Return",
"src": "1759:41:21"
}
]
},
"documentation": null,
"functionSelector": "8c224826",
"id": 6104,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6076,
"modifierName": {
"argumentTypes": null,
"id": 6075,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "1535:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "1535:17:21"
}
],
"name": "incrementTokenDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6074,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6071,
"mutability": "mutable",
"name": "tokenAddress",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6104,
"src": "1472:20:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6070,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1472:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6073,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6104,
"src": "1494:14:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6072,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1494:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1471:38:21"
},
"returnParameters": {
"id": 6079,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6078,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6104,
"src": "1570:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6077,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1570:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1569:9:21"
},
"scope": 6982,
"src": "1441:366:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6138,
"nodeType": "Block",
"src": "1955:300:21",
"statements": [
{
"assignments": [
6116
],
"declarations": [
{
"constant": false,
"id": 6116,
"mutability": "mutable",
"name": "currentAmount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6138,
"src": "1965:21:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6115,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1965:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6120,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6117,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "1989:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6119,
"indexExpression": {
"argumentTypes": null,
"id": 6118,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6106,
"src": "2010:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1989:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1965:58:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 6124,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6122,
"name": "currentAmount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6116,
"src": "2054:13:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 6123,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6108,
"src": "2071:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2054:23:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6465706f7369742062616c616e6365206f7665726472616674206973206e6f7420616c6c6f776564",
"id": 6125,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2091:42:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_93135185e3cdc7267f9e95576d02a002a0a0a999bb1e29d0bfab2a49fec4b4db",
"typeString": "literal_string \"deposit balance overdraft is not allowed\""
},
"value": "deposit balance overdraft is not allowed"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_93135185e3cdc7267f9e95576d02a002a0a0a999bb1e29d0bfab2a49fec4b4db",
"typeString": "literal_string \"deposit balance overdraft is not allowed\""
}
],
"id": 6121,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2033:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6126,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2033:110:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6127,
"nodeType": "ExpressionStatement",
"src": "2033:110:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6132,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6128,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "2153:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6130,
"indexExpression": {
"argumentTypes": null,
"id": 6129,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6106,
"src": "2174:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2153:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 6131,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6108,
"src": "2191:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2153:44:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6133,
"nodeType": "ExpressionStatement",
"src": "2153:44:21"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6134,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "2214:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6136,
"indexExpression": {
"argumentTypes": null,
"id": 6135,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6106,
"src": "2235:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2214:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6114,
"id": 6137,
"nodeType": "Return",
"src": "2207:41:21"
}
]
},
"documentation": null,
"functionSelector": "2e367f9f",
"id": 6139,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6111,
"modifierName": {
"argumentTypes": null,
"id": 6110,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "1907:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "1907:17:21"
}
],
"name": "decrementTokenDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6109,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6106,
"mutability": "mutable",
"name": "tokenAddress",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6139,
"src": "1844:20:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6105,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1844:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6108,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6139,
"src": "1866:14:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6107,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1866:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1843:38:21"
},
"returnParameters": {
"id": 6114,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6113,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6139,
"src": "1942:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6112,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1942:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1941:9:21"
},
"scope": 6982,
"src": "1813:442:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6150,
"nodeType": "Block",
"src": "2368:58:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6146,
"name": "totalTokensDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6060,
"src": "2385:20:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 6148,
"indexExpression": {
"argumentTypes": null,
"id": 6147,
"name": "tokenAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6141,
"src": "2406:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2385:34:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6145,
"id": 6149,
"nodeType": "Return",
"src": "2378:41:21"
}
]
},
"documentation": null,
"functionSelector": "8edb1a06",
"id": 6151,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getTokenDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6142,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6141,
"mutability": "mutable",
"name": "tokenAddress",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6151,
"src": "2286:20:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6140,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2286:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2285:22:21"
},
"returnParameters": {
"id": 6145,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6144,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6151,
"src": "2355:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6143,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2355:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2354:9:21"
},
"scope": 6982,
"src": "2261:165:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6166,
"nodeType": "Block",
"src": "2552:84:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 6162,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 6160,
"name": "totalEthersDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6056,
"src": "2562:20:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"id": 6161,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6153,
"src": "2586:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2562:30:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6163,
"nodeType": "ExpressionStatement",
"src": "2562:30:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6164,
"name": "totalEthersDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6056,
"src": "2609:20:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6159,
"id": 6165,
"nodeType": "Return",
"src": "2602:27:21"
}
]
},
"documentation": null,
"functionSelector": "52bc00c4",
"id": 6167,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6156,
"modifierName": {
"argumentTypes": null,
"id": 6155,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "2504:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "2504:17:21"
}
],
"name": "incrementEtherDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6154,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6153,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6167,
"src": "2463:14:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6152,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2463:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2462:16:21"
},
"returnParameters": {
"id": 6159,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6158,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6167,
"src": "2539:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6157,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2539:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2538:9:21"
},
"scope": 6982,
"src": "2432:204:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6189,
"nodeType": "Block",
"src": "2762:211:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 6179,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6177,
"name": "totalEthersDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6056,
"src": "2793:20:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 6178,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6169,
"src": "2817:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2793:30:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6465706f7369742062616c616e6365206f7665726472616674206973206e6f7420616c6c6f776564",
"id": 6180,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2837:42:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_93135185e3cdc7267f9e95576d02a002a0a0a999bb1e29d0bfab2a49fec4b4db",
"typeString": "literal_string \"deposit balance overdraft is not allowed\""
},
"value": "deposit balance overdraft is not allowed"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_93135185e3cdc7267f9e95576d02a002a0a0a999bb1e29d0bfab2a49fec4b4db",
"typeString": "literal_string \"deposit balance overdraft is not allowed\""
}
],
"id": 6176,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2772:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6181,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2772:117:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6182,
"nodeType": "ExpressionStatement",
"src": "2772:117:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6185,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 6183,
"name": "totalEthersDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6056,
"src": "2899:20:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 6184,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6169,
"src": "2923:6:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2899:30:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6186,
"nodeType": "ExpressionStatement",
"src": "2899:30:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6187,
"name": "totalEthersDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6056,
"src": "2946:20:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6175,
"id": 6188,
"nodeType": "Return",
"src": "2939:27:21"
}
]
},
"documentation": null,
"functionSelector": "2bd10bbc",
"id": 6190,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6172,
"modifierName": {
"argumentTypes": null,
"id": 6171,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "2714:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "2714:17:21"
}
],
"name": "decrementEtherDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6170,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6169,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6190,
"src": "2673:14:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6168,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2673:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2672:16:21"
},
"returnParameters": {
"id": 6175,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6174,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6190,
"src": "2749:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6173,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2749:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2748:9:21"
},
"scope": 6982,
"src": "2642:331:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6197,
"nodeType": "Block",
"src": "3038:44:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 6195,
"name": "totalEthersDeposited",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6056,
"src": "3055:20:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6194,
"id": 6196,
"nodeType": "Return",
"src": "3048:27:21"
}
]
},
"documentation": null,
"functionSelector": "d1f44278",
"id": 6198,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getEtherDeposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6191,
"nodeType": "ParameterList",
"parameters": [],
"src": "3003:2:21"
},
"returnParameters": {
"id": 6194,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6193,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6198,
"src": "3029:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6192,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3029:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3028:9:21"
},
"scope": 6982,
"src": "2979:103:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6245,
"nodeType": "Block",
"src": "3184:329:21",
"statements": [
{
"assignments": [
6206
],
"declarations": [
{
"constant": false,
"id": 6206,
"mutability": "mutable",
"name": "member",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6245,
"src": "3194:20:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_memory_ptr",
"typeString": "struct IGroupSchema.Member"
},
"typeName": {
"contractScope": null,
"id": 6205,
"name": "Member",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7676,
"src": "3194:6:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_storage_ptr",
"typeString": "struct IGroupSchema.Member"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6211,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 6208,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3224:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"id": 6209,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6200,
"src": "3230:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 6207,
"name": "Member",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7676,
"src": "3217:6:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Member_$7676_storage_ptr_$",
"typeString": "type(struct IGroupSchema.Member storage pointer)"
}
},
"id": 6210,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3217:23:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_memory_ptr",
"typeString": "struct IGroupSchema.Member memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3194:46:21"
},
{
"assignments": [
6213
],
"declarations": [
{
"constant": false,
"id": 6213,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6245,
"src": "3251:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6212,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3251:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6217,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6215,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6200,
"src": "3281:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 6214,
"name": "_doesMemberExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6516,
"src": "3264:16:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
"typeString": "function (address) view returns (bool)"
}
},
"id": 6216,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3264:27:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3251:40:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 6221,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6219,
"name": "exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6213,
"src": "3310:5:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 6220,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3319:5:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"src": "3310:14:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "4d656d62657220616c726561647920657869737473",
"id": 6222,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3326:23:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d34a411e6db759566a168837edf6a26f23da6d9b5e90e8aa118b090931f87829",
"typeString": "literal_string \"Member already exists\""
},
"value": "Member already exists"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_d34a411e6db759566a168837edf6a26f23da6d9b5e90e8aa118b090931f87829",
"typeString": "literal_string \"Member already exists\""
}
],
"id": 6218,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "3302:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6223,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3302:48:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6224,
"nodeType": "ExpressionStatement",
"src": "3302:48:21"
},
{
"assignments": [
6226
],
"declarations": [
{
"constant": false,
"id": 6226,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6245,
"src": "3361:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6225,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "3361:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6232,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 6228,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3406:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6229,
"name": "Members",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6045,
"src": "3412:7:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Member_$7676_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Member storage ref[] storage ref"
}
},
"id": 6230,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3412:14:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6227,
"name": "RecordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7688,
"src": "3394:11:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_RecordIndex_$7688_storage_ptr_$",
"typeString": "type(struct IGroupSchema.RecordIndex storage pointer)"
}
},
"id": 6231,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3394:33:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3361:66:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6236,
"name": "member",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6206,
"src": "3451:6:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_memory_ptr",
"typeString": "struct IGroupSchema.Member memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Member_$7676_memory_ptr",
"typeString": "struct IGroupSchema.Member memory"
}
],
"expression": {
"argumentTypes": null,
"id": 6233,
"name": "Members",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6045,
"src": "3438:7:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Member_$7676_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Member storage ref[] storage ref"
}
},
"id": 6235,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3438:12:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Member_$7676_storage_$returns$__$",
"typeString": "function (struct IGroupSchema.Member storage ref)"
}
},
"id": 6237,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3438:20:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6238,
"nodeType": "ExpressionStatement",
"src": "3438:20:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6243,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6239,
"name": "MemberIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6049,
"src": "3468:13:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6241,
"indexExpression": {
"argumentTypes": null,
"id": 6240,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6200,
"src": "3482:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3468:24:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6242,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6226,
"src": "3495:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"src": "3468:38:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6244,
"nodeType": "ExpressionStatement",
"src": "3468:38:21"
}
]
},
"documentation": null,
"functionSelector": "2124d529",
"id": 6246,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6203,
"modifierName": {
"argumentTypes": null,
"id": 6202,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "3162:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "3162:17:21"
}
],
"name": "createMember",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6201,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6200,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6246,
"src": "3110:25:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 6199,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3110:15:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3109:27:21"
},
"returnParameters": {
"id": 6204,
"nodeType": "ParameterList",
"parameters": [],
"src": "3184:0:21"
},
"scope": 6982,
"src": "3088:425:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6269,
"nodeType": "Block",
"src": "3588:140:21",
"statements": [
{
"assignments": [
6254
],
"declarations": [
{
"constant": false,
"id": 6254,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6269,
"src": "3598:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6253,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3598:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6258,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6256,
"name": "_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6248,
"src": "3630:8:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 6255,
"name": "_getMemberIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6301,
"src": "3614:15:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
"typeString": "function (address) view returns (uint256)"
}
},
"id": 6257,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3614:25:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3598:41:21"
},
{
"assignments": [
6260
],
"declarations": [
{
"constant": false,
"id": 6260,
"mutability": "mutable",
"name": "member",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6269,
"src": "3649:20:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_memory_ptr",
"typeString": "struct IGroupSchema.Member"
},
"typeName": {
"contractScope": null,
"id": 6259,
"name": "Member",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7676,
"src": "3649:6:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_storage_ptr",
"typeString": "struct IGroupSchema.Member"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6264,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6261,
"name": "Members",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6045,
"src": "3672:7:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Member_$7676_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Member storage ref[] storage ref"
}
},
"id": 6263,
"indexExpression": {
"argumentTypes": null,
"id": 6262,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6254,
"src": "3680:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3672:14:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_storage",
"typeString": "struct IGroupSchema.Member storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3649:37:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6265,
"name": "member",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6260,
"src": "3705:6:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Member_$7676_memory_ptr",
"typeString": "struct IGroupSchema.Member memory"
}
},
"id": 6266,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_address",
"nodeType": "MemberAccess",
"referencedDeclaration": 7675,
"src": "3705:15:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"id": 6267,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3704:17:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"functionReturnParameters": 6252,
"id": 6268,
"nodeType": "Return",
"src": "3697:24:21"
}
]
},
"documentation": null,
"functionSelector": "2ada2596",
"id": 6270,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getMember",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6249,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6248,
"mutability": "mutable",
"name": "_address",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6270,
"src": "3538:16:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6247,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3538:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3537:18:21"
},
"returnParameters": {
"id": 6252,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6251,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6270,
"src": "3579:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6250,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3579:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3578:9:21"
},
"scope": 6982,
"src": "3519:209:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6300,
"nodeType": "Block",
"src": "3809:210:21",
"statements": [
{
"assignments": [
6278
],
"declarations": [
{
"constant": false,
"id": 6278,
"mutability": "mutable",
"name": "doesMemberExist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6300,
"src": "3819:20:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6277,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3819:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6283,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6279,
"name": "MemberIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6049,
"src": "3842:13:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6281,
"indexExpression": {
"argumentTypes": null,
"id": 6280,
"name": "_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6272,
"src": "3856:8:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3842:23:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6282,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "3842:30:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3819:53:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 6287,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6285,
"name": "doesMemberExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6278,
"src": "3890:15:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 6286,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3909:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "3890:23:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "4d656d626572206e6f7420666f756e64",
"id": 6288,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3915:18:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_fc1f262b34698d09d1ba7a1d92c0c5806c0ff83ba4b32a75ec01e3fa11279c22",
"typeString": "literal_string \"Member not found\""
},
"value": "Member not found"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_fc1f262b34698d09d1ba7a1d92c0c5806c0ff83ba4b32a75ec01e3fa11279c22",
"typeString": "literal_string \"Member not found\""
}
],
"id": 6284,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "3882:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6289,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3882:52:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6290,
"nodeType": "ExpressionStatement",
"src": "3882:52:21"
},
{
"assignments": [
6292
],
"declarations": [
{
"constant": false,
"id": 6292,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6300,
"src": "3945:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6291,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3945:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6297,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6293,
"name": "MemberIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6049,
"src": "3961:13:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6295,
"indexExpression": {
"argumentTypes": null,
"id": 6294,
"name": "_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6272,
"src": "3975:8:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3961:23:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6296,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "index",
"nodeType": "MemberAccess",
"referencedDeclaration": 7687,
"src": "3961:29:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3945:45:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6298,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6292,
"src": "4007:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6276,
"id": 6299,
"nodeType": "Return",
"src": "4000:12:21"
}
]
},
"documentation": null,
"id": 6301,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_getMemberIndex",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6273,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6272,
"mutability": "mutable",
"name": "_address",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6301,
"src": "3759:16:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6271,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3759:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3758:18:21"
},
"returnParameters": {
"id": 6276,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6275,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6301,
"src": "3800:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6274,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3800:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3799:9:21"
},
"scope": 6982,
"src": "3734:285:21",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 6383,
"nodeType": "Block",
"src": "4189:633:21",
"statements": [
{
"assignments": [
6315
],
"declarations": [
{
"constant": false,
"id": 6315,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6383,
"src": "4199:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6314,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "4199:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6319,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6317,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6303,
"src": "4228:4:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
],
"id": 6316,
"name": "_doesGroupExist",
"nodeType": "Identifier",
"overloadedDeclarations": [
6454,
6483
],
"referencedDeclaration": 6483,
"src": "4212:15:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_bool_$",
"typeString": "function (string memory) view returns (bool)"
}
},
"id": 6318,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4212:21:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4199:34:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 6323,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6321,
"name": "exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6315,
"src": "4251:5:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 6322,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4260:5:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"src": "4251:14:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "47726f7570206e616d652068617320616c7265616479206265656e2075736564",
"id": 6324,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4267:34:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_36dbb2f869e7e864e28590896062e39da8f8f005a8e87a407a4964205d84f588",
"typeString": "literal_string \"Group name has already been used\""
},
"value": "Group name has already been used"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_36dbb2f869e7e864e28590896062e39da8f8f005a8e87a407a4964205d84f588",
"typeString": "literal_string \"Group name has already been used\""
}
],
"id": 6320,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "4243:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6325,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4243:59:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6326,
"nodeType": "ExpressionStatement",
"src": "4243:59:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6329,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 6327,
"name": "lastGroupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6051,
"src": "4313:11:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "31",
"id": 6328,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4328:1:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "4313:16:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6330,
"nodeType": "ExpressionStatement",
"src": "4313:16:21"
},
{
"assignments": [
6332
],
"declarations": [
{
"constant": false,
"id": 6332,
"mutability": "mutable",
"name": "group",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6383,
"src": "4339:18:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_memory_ptr",
"typeString": "struct IGroupSchema.Group"
},
"typeName": {
"contractScope": null,
"id": 6331,
"name": "Group",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7610,
"src": "4339:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage_ptr",
"typeString": "struct IGroupSchema.Group"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6343,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 6334,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4379:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"id": 6335,
"name": "lastGroupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6051,
"src": "4397:11:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 6336,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6303,
"src": "4422:4:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
{
"argumentTypes": null,
"id": 6337,
"name": "symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6305,
"src": "4440:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6340,
"name": "groupCreator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6307,
"src": "4468:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 6339,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4460:8:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_payable_$",
"typeString": "type(address payable)"
},
"typeName": {
"id": 6338,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4460:8:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
"id": 6341,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4460:21:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
},
{
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
},
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 6333,
"name": "Group",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7610,
"src": "4360:5:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Group_$7610_storage_ptr_$",
"typeString": "type(struct IGroupSchema.Group storage pointer)"
}
},
"id": 6342,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4360:131:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_memory_ptr",
"typeString": "struct IGroupSchema.Group memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4339:152:21"
},
{
"assignments": [
6345
],
"declarations": [
{
"constant": false,
"id": 6345,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6383,
"src": "4501:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6344,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4501:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6348,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6346,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "4517:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6347,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4517:13:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4501:29:21"
},
{
"assignments": [
6350
],
"declarations": [
{
"constant": false,
"id": 6350,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6383,
"src": "4540:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6349,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "4540:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6355,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 6352,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4585:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"id": 6353,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6345,
"src": "4591:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6351,
"name": "RecordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7688,
"src": "4573:11:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_RecordIndex_$7688_storage_ptr_$",
"typeString": "type(struct IGroupSchema.RecordIndex storage pointer)"
}
},
"id": 6354,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4573:24:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4540:57:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6359,
"name": "group",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6332,
"src": "4619:5:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_memory_ptr",
"typeString": "struct IGroupSchema.Group memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_Group_$7610_memory_ptr",
"typeString": "struct IGroupSchema.Group memory"
}
],
"expression": {
"argumentTypes": null,
"id": 6356,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "4607:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6358,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4607:11:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Group_$7610_storage_$returns$__$",
"typeString": "function (struct IGroupSchema.Group storage ref)"
}
},
"id": 6360,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4607:18:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6361,
"nodeType": "ExpressionStatement",
"src": "4607:18:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6366,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6362,
"name": "GroupIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6014,
"src": "4635:12:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6364,
"indexExpression": {
"argumentTypes": null,
"id": 6363,
"name": "lastGroupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6051,
"src": "4648:11:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4635:25:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6365,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6350,
"src": "4663:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"src": "4635:39:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6367,
"nodeType": "ExpressionStatement",
"src": "4635:39:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6372,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6368,
"name": "GroupIndexerByName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6023,
"src": "4684:18:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(string memory => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6370,
"indexExpression": {
"argumentTypes": null,
"id": 6369,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6303,
"src": "4703:4:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4684:24:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6371,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6350,
"src": "4711:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"src": "4684:38:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6373,
"nodeType": "ExpressionStatement",
"src": "4684:38:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6378,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6350,
"src": "4774:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6374,
"name": "GroupForCreatorIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6019,
"src": "4732:22:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref[] storage ref)"
}
},
"id": 6376,
"indexExpression": {
"argumentTypes": null,
"id": 6375,
"name": "groupCreator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6307,
"src": "4755:12:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4732:36:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref[] storage ref"
}
},
"id": 6377,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4732:41:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_RecordIndex_$7688_storage_$returns$__$",
"typeString": "function (struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6379,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4732:54:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6380,
"nodeType": "ExpressionStatement",
"src": "4732:54:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6381,
"name": "lastGroupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6051,
"src": "4804:11:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6313,
"id": 6382,
"nodeType": "Return",
"src": "4797:18:21"
}
]
},
"documentation": null,
"functionSelector": "9a259798",
"id": 6384,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6310,
"modifierName": {
"argumentTypes": null,
"id": 6309,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "4153:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "4153:17:21"
}
],
"name": "createGroup",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6308,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6303,
"mutability": "mutable",
"name": "name",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6384,
"src": "4055:20:21",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 6302,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4055:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6305,
"mutability": "mutable",
"name": "symbol",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6384,
"src": "4085:22:21",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 6304,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4085:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6307,
"mutability": "mutable",
"name": "groupCreator",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6384,
"src": "4117:20:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6306,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4117:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4045:98:21"
},
"returnParameters": {
"id": 6313,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6312,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6384,
"src": "4180:7:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6311,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4180:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4179:9:21"
},
"scope": 6982,
"src": "4025:797:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6424,
"nodeType": "Block",
"src": "5004:180:21",
"statements": [
{
"assignments": [
6398
],
"declarations": [
{
"constant": false,
"id": 6398,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6424,
"src": "5014:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6397,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5014:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6402,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6400,
"name": "id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6386,
"src": "5045:2:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6399,
"name": "_getGroupIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6981,
"src": "5030:14:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) view returns (uint256)"
}
},
"id": 6401,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5030:18:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5014:34:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6408,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6403,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "5058:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6405,
"indexExpression": {
"argumentTypes": null,
"id": 6404,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6398,
"src": "5065:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5058:13:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage",
"typeString": "struct IGroupSchema.Group storage ref"
}
},
"id": 6406,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "name",
"nodeType": "MemberAccess",
"referencedDeclaration": 7605,
"src": "5058:18:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6407,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6388,
"src": "5079:4:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"src": "5058:25:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 6409,
"nodeType": "ExpressionStatement",
"src": "5058:25:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6415,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6410,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "5093:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6412,
"indexExpression": {
"argumentTypes": null,
"id": 6411,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6398,
"src": "5100:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5093:13:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage",
"typeString": "struct IGroupSchema.Group storage ref"
}
},
"id": 6413,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "symbol",
"nodeType": "MemberAccess",
"referencedDeclaration": 7607,
"src": "5093:20:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6414,
"name": "symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6390,
"src": "5116:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
"src": "5093:29:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 6416,
"nodeType": "ExpressionStatement",
"src": "5093:29:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6422,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6417,
"name": "Groups",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6010,
"src": "5132:6:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Group_$7610_storage_$dyn_storage",
"typeString": "struct IGroupSchema.Group storage ref[] storage ref"
}
},
"id": 6419,
"indexExpression": {
"argumentTypes": null,
"id": 6418,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6398,
"src": "5139:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5132:13:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Group_$7610_storage",
"typeString": "struct IGroupSchema.Group storage ref"
}
},
"id": 6420,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "creatorAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 7609,
"src": "5132:28:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6421,
"name": "creatorAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6392,
"src": "5163:14:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "5132:45:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 6423,
"nodeType": "ExpressionStatement",
"src": "5132:45:21"
}
]
},
"documentation": null,
"functionSelector": "5e82c389",
"id": 6425,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6395,
"modifierName": {
"argumentTypes": null,
"id": 6394,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "4986:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "4986:17:21"
}
],
"name": "updateGroup",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6393,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6386,
"mutability": "mutable",
"name": "id",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6425,
"src": "4858:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6385,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4858:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6388,
"mutability": "mutable",
"name": "name",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6425,
"src": "4878:20:21",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 6387,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4878:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6390,
"mutability": "mutable",
"name": "symbol",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6425,
"src": "4908:22:21",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 6389,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4908:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6392,
"mutability": "mutable",
"name": "creatorAddress",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6425,
"src": "4940:30:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 6391,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4940:15:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4848:128:21"
},
"returnParameters": {
"id": 6396,
"nodeType": "ParameterList",
"parameters": [],
"src": "5004:0:21"
},
"scope": 6982,
"src": "4828:356:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6436,
"nodeType": "Block",
"src": "5260:48:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6433,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6427,
"src": "5293:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6432,
"name": "_doesGroupExist",
"nodeType": "Identifier",
"overloadedDeclarations": [
6454,
6483
],
"referencedDeclaration": 6454,
"src": "5277:15:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
"typeString": "function (uint256) view returns (bool)"
}
},
"id": 6434,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5277:24:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 6431,
"id": 6435,
"nodeType": "Return",
"src": "5270:31:21"
}
]
},
"documentation": null,
"functionSelector": "6b2c46d5",
"id": 6437,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "doesGroupExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6428,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6427,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6437,
"src": "5214:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6426,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5214:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5213:17:21"
},
"returnParameters": {
"id": 6431,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6430,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6437,
"src": "5254:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6429,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5254:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5253:6:21"
},
"scope": 6982,
"src": "5190:118:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6453,
"nodeType": "Block",
"src": "5385:90:21",
"statements": [
{
"assignments": [
6445
],
"declarations": [
{
"constant": false,
"id": 6445,
"mutability": "mutable",
"name": "groupExist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6453,
"src": "5395:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6444,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5395:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6450,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6446,
"name": "GroupIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6014,
"src": "5413:12:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6448,
"indexExpression": {
"argumentTypes": null,
"id": 6447,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6439,
"src": "5426:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5413:21:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6449,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "5413:28:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5395:46:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6451,
"name": "groupExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6445,
"src": "5458:10:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 6443,
"id": 6452,
"nodeType": "Return",
"src": "5451:17:21"
}
]
},
"documentation": null,
"id": 6454,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_doesGroupExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6440,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6439,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6454,
"src": "5339:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6438,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5339:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5338:17:21"
},
"returnParameters": {
"id": 6443,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6442,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6454,
"src": "5379:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6441,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5379:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5378:6:21"
},
"scope": 6982,
"src": "5314:161:21",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 6465,
"nodeType": "Block",
"src": "5589:50:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6462,
"name": "groupName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6456,
"src": "5622:9:21",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
],
"id": 6461,
"name": "_doesGroupExist",
"nodeType": "Identifier",
"overloadedDeclarations": [
6454,
6483
],
"referencedDeclaration": 6483,
"src": "5606:15:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_bool_$",
"typeString": "function (string memory) view returns (bool)"
}
},
"id": 6463,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5606:26:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 6460,
"id": 6464,
"nodeType": "Return",
"src": "5599:33:21"
}
]
},
"documentation": null,
"functionSelector": "458a8c07",
"id": 6466,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "doesGroupExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6457,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6456,
"mutability": "mutable",
"name": "groupName",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6466,
"src": "5505:25:21",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 6455,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5505:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5504:27:21"
},
"returnParameters": {
"id": 6460,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6459,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6466,
"src": "5579:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6458,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5579:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5578:6:21"
},
"scope": 6982,
"src": "5481:158:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6482,
"nodeType": "Block",
"src": "5752:99:21",
"statements": [
{
"assignments": [
6474
],
"declarations": [
{
"constant": false,
"id": 6474,
"mutability": "mutable",
"name": "groupExist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6482,
"src": "5762:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6473,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5762:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6479,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6475,
"name": "GroupIndexerByName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6023,
"src": "5780:18:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(string memory => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6477,
"indexExpression": {
"argumentTypes": null,
"id": 6476,
"name": "groupName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6468,
"src": "5799:9:21",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5780:29:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6478,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "5780:36:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5762:54:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6480,
"name": "groupExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6474,
"src": "5834:10:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 6472,
"id": 6481,
"nodeType": "Return",
"src": "5827:17:21"
}
]
},
"documentation": null,
"id": 6483,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_doesGroupExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6469,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6468,
"mutability": "mutable",
"name": "groupName",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6483,
"src": "5670:23:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 6467,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5670:6:21",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5669:25:21"
},
"returnParameters": {
"id": 6472,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6471,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6483,
"src": "5742:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6470,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5742:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5741:6:21"
},
"scope": 6982,
"src": "5645:206:21",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 6494,
"nodeType": "Block",
"src": "5930:51:21",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6491,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6485,
"src": "5964:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 6490,
"name": "_doesMemberExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6516,
"src": "5947:16:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
"typeString": "function (address) view returns (bool)"
}
},
"id": 6492,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5947:27:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 6489,
"id": 6493,
"nodeType": "Return",
"src": "5940:34:21"
}
]
},
"documentation": null,
"functionSelector": "165301a5",
"id": 6495,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "doesMemberExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6486,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6485,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6495,
"src": "5882:17:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6484,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5882:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5881:19:21"
},
"returnParameters": {
"id": 6489,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6488,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6495,
"src": "5924:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6487,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5924:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5923:6:21"
},
"scope": 6982,
"src": "5857:124:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6515,
"nodeType": "Block",
"src": "6061:121:21",
"statements": [
{
"assignments": [
6503
],
"declarations": [
{
"constant": false,
"id": 6503,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6515,
"src": "6071:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6502,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6071:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6508,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6504,
"name": "MemberIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6049,
"src": "6084:13:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6506,
"indexExpression": {
"argumentTypes": null,
"id": 6505,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6497,
"src": "6098:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6084:24:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6507,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "6084:31:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6071:44:21"
},
{
"condition": {
"argumentTypes": null,
"id": 6509,
"name": "exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6503,
"src": "6130:5:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"expression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 6512,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6170:5:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"functionReturnParameters": 6501,
"id": 6513,
"nodeType": "Return",
"src": "6163:12:21"
},
"id": 6514,
"nodeType": "IfStatement",
"src": "6126:49:21",
"trueBody": {
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 6510,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6144:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 6501,
"id": 6511,
"nodeType": "Return",
"src": "6137:11:21"
}
}
]
},
"documentation": null,
"id": 6516,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_doesMemberExist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6498,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6497,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6516,
"src": "6013:17:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6496,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6013:7:21",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6012:19:21"
},
"returnParameters": {
"id": 6501,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6500,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6516,
"src": "6055:4:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6499,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6055:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6054:6:21"
},
"scope": 6982,
"src": "5987:195:21",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 6583,
"nodeType": "Block",
"src": "6306:523:21",
"statements": [
{
"assignments": [
6526
],
"declarations": [
{
"constant": false,
"id": 6526,
"mutability": "mutable",
"name": "exist",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6583,
"src": "6316:10:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 6525,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6316:4:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6531,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6528,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6518,
"src": "6351:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 6529,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6520,
"src": "6360:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 6527,
"name": "_doesGroupMemberExist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6746,
"src": "6329:21:21",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$",
"typeString": "function (uint256,address) view returns (bool)"
}
},
"id": 6530,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6329:41:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6316:54:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 6535,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 6533,
"name": "exist",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6526,
"src": "6388:5:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 6534,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6397:5:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"src": "6388:14:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "47726f7570206d656d62657220657869737473",
"id": 6536,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6404:21:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3f73b1a580ba6f5c728a6c9410cf94924e21681a7c7e328d0493fbd69de0f144",
"typeString": "literal_string \"Group member exists\""
},
"value": "Group member exists"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_3f73b1a580ba6f5c728a6c9410cf94924e21681a7c7e328d0493fbd69de0f144",
"typeString": "literal_string \"Group member exists\""
}
],
"id": 6532,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "6380:7:21",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 6537,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6380:46:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6538,
"nodeType": "ExpressionStatement",
"src": "6380:46:21"
},
{
"assignments": [
6540
],
"declarations": [
{
"constant": false,
"id": 6540,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6583,
"src": "6437:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6539,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "6437:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6546,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 6542,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6482:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6543,
"name": "GroupMembers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6026,
"src": "6488:12:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_GroupMember_$7683_storage_$dyn_storage",
"typeString": "struct IGroupSchema.GroupMember storage ref[] storage ref"
}
},
"id": 6544,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6488:19:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6541,
"name": "RecordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7688,
"src": "6470:11:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_RecordIndex_$7688_storage_ptr_$",
"typeString": "type(struct IGroupSchema.RecordIndex storage pointer)"
}
},
"id": 6545,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6470:38:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6437:71:21"
},
{
"assignments": [
6548
],
"declarations": [
{
"constant": false,
"id": 6548,
"mutability": "mutable",
"name": "groupMember",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6583,
"src": "6519:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember"
},
"typeName": {
"contractScope": null,
"id": 6547,
"name": "GroupMember",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7683,
"src": "6519:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_storage_ptr",
"typeString": "struct IGroupSchema.GroupMember"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6554,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "74727565",
"id": 6550,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6564:4:21",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
{
"argumentTypes": null,
"id": 6551,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6520,
"src": "6570:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 6552,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6518,
"src": "6581:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 6549,
"name": "GroupMember",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7683,
"src": "6552:11:21",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_GroupMember_$7683_storage_ptr_$",
"typeString": "type(struct IGroupSchema.GroupMember storage pointer)"
}
},
"id": 6553,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6552:37:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6519:70:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6559,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6540,
"src": "6634:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6555,
"name": "GroupMembersIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6031,
"src": "6600:19:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(uint256 => struct IGroupSchema.RecordIndex storage ref[] storage ref)"
}
},
"id": 6557,
"indexExpression": {
"argumentTypes": null,
"id": 6556,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6518,
"src": "6620:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6600:28:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref[] storage ref"
}
},
"id": 6558,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6600:33:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_RecordIndex_$7688_storage_$returns$__$",
"typeString": "function (struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6560,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6600:46:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6561,
"nodeType": "ExpressionStatement",
"src": "6600:46:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6566,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6540,
"src": "6703:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6562,
"name": "GroupMembersIndexerByDepositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6036,
"src": "6656:30:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref[] storage ref)"
}
},
"id": 6564,
"indexExpression": {
"argumentTypes": null,
"id": 6563,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6520,
"src": "6687:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6656:41:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_RecordIndex_$7688_storage_$dyn_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref[] storage ref"
}
},
"id": 6565,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6656:46:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_RecordIndex_$7688_storage_$returns$__$",
"typeString": "function (struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6567,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6656:59:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6568,
"nodeType": "ExpressionStatement",
"src": "6656:59:21"
},
{
"expression": {
"argumentTypes": null,
"id": 6575,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6569,
"name": "GroupMembersDeepIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6042,
"src": "6725:23:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$_$",
"typeString": "mapping(uint256 => mapping(address => struct IGroupSchema.RecordIndex storage ref))"
}
},
"id": 6572,
"indexExpression": {
"argumentTypes": null,
"id": 6570,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6518,
"src": "6749:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6725:32:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6573,
"indexExpression": {
"argumentTypes": null,
"id": 6571,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6520,
"src": "6758:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6725:43:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 6574,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6540,
"src": "6771:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"src": "6725:57:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"id": 6576,
"nodeType": "ExpressionStatement",
"src": "6725:57:21"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 6580,
"name": "groupMember",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6548,
"src": "6810:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember memory"
}
],
"expression": {
"argumentTypes": null,
"id": 6577,
"name": "GroupMembers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6026,
"src": "6792:12:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_GroupMember_$7683_storage_$dyn_storage",
"typeString": "struct IGroupSchema.GroupMember storage ref[] storage ref"
}
},
"id": 6579,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6792:17:21",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_GroupMember_$7683_storage_$returns$__$",
"typeString": "function (struct IGroupSchema.GroupMember storage ref)"
}
},
"id": 6581,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6792:30:21",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 6582,
"nodeType": "ExpressionStatement",
"src": "6792:30:21"
}
]
},
"documentation": null,
"functionSelector": "0c202741",
"id": 6584,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 6523,
"modifierName": {
"argumentTypes": null,
"id": 6522,
"name": "onlyStorageOracle",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9188,
"src": "6284:17:21",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "6284:17:21"
}
],
"name": "createGroupMember",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6521,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6518,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6584,
"src": "6215:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6517,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6215:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6520,
"mutability": "mutable",
"name": "depositor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6584,
"src": "6232:25:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 6519,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6232:15:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6214:44:21"
},
"returnParameters": {
"id": 6524,
"nodeType": "ParameterList",
"parameters": [],
"src": "6306:0:21"
},
"scope": 6982,
"src": "6188:641:21",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6605,
"nodeType": "Block",
"src": "6968:129:21",
"statements": [
{
"assignments": [
6594
],
"declarations": [
{
"constant": false,
"id": 6594,
"mutability": "mutable",
"name": "groupMember",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6605,
"src": "6978:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember"
},
"typeName": {
"contractScope": null,
"id": 6593,
"name": "GroupMember",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7683,
"src": "6978:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_storage_ptr",
"typeString": "struct IGroupSchema.GroupMember"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6598,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6595,
"name": "GroupMembers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6026,
"src": "7011:12:21",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_GroupMember_$7683_storage_$dyn_storage",
"typeString": "struct IGroupSchema.GroupMember storage ref[] storage ref"
}
},
"id": 6597,
"indexExpression": {
"argumentTypes": null,
"id": 6596,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6586,
"src": "7024:5:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7011:19:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_storage",
"typeString": "struct IGroupSchema.GroupMember storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6978:52:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6599,
"name": "groupMember",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6594,
"src": "7048:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember memory"
}
},
"id": 6600,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "_address",
"nodeType": "MemberAccess",
"referencedDeclaration": 7680,
"src": "7048:20:21",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6601,
"name": "groupMember",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6594,
"src": "7070:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GroupMember_$7683_memory_ptr",
"typeString": "struct IGroupSchema.GroupMember memory"
}
},
"id": 6602,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "groupId",
"nodeType": "MemberAccess",
"referencedDeclaration": 7682,
"src": "7070:19:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 6603,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "7047:43:21",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_address_payable_$_t_uint256_$",
"typeString": "tuple(address payable,uint256)"
}
},
"functionReturnParameters": 6592,
"id": 6604,
"nodeType": "Return",
"src": "7040:50:21"
}
]
},
"documentation": null,
"functionSelector": "d73c9de4",
"id": 6606,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGroupMember",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 6587,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6586,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6606,
"src": "6859:13:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6585,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6859:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6858:15:21"
},
"returnParameters": {
"id": 6592,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 6589,
"mutability": "mutable",
"name": "_address",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6606,
"src": "6921:24:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 6588,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6921:15:21",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6591,
"mutability": "mutable",
"name": "groupId",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6606,
"src": "6947:15:21",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6590,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6947:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6920:43:21"
},
"scope": 6982,
"src": "6835:262:21",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 6631,
"nodeType": "Block",
"src": "7254:163:21",
"statements": [
{
"assignments": [
6618
],
"declarations": [
{
"constant": false,
"id": 6618,
"mutability": "mutable",
"name": "recordIndex",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 6631,
"src": "7269:30:21",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
},
"typeName": {
"contractScope": null,
"id": 6617,
"name": "RecordIndex",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7688,
"src": "7269:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage_ptr",
"typeString": "struct IGroupSchema.RecordIndex"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 6624,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 6619,
"name": "GroupMembersDeepIndexer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6042,
"src": "7311:23:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$_$",
"typeString": "mapping(uint256 => mapping(address => struct IGroupSchema.RecordIndex storage ref))"
}
},
"id": 6621,
"indexExpression": {
"argumentTypes": null,
"id": 6620,
"name": "groupId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6608,
"src": "7335:7:21",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7311:32:21",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_struct$_RecordIndex_$7688_storage_$",
"typeString": "mapping(address => struct IGroupSchema.RecordIndex storage ref)"
}
},
"id": 6623,
"indexExpression": {
"argumentTypes": null,
"id": 6622,
"name": "depositor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6610,
"src": "7344:9:21",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7311:43:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_storage",
"typeString": "struct IGroupSchema.RecordIndex storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "7269:85:21"
},
{
"expression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6625,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6618,
"src": "7372:11:21",
"typeDescriptions": {
"typeIdentifier": "t_struct$_RecordIndex_$7688_memory_ptr",
"typeString": "struct IGroupSchema.RecordIndex memory"
}
},
"id": 6626,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "exists",
"nodeType": "MemberAccess",
"referencedDeclaration": 7685,
"src": "7372:18:21",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 6627,
"name": "recordIndex",
"nodeType": "Identifier",
"overloadedDeclara
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment