{ "contractName": "XBRCatalog", "abi": [ { "inputs": [ { "internalType": "address", "name": "networkAdr", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes16", "name": "catalogId", "type": "bytes16" }, { "indexed": false, "internalType": "bytes16", "name": "apiId", "type": "bytes16" }, { "indexed": false, "internalType": "uint256", "name": "published", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "schema", "type": "string" }, { "indexed": false, "internalType": "string", "name": "meta", "type": "string" } ], "name": "ApiPublished", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes16", "name": "catalogId", "type": "bytes16" }, { "indexed": false, "internalType": "uint256", "name": "created", "type": "uint256" }, { "indexed": false, "internalType": "uint32", "name": "catalogSeq", "type": "uint32" }, { "indexed": false, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "string", "name": "terms", "type": "string" }, { "indexed": false, "internalType": "string", "name": "meta", "type": "string" } ], "name": "CatalogCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MaintainerAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MaintainerRemoved", "type": "event" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addMaintainer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "catalogIds", "outputs": [ { "internalType": "bytes16", "name": "", "type": "bytes16" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes16", "name": "", "type": "bytes16" } ], "name": "catalogs", "outputs": [ { "internalType": "uint256", "name": "created", "type": "uint256" }, { "internalType": "uint32", "name": "seq", "type": "uint32" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "string", "name": "terms", "type": "string" }, { "internalType": "string", "name": "meta", "type": "string" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isMaintainer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "network", "outputs": [ { "internalType": "contract XBRNetwork", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "renounceMaintainer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "bytes16", "name": "catalogId", "type": "bytes16" }, { "internalType": "string", "name": "terms", "type": "string" }, { "internalType": "string", "name": "meta", "type": "string" } ], "name": "createCatalog", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "member", "type": "address" }, { "internalType": "uint256", "name": "created", "type": "uint256" }, { "internalType": "bytes16", "name": "catalogId", "type": "bytes16" }, { "internalType": "string", "name": "terms", "type": "string" }, { "internalType": "string", "name": "meta", "type": "string" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "createCatalogFor", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "bytes16", "name": "catalogId", "type": "bytes16" }, { "internalType": "bytes16", "name": "apiId", "type": "bytes16" }, { "internalType": "string", "name": "schema", "type": "string" }, { "internalType": "string", "name": "meta", "type": "string" } ], "name": "publishApi", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "member", "type": "address" }, { "internalType": "uint256", "name": "published", "type": "uint256" }, { "internalType": "bytes16", "name": "catalogId", "type": "bytes16" }, { "internalType": "bytes16", "name": "apiId", "type": "bytes16" }, { "internalType": "string", "name": "schema", "type": "string" }, { "internalType": "string", "name": "meta", "type": "string" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "publishApiFor", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkAdr\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"catalogId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"bytes16\",\"name\":\"apiId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"published\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"meta\",\"type\":\"string\"}],\"name\":\"ApiPublished\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"catalogId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"catalogSeq\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"terms\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"meta\",\"type\":\"string\"}],\"name\":\"CatalogCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MaintainerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MaintainerRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMaintainer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"catalogIds\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"\",\"type\":\"bytes16\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"\",\"type\":\"bytes16\"}],\"name\":\"catalogs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"seq\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"terms\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"meta\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"catalogId\",\"type\":\"bytes16\"},{\"internalType\":\"string\",\"name\":\"terms\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"meta\",\"type\":\"string\"}],\"name\":\"createCatalog\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"catalogId\",\"type\":\"bytes16\"},{\"internalType\":\"string\",\"name\":\"terms\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"meta\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"createCatalogFor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMaintainer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"network\",\"outputs\":[{\"internalType\":\"contract XBRNetwork\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"catalogId\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"apiId\",\"type\":\"bytes16\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"meta\",\"type\":\"string\"}],\"name\":\"publishApi\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"published\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"catalogId\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"apiId\",\"type\":\"bytes16\"},{\"internalType\":\"string\",\"name\":\"schema\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"meta\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"publishApiFor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMaintainer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"addMaintainer(address)\":{\"params\":{\"account\":\"The account to grant maintainer rights to.\"}},\"createCatalog(bytes16,string,string)\":{\"params\":{\"catalogId\":\"The ID of the new catalog.\",\"meta\":\"Multihash for optional catalog meta-data.\",\"terms\":\"Multihash for terms that apply to the catalog and to all APIs as published to this catalog.\"}},\"createCatalogFor(address,uint256,bytes16,string,string,bytes)\":{\"params\":{\"catalogId\":\"The ID of the new catalog.\",\"created\":\"Block number when the catalog was created.\",\"member\":\"Member that creates the catalog and will become owner.\",\"meta\":\"Multihash for optional catalog meta-data.\",\"signature\":\"Signature created by the member.\",\"terms\":\"Multihash for terms that apply to the catalog and to all APIs as published to this catalog.\"}},\"isMaintainer(address)\":{\"params\":{\"account\":\"The account to check.\"},\"return\":\"`true` if the account is maintainer, otherwise `false`.\"},\"publishApi(bytes16,bytes16,string,string)\":{\"params\":{\"apiId\":\"The ID of the new API (must be unique).\",\"catalogId\":\"The ID of the XBR API catalog to publish the API to.\",\"meta\":\"Multihash for optional meta-data.\",\"schema\":\"Multihash of API Flatbuffers schema (required).\"}},\"publishApiFor(address,uint256,bytes16,bytes16,string,string,bytes)\":{\"params\":{\"apiId\":\"The ID of the new API (must be unique).\",\"catalogId\":\"The ID of the XBR API catalog to publish the API to.\",\"member\":\"Member that is publishing the API.\",\"meta\":\"Multihash for optional meta-data.\",\"published\":\"Block number when the API was published.\",\"schema\":\"Multihash of API Flatbuffers schema (required).\",\"signature\":\"Signature created by the member.\"}}}},\"userdoc\":{\"methods\":{\"addMaintainer(address)\":{\"notice\":\"Add a new maintainer to the list of maintainers.\"},\"createCatalog(bytes16,string,string)\":{\"notice\":\"Create a new XBR catalog. The sender of the transaction must be XBR network member and automatically becomes owner of the new catalog. \"},\"createCatalogFor(address,uint256,bytes16,string,string,bytes)\":{\"notice\":\"Create a new XBR catalog for a member. The member must be XBR network member, must have signed the transaction data, and will become owner of the new catalog. /// Note: This version uses pre-signed data where the actual blockchain transaction is submitted by a gateway paying the respective gas (in ETH) for the blockchain transaction. \"},\"isMaintainer(address)\":{\"notice\":\"Check if the given address is currently a maintainer.\"},\"publishApi(bytes16,bytes16,string,string)\":{\"notice\":\"Publish the given API to the specified catalog. \"},\"publishApiFor(address,uint256,bytes16,bytes16,string,string,bytes)\":{\"notice\":\"Publish the given API to the specified catalog. /// Note: This version uses pre-signed data where the actual blockchain transaction is submitted by a gateway paying the respective gas (in ETH) for the blockchain transaction. \"},\"renounceMaintainer()\":{\"notice\":\"Give away maintainer rights.\"}},\"notice\":\"XBR API catalogs contract.\"}},\"settings\":{\"compilationTarget\":{\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRCatalog.sol\":\"XBRCatalog\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRCatalog.sol\":{\"keccak256\":\"0xe348489559b4067fb48fdda5f284c026bb6e69654cfe6cf3ed04369605da8fd3\",\"urls\":[\"bzz-raw://b9b373ce93b6811c66294f7875f1499fa0baa4506665f04d1afa97e742227831\",\"dweb:/ipfs/QmSJnw3abCaVanF8NYJ1sTYgrzVNCdtgdRVbNDMzfAt5Mz\"]},\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRMaintained.sol\":{\"keccak256\":\"0x2d3c274d75b270759fd8d6822d0690595cdae6d3878abc7eb33c3d19ce358dfe\",\"urls\":[\"bzz-raw://f5995d408d9a328f36a76e9c9e09828a0ff114757f7c25650944367bcd403389\",\"dweb:/ipfs/QmPNqFpo6x9pF7xkC28eEyTqAcT9WwTvUYsVEKbTVywqs3\"]},\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRNetwork.sol\":{\"keccak256\":\"0x32ad15ae4bb11302ab25ede12755a8fbb99feb054b6eabe48bfc7dfd24aad936\",\"urls\":[\"bzz-raw://ab4f124a80210614079733243fdbade7d310cd37b8cd7a94db9bc1bf4ba712d6\",\"dweb:/ipfs/QmfUbd8SWju2XZRYtmujEnc6dYGndtUE7LBmqdLJ33337X\"]},\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRToken.sol\":{\"keccak256\":\"0xe356783413d9d169270eddee3718f6761cf1a46cd6bf634a78a46627cf036fa8\",\"urls\":[\"bzz-raw://986c7122987c421a25e4c22af312f05c2dc4cd9904cf1c33c45ccd71faf8e98f\",\"dweb:/ipfs/QmZN9MAy9qprWcA1cUjsZnMZopcw7XdoWifznU2zE3MrZp\"]},\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRTypes.sol\":{\"keccak256\":\"0xb7d784604c76b74c4f0fcaf2960e48e25c068beaf70a07ac2146d48d24d245b4\",\"urls\":[\"bzz-raw://7f00b3af2ba72b830d5ed24a88175c117d1cf56d94001239946e872037f27aa0\",\"dweb:/ipfs/QmdGZPFtodRLhuXZ2Nmxq7SU8NiaaFxy65WU2YUhdNBbyK\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xb15af804e2bc97db51e4e103f13de9fe13f87e6b835d7a88c897966c0e58506e\",\"urls\":[\"bzz-raw://1e8cff8437557fc915a3bed968fcd8f2df9809599e665ef69c2c9ce628548055\",\"dweb:/ipfs/QmP5spYP8vs2jvLF8zNrXUbqB79hMsoEvMHiLcBxerWKcm\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0x4a3a810b7ebe742e897e1fd428b3eeed2196d3acea58eaf9c566ed10d545d2ed\",\"urls\":[\"bzz-raw://28d03f328e19e4099d5013de0649afaeaabac1a614e130767ab1cb4aca9775b6\",\"dweb:/ipfs/Qmb9iW7yNuYehB2NfhRMs9TakqbLVQhBhmGMkaDZ5g1Eb4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}", "bytecode": "0x60806040526001805463ffffffff60a01b1916600160a01b1790553480156200002757600080fd5b5060405162001f8338038062001f838339810160408190526200004a9162000195565b6200005e336001600160e01b036200008416565b600180546001600160a01b0319166001600160a01b039290921691909117905562000298565b6200009f816000620000d660201b62000f271790919060201c565b6040516001600160a01b038216907f1390a149489c82e9e2e89927bdb17ad1ea3f0cc314fce06c96369721d3afb8f090600090a250565b620000eb82826001600160e01b036200013916565b15620001145760405162461bcd60e51b81526004016200010b906200023f565b60405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620001645760405162461bcd60e51b81526004016200010b9062000251565b506001600160a01b03811660009081526020839052604090205460ff165b92915050565b805162000182816200027e565b600060208284031215620001a857600080fd5b6000620001b6848462000188565b949350505050565b6000620001cd601f8362000263565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b60006200020860228362000263565b7f526f6c65733a206163636f756e7420697320746865207a65726f206164647265815261737360f01b602082015260400192915050565b602080825281016200018281620001be565b602080825281016200018281620001f9565b90815260200190565b60006001600160a01b03821662000182565b62000289816200026c565b81146200029557600080fd5b50565b611cdb80620002a86000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063b81a9f3d11610066578063b81a9f3d14610116578063d4a39aac14610129578063dd57366a1461013c578063ef4172611461015c578063fd4ed6cb1461017c5761009e565b8063314db06b146100a35780635784f358146100ad57806357c50b2b146100c05780636739afca146100ee5780636b453c1f14610103575b600080fd5b6100ab61018f565b005b6100ab6100bb366004611322565b61019a565b6100d36100ce366004611304565b6101be565b6040516100e596959493929190611b15565b60405180910390f35b6100f66103a1565b6040516100e591906119ee565b6100ab6101113660046110f5565b6103b0565b6100ab61012436600461121a565b6103ce565b6100ab610137366004611139565b610610565b61014f61014a3660046110f5565b61085c565b6040516100e591906119d2565b61016f61016a36600461142c565b610874565b6040516100e591906119e0565b6100ab61018a3660046113b1565b6108a8565b610198336108ca565b565b6101b833438686868660405180602001604052806000815250610912565b50505050565b6002602081815260009283526040928390208054600180830154838601805488516101009482161594909402600019011696909604601f8101869004860283018601909752868252919563ffffffff8316956401000000009093046001600160a01b0316949192918301828280156102775780601f1061024c57610100808354040283529160200191610277565b820191906000526020600020905b81548152906001019060200180831161025a57829003601f168201915b5050505060038301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156103075780601f106102dc57610100808354040283529160200191610307565b820191906000526020600020905b8154815290600101906020018083116102ea57829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156103975780601f1061036c57610100808354040283529160200191610397565b820191906000526020600020905b81548152906001019060200180831161037a57829003601f168201915b5050505050905086565b6001546001600160a01b031681565b6103b93361085c565b6103c257600080fd5b6103cb81610b5a565b50565b73__XBRTypes______________________________63a0736940876040518060e00160405280600160009054906101000a90046001600160a01b03166001600160a01b03166359c8e6036040518163ffffffff1660e01b815260040160206040518083038186803b15801561044257600080fd5b505afa158015610456573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061047a919081019061144a565b81526001546040805163a787d61b60e01b815290516020938401936001600160a01b039093169263a787d61b9260048082019391829003018186803b1580156104c257600080fd5b505afa1580156104d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104fa919081019061111b565b6001600160a01b031681526020018a6001600160a01b03168152602001898152602001886001600160801b031916815260200187815260200186815250846040518463ffffffff1660e01b8152600401610556939291906119b2565b60206040518083038186803b15801561056e57600080fd5b505af4158015610582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105a691908101906112e6565b6105cb5760405162461bcd60e51b81526004016105c290611a8c565b60405180910390fd5b4385111580156105de5750600443038510155b6105fa5760405162461bcd60e51b81526004016105c290611a1c565b610608868686868686610ba2565b505050505050565b73__XBRTypes______________________________63efc9731c88604051806101000160405280600160009054906101000a90046001600160a01b03166001600160a01b03166359c8e6036040518163ffffffff1660e01b815260040160206040518083038186803b15801561068557600080fd5b505afa158015610699573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106bd919081019061144a565b81526001546040805163a787d61b60e01b815290516020938401936001600160a01b039093169263a787d61b9260048082019391829003018186803b15801561070557600080fd5b505afa158015610719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061073d919081019061111b565b6001600160a01b031681526020018b6001600160a01b031681526020018a8152602001896001600160801b0319168152602001886001600160801b031916815260200187815260200186815250846040518463ffffffff1660e01b81526004016107a99392919061197e565b60206040518083038186803b1580156107c157600080fd5b505af41580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107f991908101906112e6565b6108155760405162461bcd60e51b81526004016105c290611a6c565b4386111580156108285750600443038610155b6108445760405162461bcd60e51b81526004016105c290611a3c565b61085387878787878787610912565b50505050505050565b600061086e818363ffffffff610e9716565b92915050565b6003818154811061088157fe5b9060005260206000209060029182820401919006601002915054906101000a900460801b81565b6108c5334385858560405180602001604052806000815250610ba2565b505050565b6108db60008263ffffffff610edf16565b6040516001600160a01b038216907fa7b36d52bea726c3aa90d876d0e52a1089a347b3e3408a03f08eae32f96fdbb490600090a250565b60015460405163022b92c360e21b81526000916001600160a01b0316906308ae4b0c90610943908b90600401611970565b60006040518083038186803b15801561095b57600080fd5b505afa15801561096f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109979190810190611468565b509350600192506109a6915050565b8160058111156109b257fe5b146109cf5760405162461bcd60e51b81526004016105c290611a2c565b6001600160801b0319861660009081526002602052604090206001015464010000000090046001600160a01b0316610a195760405162461bcd60e51b81526004016105c290611a0c565b6001600160801b031986166000908152600260205260409020600101546001600160a01b038981166401000000009092041614610a685760405162461bcd60e51b81526004016105c290611aac565b6001600160801b03198087166000908152600260209081526040808320938916835260059093019052205415610ab05760405162461bcd60e51b81526004016105c290611a5c565b604080516080810182528881526020808201878152828401879052606083018690526001600160801b0319808b16600090815260028452858120918b16815260059091018352939093208251815592518051929392610b159260018501920190610f73565b5060408201518051610b31916002840191602090910190610f73565b5060608201518051610b4d916003840191602090910190610f73565b5050505050505050505050565b610b6b60008263ffffffff610f2716565b6040516001600160a01b038216907f1390a149489c82e9e2e89927bdb17ad1ea3f0cc314fce06c96369721d3afb8f090600090a250565b60015460405163022b92c360e21b81526000916001600160a01b0316906308ae4b0c90610bd3908a90600401611970565b60006040518083038186803b158015610beb57600080fd5b505afa158015610bff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c279190810190611468565b50935060019250610c36915050565b816005811115610c4257fe5b1480610c5957506002816005811115610c5757fe5b145b610c755760405162461bcd60e51b81526004016105c290611a2c565b6001600160801b0319851660009081526002602052604090206001015464010000000090046001600160a01b031615610cc05760405162461bcd60e51b81526004016105c290611a9c565b6040805160c08101825287815260018054600160a01b900463ffffffff90811660208085019182526001600160a01b038d8116868801908152606087018c8152608088018c905260a088018b90526001600160801b03198e16600090815260028086529990208851815594519685018054925163ffffffff199093169790961696909617640100000000600160c01b0319166401000000009190921602179092559151805193949293610d7a938501929190910190610f73565b5060808201518051610d96916003840191602090910190610f73565b5060a08201518051610db2916004840191602090910190610f73565b505060038054600180820183556000929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600282040180546001600160801b039284166010026101000a928302191660808a901c92909202919091179055805463ffffffff60a01b198116600160a01b9182900463ffffffff90811684018116830291909117928390556040516001600160801b03198a1694507f9ed7833d6b5e64c6ffaf3fa3b96b119205c7e408d70650f7aee67ccca5c5682893610e86938c93910416908c908a908a90611abc565b60405180910390a250505050505050565b60006001600160a01b038216610ebf5760405162461bcd60e51b81526004016105c290611a7c565b506001600160a01b03166000908152602091909152604090205460ff1690565b610ee98282610e97565b610f055760405162461bcd60e51b81526004016105c290611a4c565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b610f318282610e97565b15610f4e5760405162461bcd60e51b81526004016105c2906119fc565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610fb457805160ff1916838001178555610fe1565b82800160010185558215610fe1579182015b82811115610fe1578251825591602001919060010190610fc6565b50610fed929150610ff1565b5090565b61100b91905b80821115610fed5760008155600101610ff7565b90565b803561086e81611c5c565b805161086e81611c5c565b805161086e81611c70565b803561086e81611c79565b600082601f83011261104b57600080fd5b815161105e61105982611ba9565b611b83565b9150808252602083016020830185838301111561107a57600080fd5b611085838284611c26565b50505092915050565b600082601f83011261109f57600080fd5b81356110ad61105982611ba9565b915080825260208301602083018583830111156110c957600080fd5b611085838284611c1a565b805161086e81611c82565b803561086e81611c8f565b805161086e81611c8f565b60006020828403121561110757600080fd5b6000611113848461100e565b949350505050565b60006020828403121561112d57600080fd5b60006111138484611019565b600080600080600080600060e0888a03121561115457600080fd5b60006111608a8a61100e565b97505060206111718a828b016110df565b96505060406111828a828b0161102f565b95505060606111938a828b0161102f565b94505060808801356001600160401b038111156111af57600080fd5b6111bb8a828b0161108e565b93505060a08801356001600160401b038111156111d757600080fd5b6111e38a828b0161108e565b92505060c08801356001600160401b038111156111ff57600080fd5b61120b8a828b0161108e565b91505092959891949750929550565b60008060008060008060c0878903121561123357600080fd5b600061123f898961100e565b965050602061125089828a016110df565b955050604061126189828a0161102f565b94505060608701356001600160401b0381111561127d57600080fd5b61128989828a0161108e565b93505060808701356001600160401b038111156112a557600080fd5b6112b189828a0161108e565b92505060a08701356001600160401b038111156112cd57600080fd5b6112d989828a0161108e565b9150509295509295509295565b6000602082840312156112f857600080fd5b60006111138484611024565b60006020828403121561131657600080fd5b6000611113848461102f565b6000806000806080858703121561133857600080fd5b6000611344878761102f565b94505060206113558782880161102f565b93505060408501356001600160401b0381111561137157600080fd5b61137d8782880161108e565b92505060608501356001600160401b0381111561139957600080fd5b6113a58782880161108e565b91505092959194509250565b6000806000606084860312156113c657600080fd5b60006113d2868661102f565b93505060208401356001600160401b038111156113ee57600080fd5b6113fa8682870161108e565b92505060408401356001600160401b0381111561141657600080fd5b6114228682870161108e565b9150509250925092565b60006020828403121561143e57600080fd5b600061111384846110df565b60006020828403121561145c57600080fd5b600061111384846110ea565b600080600080600060a0868803121561148057600080fd5b600061148c88886110ea565b95505060208601516001600160401b038111156114a857600080fd5b6114b48882890161103a565b94505060408601516001600160401b038111156114d057600080fd5b6114dc8882890161103a565b93505060606114ed888289016110d4565b92505060808601516001600160401b0381111561150957600080fd5b6115158882890161103a565b9150509295509295909350565b61152b81611bdd565b82525050565b61152b81611be8565b61152b81611bed565b600061154e82611bd0565b6115588185611bd4565b9350611568818560208601611c26565b61157181611c52565b9093019392505050565b61152b81611c0f565b6000611591601f83611bd4565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b60006115ca600f83611bd4565b6e4e4f5f535543485f434154414c4f4760881b815260200192915050565b60006115f5602383611bd4565b7f494e56414c49445f434154414c4f475f4352454154455f424c4f434b5f4e554d8152622122a960e91b602082015260400192915050565b600061163a601383611bd4565b7229a2a72222a92fa727aa2fa0afa6a2a6a122a960691b815260200192915050565b6000611669602083611bd4565b7f494e56414c49445f4150495f5055424c4953485f424c4f434b5f4e554d424552815260200192915050565b60006116a2602183611bd4565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c8152606560f81b602082015260400192915050565b60006116e5601283611bd4565b714150495f414c52454144595f45584953545360701b815260200192915050565b6000611713601d83611bd4565b7f494e56414c49445f4150495f5055424c4953485f5349474e4154555245000000815260200192915050565b600061174c602283611bd4565b7f526f6c65733a206163636f756e7420697320746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000611790602083611bd4565b7f494e56414c49445f434154414c4f475f4352454154455f5349474e4154555245815260200192915050565b60006117c9601683611bd4565b75434154414c4f475f414c52454144595f45584953545360501b815260200192915050565b60006117fb601383611bd4565b7229a2a72222a92fa4a9afa727aa2fa7aba722a960691b815260200192915050565b8051600090610100840190611832858261195e565b5060208301516118456020860182611522565b5060408301516118586040860182611522565b50606083015161186b606086018261195e565b50608083015161187e608086018261153a565b5060a083015161189160a086018261153a565b5060c083015184820360c08601526118a98282611543565b91505060e083015184820360e08601526118c38282611543565b95945050505050565b805160009060e08401906118e0858261195e565b5060208301516118f36020860182611522565b5060408301516119066040860182611522565b506060830151611919606086018261195e565b50608083015161192c608086018261153a565b5060a083015184820360a08601526119448282611543565b91505060c083015184820360c08601526118c38282611543565b61152b8161100b565b61152b81611c06565b6020810161086e8284611522565b6060810161198c8286611522565b818103602083015261199e818561181d565b905081810360408301526118c38184611543565b606081016119c08286611522565b818103602083015261199e81856118cc565b6020810161086e8284611531565b6020810161086e828461153a565b6020810161086e828461157b565b6020808252810161086e81611584565b6020808252810161086e816115bd565b6020808252810161086e816115e8565b6020808252810161086e8161162d565b6020808252810161086e8161165c565b6020808252810161086e81611695565b6020808252810161086e816116d8565b6020808252810161086e81611706565b6020808252810161086e8161173f565b6020808252810161086e81611783565b6020808252810161086e816117bc565b6020808252810161086e816117ee565b60a08101611aca828861195e565b611ad76020830187611967565b611ae46040830186611522565b8181036060830152611af68185611543565b90508181036080830152611b0a8184611543565b979650505050505050565b60c08101611b23828961195e565b611b306020830188611967565b611b3d6040830187611522565b8181036060830152611b4f8186611543565b90508181036080830152611b638185611543565b905081810360a0830152611b778184611543565b98975050505050505050565b6040518181016001600160401b0381118282101715611ba157600080fd5b604052919050565b60006001600160401b03821115611bbf57600080fd5b506020601f91909101601f19160190565b5190565b90815260200190565b600061086e82611bfa565b151590565b6001600160801b03191690565b6001600160a01b031690565b63ffffffff1690565b600061086e82611bdd565b82818337506000910152565b60005b83811015611c41578181015183820152602001611c29565b838111156101b85750506000910152565b601f01601f191690565b611c6581611bdd565b81146103cb57600080fd5b611c6581611be8565b611c6581611bed565b600681106103cb57600080fd5b611c658161100b56fea365627a7a72315820e02740a027cf6649c91ecfb0ec3b94bab5d915464c85a2d078cbd3974c9822236c6578706572696d656e74616cf564736f6c63430005100040", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c8063b81a9f3d11610066578063b81a9f3d14610116578063d4a39aac14610129578063dd57366a1461013c578063ef4172611461015c578063fd4ed6cb1461017c5761009e565b8063314db06b146100a35780635784f358146100ad57806357c50b2b146100c05780636739afca146100ee5780636b453c1f14610103575b600080fd5b6100ab61018f565b005b6100ab6100bb366004611322565b61019a565b6100d36100ce366004611304565b6101be565b6040516100e596959493929190611b15565b60405180910390f35b6100f66103a1565b6040516100e591906119ee565b6100ab6101113660046110f5565b6103b0565b6100ab61012436600461121a565b6103ce565b6100ab610137366004611139565b610610565b61014f61014a3660046110f5565b61085c565b6040516100e591906119d2565b61016f61016a36600461142c565b610874565b6040516100e591906119e0565b6100ab61018a3660046113b1565b6108a8565b610198336108ca565b565b6101b833438686868660405180602001604052806000815250610912565b50505050565b6002602081815260009283526040928390208054600180830154838601805488516101009482161594909402600019011696909604601f8101869004860283018601909752868252919563ffffffff8316956401000000009093046001600160a01b0316949192918301828280156102775780601f1061024c57610100808354040283529160200191610277565b820191906000526020600020905b81548152906001019060200180831161025a57829003601f168201915b5050505060038301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156103075780601f106102dc57610100808354040283529160200191610307565b820191906000526020600020905b8154815290600101906020018083116102ea57829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156103975780601f1061036c57610100808354040283529160200191610397565b820191906000526020600020905b81548152906001019060200180831161037a57829003601f168201915b5050505050905086565b6001546001600160a01b031681565b6103b93361085c565b6103c257600080fd5b6103cb81610b5a565b50565b73__XBRTypes______________________________63a0736940876040518060e00160405280600160009054906101000a90046001600160a01b03166001600160a01b03166359c8e6036040518163ffffffff1660e01b815260040160206040518083038186803b15801561044257600080fd5b505afa158015610456573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061047a919081019061144a565b81526001546040805163a787d61b60e01b815290516020938401936001600160a01b039093169263a787d61b9260048082019391829003018186803b1580156104c257600080fd5b505afa1580156104d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104fa919081019061111b565b6001600160a01b031681526020018a6001600160a01b03168152602001898152602001886001600160801b031916815260200187815260200186815250846040518463ffffffff1660e01b8152600401610556939291906119b2565b60206040518083038186803b15801561056e57600080fd5b505af4158015610582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105a691908101906112e6565b6105cb5760405162461bcd60e51b81526004016105c290611a8c565b60405180910390fd5b4385111580156105de5750600443038510155b6105fa5760405162461bcd60e51b81526004016105c290611a1c565b610608868686868686610ba2565b505050505050565b73__XBRTypes______________________________63efc9731c88604051806101000160405280600160009054906101000a90046001600160a01b03166001600160a01b03166359c8e6036040518163ffffffff1660e01b815260040160206040518083038186803b15801561068557600080fd5b505afa158015610699573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106bd919081019061144a565b81526001546040805163a787d61b60e01b815290516020938401936001600160a01b039093169263a787d61b9260048082019391829003018186803b15801561070557600080fd5b505afa158015610719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061073d919081019061111b565b6001600160a01b031681526020018b6001600160a01b031681526020018a8152602001896001600160801b0319168152602001886001600160801b031916815260200187815260200186815250846040518463ffffffff1660e01b81526004016107a99392919061197e565b60206040518083038186803b1580156107c157600080fd5b505af41580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107f991908101906112e6565b6108155760405162461bcd60e51b81526004016105c290611a6c565b4386111580156108285750600443038610155b6108445760405162461bcd60e51b81526004016105c290611a3c565b61085387878787878787610912565b50505050505050565b600061086e818363ffffffff610e9716565b92915050565b6003818154811061088157fe5b9060005260206000209060029182820401919006601002915054906101000a900460801b81565b6108c5334385858560405180602001604052806000815250610ba2565b505050565b6108db60008263ffffffff610edf16565b6040516001600160a01b038216907fa7b36d52bea726c3aa90d876d0e52a1089a347b3e3408a03f08eae32f96fdbb490600090a250565b60015460405163022b92c360e21b81526000916001600160a01b0316906308ae4b0c90610943908b90600401611970565b60006040518083038186803b15801561095b57600080fd5b505afa15801561096f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109979190810190611468565b509350600192506109a6915050565b8160058111156109b257fe5b146109cf5760405162461bcd60e51b81526004016105c290611a2c565b6001600160801b0319861660009081526002602052604090206001015464010000000090046001600160a01b0316610a195760405162461bcd60e51b81526004016105c290611a0c565b6001600160801b031986166000908152600260205260409020600101546001600160a01b038981166401000000009092041614610a685760405162461bcd60e51b81526004016105c290611aac565b6001600160801b03198087166000908152600260209081526040808320938916835260059093019052205415610ab05760405162461bcd60e51b81526004016105c290611a5c565b604080516080810182528881526020808201878152828401879052606083018690526001600160801b0319808b16600090815260028452858120918b16815260059091018352939093208251815592518051929392610b159260018501920190610f73565b5060408201518051610b31916002840191602090910190610f73565b5060608201518051610b4d916003840191602090910190610f73565b5050505050505050505050565b610b6b60008263ffffffff610f2716565b6040516001600160a01b038216907f1390a149489c82e9e2e89927bdb17ad1ea3f0cc314fce06c96369721d3afb8f090600090a250565b60015460405163022b92c360e21b81526000916001600160a01b0316906308ae4b0c90610bd3908a90600401611970565b60006040518083038186803b158015610beb57600080fd5b505afa158015610bff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c279190810190611468565b50935060019250610c36915050565b816005811115610c4257fe5b1480610c5957506002816005811115610c5757fe5b145b610c755760405162461bcd60e51b81526004016105c290611a2c565b6001600160801b0319851660009081526002602052604090206001015464010000000090046001600160a01b031615610cc05760405162461bcd60e51b81526004016105c290611a9c565b6040805160c08101825287815260018054600160a01b900463ffffffff90811660208085019182526001600160a01b038d8116868801908152606087018c8152608088018c905260a088018b90526001600160801b03198e16600090815260028086529990208851815594519685018054925163ffffffff199093169790961696909617640100000000600160c01b0319166401000000009190921602179092559151805193949293610d7a938501929190910190610f73565b5060808201518051610d96916003840191602090910190610f73565b5060a08201518051610db2916004840191602090910190610f73565b505060038054600180820183556000929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600282040180546001600160801b039284166010026101000a928302191660808a901c92909202919091179055805463ffffffff60a01b198116600160a01b9182900463ffffffff90811684018116830291909117928390556040516001600160801b03198a1694507f9ed7833d6b5e64c6ffaf3fa3b96b119205c7e408d70650f7aee67ccca5c5682893610e86938c93910416908c908a908a90611abc565b60405180910390a250505050505050565b60006001600160a01b038216610ebf5760405162461bcd60e51b81526004016105c290611a7c565b506001600160a01b03166000908152602091909152604090205460ff1690565b610ee98282610e97565b610f055760405162461bcd60e51b81526004016105c290611a4c565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b610f318282610e97565b15610f4e5760405162461bcd60e51b81526004016105c2906119fc565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610fb457805160ff1916838001178555610fe1565b82800160010185558215610fe1579182015b82811115610fe1578251825591602001919060010190610fc6565b50610fed929150610ff1565b5090565b61100b91905b80821115610fed5760008155600101610ff7565b90565b803561086e81611c5c565b805161086e81611c5c565b805161086e81611c70565b803561086e81611c79565b600082601f83011261104b57600080fd5b815161105e61105982611ba9565b611b83565b9150808252602083016020830185838301111561107a57600080fd5b611085838284611c26565b50505092915050565b600082601f83011261109f57600080fd5b81356110ad61105982611ba9565b915080825260208301602083018583830111156110c957600080fd5b611085838284611c1a565b805161086e81611c82565b803561086e81611c8f565b805161086e81611c8f565b60006020828403121561110757600080fd5b6000611113848461100e565b949350505050565b60006020828403121561112d57600080fd5b60006111138484611019565b600080600080600080600060e0888a03121561115457600080fd5b60006111608a8a61100e565b97505060206111718a828b016110df565b96505060406111828a828b0161102f565b95505060606111938a828b0161102f565b94505060808801356001600160401b038111156111af57600080fd5b6111bb8a828b0161108e565b93505060a08801356001600160401b038111156111d757600080fd5b6111e38a828b0161108e565b92505060c08801356001600160401b038111156111ff57600080fd5b61120b8a828b0161108e565b91505092959891949750929550565b60008060008060008060c0878903121561123357600080fd5b600061123f898961100e565b965050602061125089828a016110df565b955050604061126189828a0161102f565b94505060608701356001600160401b0381111561127d57600080fd5b61128989828a0161108e565b93505060808701356001600160401b038111156112a557600080fd5b6112b189828a0161108e565b92505060a08701356001600160401b038111156112cd57600080fd5b6112d989828a0161108e565b9150509295509295509295565b6000602082840312156112f857600080fd5b60006111138484611024565b60006020828403121561131657600080fd5b6000611113848461102f565b6000806000806080858703121561133857600080fd5b6000611344878761102f565b94505060206113558782880161102f565b93505060408501356001600160401b0381111561137157600080fd5b61137d8782880161108e565b92505060608501356001600160401b0381111561139957600080fd5b6113a58782880161108e565b91505092959194509250565b6000806000606084860312156113c657600080fd5b60006113d2868661102f565b93505060208401356001600160401b038111156113ee57600080fd5b6113fa8682870161108e565b92505060408401356001600160401b0381111561141657600080fd5b6114228682870161108e565b9150509250925092565b60006020828403121561143e57600080fd5b600061111384846110df565b60006020828403121561145c57600080fd5b600061111384846110ea565b600080600080600060a0868803121561148057600080fd5b600061148c88886110ea565b95505060208601516001600160401b038111156114a857600080fd5b6114b48882890161103a565b94505060408601516001600160401b038111156114d057600080fd5b6114dc8882890161103a565b93505060606114ed888289016110d4565b92505060808601516001600160401b0381111561150957600080fd5b6115158882890161103a565b9150509295509295909350565b61152b81611bdd565b82525050565b61152b81611be8565b61152b81611bed565b600061154e82611bd0565b6115588185611bd4565b9350611568818560208601611c26565b61157181611c52565b9093019392505050565b61152b81611c0f565b6000611591601f83611bd4565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b60006115ca600f83611bd4565b6e4e4f5f535543485f434154414c4f4760881b815260200192915050565b60006115f5602383611bd4565b7f494e56414c49445f434154414c4f475f4352454154455f424c4f434b5f4e554d8152622122a960e91b602082015260400192915050565b600061163a601383611bd4565b7229a2a72222a92fa727aa2fa0afa6a2a6a122a960691b815260200192915050565b6000611669602083611bd4565b7f494e56414c49445f4150495f5055424c4953485f424c4f434b5f4e554d424552815260200192915050565b60006116a2602183611bd4565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c8152606560f81b602082015260400192915050565b60006116e5601283611bd4565b714150495f414c52454144595f45584953545360701b815260200192915050565b6000611713601d83611bd4565b7f494e56414c49445f4150495f5055424c4953485f5349474e4154555245000000815260200192915050565b600061174c602283611bd4565b7f526f6c65733a206163636f756e7420697320746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000611790602083611bd4565b7f494e56414c49445f434154414c4f475f4352454154455f5349474e4154555245815260200192915050565b60006117c9601683611bd4565b75434154414c4f475f414c52454144595f45584953545360501b815260200192915050565b60006117fb601383611bd4565b7229a2a72222a92fa4a9afa727aa2fa7aba722a960691b815260200192915050565b8051600090610100840190611832858261195e565b5060208301516118456020860182611522565b5060408301516118586040860182611522565b50606083015161186b606086018261195e565b50608083015161187e608086018261153a565b5060a083015161189160a086018261153a565b5060c083015184820360c08601526118a98282611543565b91505060e083015184820360e08601526118c38282611543565b95945050505050565b805160009060e08401906118e0858261195e565b5060208301516118f36020860182611522565b5060408301516119066040860182611522565b506060830151611919606086018261195e565b50608083015161192c608086018261153a565b5060a083015184820360a08601526119448282611543565b91505060c083015184820360c08601526118c38282611543565b61152b8161100b565b61152b81611c06565b6020810161086e8284611522565b6060810161198c8286611522565b818103602083015261199e818561181d565b905081810360408301526118c38184611543565b606081016119c08286611522565b818103602083015261199e81856118cc565b6020810161086e8284611531565b6020810161086e828461153a565b6020810161086e828461157b565b6020808252810161086e81611584565b6020808252810161086e816115bd565b6020808252810161086e816115e8565b6020808252810161086e8161162d565b6020808252810161086e8161165c565b6020808252810161086e81611695565b6020808252810161086e816116d8565b6020808252810161086e81611706565b6020808252810161086e8161173f565b6020808252810161086e81611783565b6020808252810161086e816117bc565b6020808252810161086e816117ee565b60a08101611aca828861195e565b611ad76020830187611967565b611ae46040830186611522565b8181036060830152611af68185611543565b90508181036080830152611b0a8184611543565b979650505050505050565b60c08101611b23828961195e565b611b306020830188611967565b611b3d6040830187611522565b8181036060830152611b4f8186611543565b90508181036080830152611b638185611543565b905081810360a0830152611b778184611543565b98975050505050505050565b6040518181016001600160401b0381118282101715611ba157600080fd5b604052919050565b60006001600160401b03821115611bbf57600080fd5b506020601f91909101601f19160190565b5190565b90815260200190565b600061086e82611bfa565b151590565b6001600160801b03191690565b6001600160a01b031690565b63ffffffff1690565b600061086e82611bdd565b82818337506000910152565b60005b83811015611c41578181015183820152602001611c29565b838111156101b85750506000910152565b601f01601f191690565b611c6581611bdd565b81146103cb57600080fd5b611c6581611be8565b611c6581611bed565b600681106103cb57600080fd5b611c658161100b56fea365627a7a72315820e02740a027cf6649c91ecfb0ec3b94bab5d915464c85a2d078cbd3974c9822236c6578706572696d656e74616cf564736f6c63430005100040", "sourceMap": "1127:7256:1:-;;;1918:1;1890:29;;-1:-1:-1;;;;1890:29:1;-1:-1:-1;;;1890:29:1;;;2291:89;5:2:-1;;;;30:1;27;20:12;5:2;2291:89:1;;;;;;;;;;;;;;;;;;;;;1843:26:3;1858:10;-1:-1:-1;;;;;1843:14:3;:26;:::i;:::-;2341:7:1;:32;;-1:-1:-1;;;;;;2341:32:1;-1:-1:-1;;;;;2341:32:1;;;;;;;;;;1127:7256;;2784:131:3;2845:24;2861:7;2845:11;:15;;;;;;:24;;;;:::i;:::-;2884;;-1:-1:-1;;;;;2884:24:3;;;;;;;;2784:131;:::o;260:175:11:-;337:18;341:4;347:7;-1:-1:-1;;;;;337:3:11;:18;:::i;:::-;336:19;328:63;;;;-1:-1:-1;;;328:63:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:11;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:11;424:4;401:27;;;260:175::o;779:200::-;851:4;-1:-1:-1;;;;;875:21:11;;867:68;;;;-1:-1:-1;;;867:68:11;;;;;;;;;-1:-1:-1;;;;;;952:20:11;;:11;:20;;;;;;;;;;;;;779:200;;;;;:::o;5:134:-1:-;83:13;;101:33;83:13;101:33;;146:263;;261:2;249:9;240:7;236:23;232:32;229:2;;;277:1;274;267:12;229:2;312:1;329:64;385:7;365:9;329:64;;;319:74;223:186;-1:-1;;;;223:186;417:331;;577:67;641:2;636:3;577:67;;;677:33;657:54;;739:2;730:12;;563:185;-1:-1;;563:185;757:371;;917:67;981:2;976:3;917:67;;;1017:34;997:55;;-1:-1;;;1081:2;1072:12;;1065:26;1119:2;1110:12;;903:225;-1:-1;;903:225;1136:407;1327:2;1341:47;;;1312:18;;1402:131;1312:18;1402:131;;1550:407;1741:2;1755:47;;;1726:18;;1816:131;1726:18;1816:131;;1965:163;2068:19;;;2117:4;2108:14;;2061:67;2136:91;;-1:-1;;;;;2296:54;;2198:24;2279:76;2362:117;2431:24;2449:5;2431:24;;;2424:5;2421:35;2411:2;;2470:1;2467;2460:12;2411:2;2405:74;;;1127:7256:1;;;;;;", "deployedSourceMap": "1127:7256:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1127:7256:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2694:84:3;;;:::i;:::-;;5813:195:1;;;;;;;;;:::i;1977:52::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1736:25;;;:::i;:::-;;;;;;;;2533:103:3;;;;;;;;;:::i;3763:687:1:-;;;;;;;;;:::i;6719:702::-;;;;;;;;;:::i;2268:115:3:-;;;;;;;;;:::i;:::-;;;;;;;;2081:27:1;;;;;;;;;:::i;:::-;;;;;;;;2772:177;;;;;;;;;:::i;2694:84:3:-;2742:29;2760:10;2742:17;:29::i;:::-;2694:84::o;5813:195:1:-;5928:73;5940:10;5952:12;5966:9;5977:5;5984:6;5992:4;5928:73;;;;;;;;;;;;:11;:73::i;:::-;5813:195;;;;:::o;1977:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1977:52:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1977:52:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1977:52:1;;;;;;;;;;;;;;;;-1:-1:-1;;1977:52:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1977:52:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1977:52:1;;;;;;;;;;;;;;;;-1:-1:-1;;1977:52:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1977:52:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1736:25::-;;;-1:-1:-1;;;;;1736:25:1;;:::o;2533:103:3:-;2020:24;2033:10;2020:12;:24::i;:::-;2012:33;;;;;;2606:23;2621:7;2606:14;:23::i;:::-;2533:103;:::o;3763:687:1:-;3941:8;:15;3957:6;3965:136;;;;;;;;3994:7;;;;;;;;;-1:-1:-1;;;;;3994:7:1;-1:-1:-1;;;;;3994:22:1;;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3994:24:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3994:24:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3994:24:1;;;;;;;;;3965:136;;4020:7;;:27;;;-1:-1:-1;;;4020:27:1;;;;3965:136;;;;;-1:-1:-1;;;;;4020:7:1;;;;:25;;:27;;;;;;;;;;;:7;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;4020:27:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4020:27:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4020:27:1;;;;;;;;;-1:-1:-1;;;;;3965:136:1;;;;;4061:6;-1:-1:-1;;;;;3965:136:1;;;;;4069:7;3965:136;;;;4078:9;-1:-1:-1;;;;;3965:136:1;;;;;;4089:5;3965:136;;;;4096:4;3965:136;;;4103:9;3941:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3941:172:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3941:172:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3941:172:1;;;;;;;;;3933:229;;;;-1:-1:-1;;;3933:229:1;;;;;;;;;;;;;;;;;4281:12;4270:7;:23;;:56;;;;;4324:1;4309:12;:16;4297:7;:29;;4270:56;4262:104;;;;-1:-1:-1;;;4262:104:1;;;;;;;;;4377:66;4392:6;4400:7;4409:9;4420:5;4427:4;4433:9;4377:14;:66::i;:::-;3763:687;;;;;;:::o;6719:702::-;6912:8;:15;6928:6;6936:143;;;;;;;;6962:7;;;;;;;;;-1:-1:-1;;;;;6962:7:1;-1:-1:-1;;;;;6962:22:1;;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6962:24:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6962:24:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6962:24:1;;;;;;;;;6936:143;;6988:7;;:27;;;-1:-1:-1;;;6988:27:1;;;;6936:143;;;;;-1:-1:-1;;;;;6988:7:1;;;;:25;;:27;;;;;;;;;;;:7;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;6988:27:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6988:27:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6988:27:1;;;;;;;;;-1:-1:-1;;;;;6936:143:1;;;;;7029:6;-1:-1:-1;;;;;6936:143:1;;;;;7037:9;6936:143;;;;7048:9;-1:-1:-1;;;;;6936:143:1;;;;;;7059:5;-1:-1:-1;;;;;6936:143:1;;;;;;7066:6;6936:143;;;;7074:4;6936:143;;;7081:9;6912:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6912:179:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6912:179:1;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6912:179:1;;;;;;;;;6904:221;;;;-1:-1:-1;;;6904:221:1;;;;;;;;;7246:12;7233:9;:25;;:60;;;;;7291:1;7276:12;:16;7262:9;:31;;7233:60;7225:105;;;;-1:-1:-1;;;7225:105:1;;;;;;;;;7341:73;7353:6;7361:9;7372;7383:5;7390:6;7398:4;7404:9;7341:11;:73::i;:::-;6719:702;;;;;;;:::o;2268:115:3:-;2329:4;2352:24;2329:4;2368:7;2352:24;:15;:24;:::i;:::-;2345:31;2268:115;-1:-1:-1;;2268:115:3:o;2081:27:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2772:177::-;2874:68;2889:10;2901:12;2915:9;2926:5;2933:4;2874:68;;;;;;;;;;;;:14;:68::i;:::-;2772:177;;;:::o;2921:139:3:-;2985:27;:11;3004:7;2985:27;:18;:27;:::i;:::-;3027:26;;-1:-1:-1;;;;;3027:26:3;;;;;;;;2921:139;:::o;7427:954:1:-;7657:7;;:23;;-1:-1:-1;;;7657:23:1;;7618:33;;-1:-1:-1;;;;;7657:7:1;;:15;;:23;;7673:6;;7657:23;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7657:23:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7657:23:1;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7657:23:1;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;7657:23:1;;;;;;;;;-1:-1:-1;7611:69:1;-1:-1:-1;7774:27:1;;-1:-1:-1;7758:43:1;;-1:-1:-1;;7758:43:1;;:12;:43;;;;;;;;;7750:75;;;;-1:-1:-1;;;7750:75:1;;;;;;;;;-1:-1:-1;;;;;;7892:19:1;;7929:1;7892:19;;;:8;:19;;;;;:25;;;;;;-1:-1:-1;;;;;7892:25:1;7884:67;;;;-1:-1:-1;;;7884:67:1;;;;;;;;;-1:-1:-1;;;;;;8032:19:1;;;;;;:8;:19;;;;;:25;;;-1:-1:-1;;;;;8032:35:1;;;:25;;;;;:35;8024:67;;;;-1:-1:-1;;;8024:67:1;;;;;;;;;-1:-1:-1;;;;;;8171:19:1;;;;;;;:8;:19;;;;;;;;:31;;;;;:24;;;;:31;;;:41;:46;8163:77;;;;-1:-1:-1;;;8163:77:1;;;;;;;;;8326:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8292:19:1;;;-1:-1:-1;8292:19:1;;;:8;:19;;;;;:31;;;;;:24;;;;:31;;;;;;:82;;;;;;;;8326:48;;8292:31;:82;;;;;;;;;:::i;:::-;-1:-1:-1;8292:82:1;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8292:82:1;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;7427:954:1:o;2784:131:3:-;2845:24;:11;2861:7;2845:24;:15;:24;:::i;:::-;2884;;-1:-1:-1;;;;;2884:24:3;;;;;;;;2784:131;:::o;4456:1024:1:-;4671:7;;:23;;-1:-1:-1;;;4671:23:1;;4632:33;;-1:-1:-1;;;;;4671:7:1;;:15;;:23;;4687:6;;4671:23;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4671:23:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4671:23:1;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4671:23:1;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;4671:23:1;;;;;;;;;-1:-1:-1;4625:69:1;-1:-1:-1;4786:27:1;;-1:-1:-1;4770:43:1;;-1:-1:-1;;4770:43:1;;:12;:43;;;;;;;;;:108;;;-1:-1:-1;4849:29:1;4833:12;:45;;;;;;;;;4770:108;4762:140;;;;-1:-1:-1;;;4762:140:1;;;;;;;;;-1:-1:-1;;;;;;4960:19:1;;4997:1;4960:19;;;:8;:19;;;;;:25;;;;;;-1:-1:-1;;;;;4960:25:1;:39;4952:74;;;;-1:-1:-1;;;4952:74:1;;;;;;;;;5095:69;;;;;;;;;;;5121:10;;;-1:-1:-1;;;5121:10:1;;;;;;5095:69;;;;;;;-1:-1:-1;;;;;5095:69:1;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5073:19:1;;-1:-1:-1;5073:19:1;;;:8;:19;;;;;;:91;;;;;;;;;;;;;-1:-1:-1;;5073:91:1;;;;;;;;;;;-1:-1:-1;;;;;;5073:91:1;;;;;;;;;;;;;;;5095:69;;5073:19;;:91;;;;;;;;;;;:::i;:::-;-1:-1:-1;5073:91:1;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5073:91:1;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;5227:10:1;27::-1;;39:1;23:18;;;45:23;;-1:-1;5227:26:1;;;;;;;;;;;-1:-1:-1;;;;;5227:26:1;;;;;;;;;;;;;;;;;;;;;;;;;;5332:10;;-1:-1:-1;;;;5319:27:1;;-1:-1:-1;;;5332:10:1;;;;;;;;:14;;5319:27;;;;;;;;;;;;5406:67;;-1:-1:-1;;;;;;5406:67:1;;;-1:-1:-1;5406:67:1;;;;5432:7;;5441:10;;;;5453:6;;5461:5;;5468:4;;5406:67;;;;;;;;;;4456:1024;;;;;;;:::o;779:200:11:-;851:4;-1:-1:-1;;;;;875:21:11;;867:68;;;;-1:-1:-1;;;867:68:11;;;;;;;;;-1:-1:-1;;;;;;952:20:11;:11;:20;;;;;;;;;;;;;;;779:200::o;510:180::-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;581:64:11;;;;;;;;;-1:-1:-1;;;;;655:20:11;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:11;;;510:180::o;260:175::-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;-1:-1:-1;;;328:63:11;;;;;;;;;-1:-1:-1;;;;;401:20:11;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:11;424:4;401:27;;;260:175::o;1127:7256:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1127:7256:1;;;-1:-1:-1;1127:7256:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:134;220:13;;238:33;220:13;238:33;;283:128;358:13;;376:30;358:13;376:30;;418:130;485:20;;510:33;485:20;510:33;;556:434;;664:3;657:4;649:6;645:17;641:27;631:2;;682:1;679;672:12;631:2;712:6;706:13;734:60;749:44;786:6;749:44;;;734:60;;;725:69;;814:6;807:5;800:21;850:4;842:6;838:17;883:4;876:5;872:16;918:3;909:6;904:3;900:16;897:25;894:2;;;935:1;932;925:12;894:2;945:39;977:6;972:3;967;945:39;;;624:366;;;;;;;;999:440;;1100:3;1093:4;1085:6;1081:17;1077:27;1067:2;;1118:1;1115;1108:12;1067:2;1155:6;1142:20;1177:64;1192:48;1233:6;1192:48;;1177:64;1168:73;;1261:6;1254:5;1247:21;1297:4;1289:6;1285:17;1330:4;1323:5;1319:16;1365:3;1356:6;1351:3;1347:16;1344:25;1341:2;;;1382:1;1379;1372:12;1341:2;1392:41;1426:6;1421:3;1416;1392:41;;1447:166;1541:13;;1559:49;1541:13;1559:49;;2516:130;2583:20;;2608:33;2583:20;2608:33;;2653:134;2731:13;;2749:33;2731:13;2749:33;;2794:241;;2898:2;2886:9;2877:7;2873:23;2869:32;2866:2;;;2914:1;2911;2904:12;2866:2;2949:1;2966:53;3011:7;2991:9;2966:53;;;2956:63;2860:175;-1:-1;;;;2860:175;3042:263;;3157:2;3145:9;3136:7;3132:23;3128:32;3125:2;;;3173:1;3170;3163:12;3125:2;3208:1;3225:64;3281:7;3261:9;3225:64;;3312:1311;;;;;;;;3547:3;3535:9;3526:7;3522:23;3518:33;3515:2;;;3564:1;3561;3554:12;3515:2;3599:1;3616:53;3661:7;3641:9;3616:53;;;3606:63;;3578:97;3706:2;3724:53;3769:7;3760:6;3749:9;3745:22;3724:53;;;3714:63;;3685:98;3814:2;3832:53;3877:7;3868:6;3857:9;3853:22;3832:53;;;3822:63;;3793:98;3922:2;3940:53;3985:7;3976:6;3965:9;3961:22;3940:53;;;3930:63;;3901:98;4058:3;4047:9;4043:19;4030:33;-1:-1;;;;;4075:6;4072:30;4069:2;;;4115:1;4112;4105:12;4069:2;4135:63;4190:7;4181:6;4170:9;4166:22;4135:63;;;4125:73;;4009:195;4263:3;4252:9;4248:19;4235:33;-1:-1;;;;;4280:6;4277:30;4274:2;;;4320:1;4317;4310:12;4274:2;4340:63;4395:7;4386:6;4375:9;4371:22;4340:63;;;4330:73;;4214:195;4468:3;4457:9;4453:19;4440:33;-1:-1;;;;;4485:6;4482:30;4479:2;;;4525:1;4522;4515:12;4479:2;4545:62;4599:7;4590:6;4579:9;4575:22;4545:62;;;4535:72;;4419:194;3509:1114;;;;;;;;;;;4630:1185;;;;;;;4848:3;4836:9;4827:7;4823:23;4819:33;4816:2;;;4865:1;4862;4855:12;4816:2;4900:1;4917:53;4962:7;4942:9;4917:53;;;4907:63;;4879:97;5007:2;5025:53;5070:7;5061:6;5050:9;5046:22;5025:53;;;5015:63;;4986:98;5115:2;5133:53;5178:7;5169:6;5158:9;5154:22;5133:53;;;5123:63;;5094:98;5251:2;5240:9;5236:18;5223:32;-1:-1;;;;;5267:6;5264:30;5261:2;;;5307:1;5304;5297:12;5261:2;5327:63;5382:7;5373:6;5362:9;5358:22;5327:63;;;5317:73;;5202:194;5455:3;5444:9;5440:19;5427:33;-1:-1;;;;;5472:6;5469:30;5466:2;;;5512:1;5509;5502:12;5466:2;5532:63;5587:7;5578:6;5567:9;5563:22;5532:63;;;5522:73;;5406:195;5660:3;5649:9;5645:19;5632:33;-1:-1;;;;;5677:6;5674:30;5671:2;;;5717:1;5714;5707:12;5671:2;5737:62;5791:7;5782:6;5771:9;5767:22;5737:62;;;5727:72;;5611:194;4810:1005;;;;;;;;;5822:257;;5934:2;5922:9;5913:7;5909:23;5905:32;5902:2;;;5950:1;5947;5940:12;5902:2;5985:1;6002:61;6055:7;6035:9;6002:61;;6086:241;;6190:2;6178:9;6169:7;6165:23;6161:32;6158:2;;;6206:1;6203;6196:12;6158:2;6241:1;6258:53;6303:7;6283:9;6258:53;;6334:829;;;;;6509:3;6497:9;6488:7;6484:23;6480:33;6477:2;;;6526:1;6523;6516:12;6477:2;6561:1;6578:53;6623:7;6603:9;6578:53;;;6568:63;;6540:97;6668:2;6686:53;6731:7;6722:6;6711:9;6707:22;6686:53;;;6676:63;;6647:98;6804:2;6793:9;6789:18;6776:32;-1:-1;;;;;6820:6;6817:30;6814:2;;;6860:1;6857;6850:12;6814:2;6880:63;6935:7;6926:6;6915:9;6911:22;6880:63;;;6870:73;;6755:194;7008:2;6997:9;6993:18;6980:32;-1:-1;;;;;7024:6;7021:30;7018:2;;;7064:1;7061;7054:12;7018:2;7084:63;7139:7;7130:6;7119:9;7115:22;7084:63;;;7074:73;;6959:194;6471:692;;;;;;;;7170:703;;;;7328:2;7316:9;7307:7;7303:23;7299:32;7296:2;;;7344:1;7341;7334:12;7296:2;7379:1;7396:53;7441:7;7421:9;7396:53;;;7386:63;;7358:97;7514:2;7503:9;7499:18;7486:32;-1:-1;;;;;7530:6;7527:30;7524:2;;;7570:1;7567;7560:12;7524:2;7590:63;7645:7;7636:6;7625:9;7621:22;7590:63;;;7580:73;;7465:194;7718:2;7707:9;7703:18;7690:32;-1:-1;;;;;7734:6;7731:30;7728:2;;;7774:1;7771;7764:12;7728:2;7794:63;7849:7;7840:6;7829:9;7825:22;7794:63;;;7784:73;;7669:194;7290:583;;;;;;7880:241;;7984:2;7972:9;7963:7;7959:23;7955:32;7952:2;;;8000:1;7997;7990:12;7952:2;8035:1;8052:53;8097:7;8077:9;8052:53;;8128:263;;8243:2;8231:9;8222:7;8218:23;8214:32;8211:2;;;8259:1;8256;8249:12;8211:2;8294:1;8311:64;8367:7;8347:9;8311:64;;8398:1112;;;;;;8614:3;8602:9;8593:7;8589:23;8585:33;8582:2;;;8631:1;8628;8621:12;8582:2;8666:1;8683:64;8739:7;8719:9;8683:64;;;8673:74;;8645:108;8805:2;8794:9;8790:18;8784:25;-1:-1;;;;;8821:6;8818:30;8815:2;;;8861:1;8858;8851:12;8815:2;8881:70;8943:7;8934:6;8923:9;8919:22;8881:70;;;8871:80;;8763:194;9009:2;8998:9;8994:18;8988:25;-1:-1;;;;;9025:6;9022:30;9019:2;;;9065:1;9062;9055:12;9019:2;9085:70;9147:7;9138:6;9127:9;9123:22;9085:70;;;9075:80;;8967:194;9192:2;9210:80;9282:7;9273:6;9262:9;9258:22;9210:80;;;9200:90;;9171:125;9348:3;9337:9;9333:19;9327:26;-1:-1;;;;;9365:6;9362:30;9359:2;;;9405:1;9402;9395:12;9359:2;9425:69;9486:7;9477:6;9466:9;9462:22;9425:69;;;9415:79;;9306:194;8576:934;;;;;;;;;9517:113;9600:24;9618:5;9600:24;;;9595:3;9588:37;9582:48;;;9883:104;9960:21;9975:5;9960:21;;9994:113;10077:24;10095:5;10077:24;;10232:359;;10350:38;10382:5;10350:38;;;10400:78;10471:6;10466:3;10400:78;;;10393:85;;10483:52;10528:6;10523:3;10516:4;10509:5;10505:16;10483:52;;;10556:29;10578:6;10556:29;;;10547:39;;;;10330:261;-1:-1;;;10330:261;10940:164;11042:56;11092:5;11042:56;;12154:331;;12314:67;12378:2;12373:3;12314:67;;;12414:33;12394:54;;12476:2;12467:12;;12300:185;-1:-1;;12300:185;12494:315;;12654:67;12718:2;12713:3;12654:67;;;-1:-1;;;12734:38;;12800:2;12791:12;;12640:169;-1:-1;;12640:169;12818:372;;12978:67;13042:2;13037:3;12978:67;;;13078:34;13058:55;;-1:-1;;;13142:2;13133:12;;13126:27;13181:2;13172:12;;12964:226;-1:-1;;12964:226;13199:319;;13359:67;13423:2;13418:3;13359:67;;;-1:-1;;;13439:42;;13509:2;13500:12;;13345:173;-1:-1;;13345:173;13527:332;;13687:67;13751:2;13746:3;13687:67;;;13787:34;13767:55;;13850:2;13841:12;;13673:186;-1:-1;;13673:186;13868:370;;14028:67;14092:2;14087:3;14028:67;;;14128:34;14108:55;;-1:-1;;;14192:2;14183:12;;14176:25;14229:2;14220:12;;14014:224;-1:-1;;14014:224;14247:318;;14407:67;14471:2;14466:3;14407:67;;;-1:-1;;;14487:41;;14556:2;14547:12;;14393:172;-1:-1;;14393:172;14574:329;;14734:67;14798:2;14793:3;14734:67;;;14834:31;14814:52;;14894:2;14885:12;;14720:183;-1:-1;;14720:183;14912:371;;15072:67;15136:2;15131:3;15072:67;;;15172:34;15152:55;;-1:-1;;;15236:2;15227:12;;15220:26;15274:2;15265:12;;15058:225;-1:-1;;15058:225;15292:332;;15452:67;15516:2;15511:3;15452:67;;;15552:34;15532:55;;15615:2;15606:12;;15438:186;-1:-1;;15438:186;15633:322;;15793:67;15857:2;15852:3;15793:67;;;-1:-1;;;15873:45;;15946:2;15937:12;;15779:176;-1:-1;;15779:176;15964:319;;16124:67;16188:2;16183:3;16124:67;;;-1:-1;;;16204:42;;16274:2;16265:12;;16110:173;-1:-1;;16110:173;16366:1682;16610:23;;16366:1682;;16539:6;16530:16;;;16639:71;16534:3;16610:23;16639:71;;;16561:155;16802:4;16795:5;16791:16;16785:23;16814:71;16879:4;16874:3;16870:14;16856:12;16814:71;;;16726:165;16966:4;16959:5;16955:16;16949:23;16978:71;17043:4;17038:3;17034:14;17020:12;16978:71;;;16901:154;17133:4;17126:5;17122:16;17116:23;17145:71;17210:4;17205:3;17201:14;17187:12;17145:71;;;17065:157;17300:4;17293:5;17289:16;17283:23;17312:71;17377:4;17372:3;17368:14;17354:12;17312:71;;;17232:157;17463:4;17456:5;17452:16;17446:23;17475:71;17540:4;17535:3;17531:14;17517:12;17475:71;;;17399:153;17627:4;17620:5;17616:16;17610:23;17679:3;17673:4;17669:14;17662:4;17657:3;17653:14;17646:38;17699:77;17771:4;17757:12;17699:77;;;17691:85;;17562:226;17861:4;17854:5;17850:16;17844:23;17913:3;17907:4;17903:14;17896:4;17891:3;17887:14;17880:38;17933:77;18005:4;17991:12;17933:77;;;17925:85;16512:1536;-1:-1;;;;;16512:1536;18136:1520;18384:23;;18136:1520;;18315:4;18306:14;;;18413:71;18310:3;18384:23;18413:71;;;18335:155;18576:4;18569:5;18565:16;18559:23;18588:71;18653:4;18648:3;18644:14;18630:12;18588:71;;;18500:165;18740:4;18733:5;18729:16;18723:23;18752:71;18817:4;18812:3;18808:14;18794:12;18752:71;;;18675:154;18905:4;18898:5;18894:16;18888:23;18917:71;18982:4;18977:3;18973:14;18959:12;18917:71;;;18839:155;19072:4;19065:5;19061:16;19055:23;19084:71;19149:4;19144:3;19140:14;19126:12;19084:71;;;19004:157;19235:4;19228:5;19224:16;19218:23;19287:3;19281:4;19277:14;19270:4;19265:3;19261:14;19254:38;19307:77;19379:4;19365:12;19307:77;;;19299:85;;19171:225;19469:4;19462:5;19458:16;19452:23;19521:3;19515:4;19511:14;19504:4;19499:3;19495:14;19488:38;19541:77;19613:4;19599:12;19541:77;;19663:113;19746:24;19764:5;19746:24;;19901:110;19982:23;19999:5;19982:23;;20018:213;20136:2;20121:18;;20150:71;20125:9;20194:6;20150:71;;20238:727;20502:2;20487:18;;20516:79;20491:9;20568:6;20516:79;;;20643:9;20637:4;20633:20;20628:2;20617:9;20613:18;20606:48;20668:130;20793:4;20784:6;20668:130;;;20660:138;;20846:9;20840:4;20836:20;20831:2;20820:9;20816:18;20809:48;20871:84;20950:4;20941:6;20871:84;;20972:739;21242:2;21227:18;;21256:79;21231:9;21308:6;21256:79;;;21383:9;21377:4;21373:20;21368:2;21357:9;21353:18;21346:48;21408:136;21539:4;21530:6;21408:136;;21718:201;21830:2;21815:18;;21844:65;21819:9;21882:6;21844:65;;21926:213;22044:2;22029:18;;22058:71;22033:9;22102:6;22058:71;;22146:251;22283:2;22268:18;;22297:90;22272:9;22360:6;22297:90;;22404:407;22595:2;22609:47;;;22580:18;;22670:131;22580:18;22670:131;;22818:407;23009:2;23023:47;;;22994:18;;23084:131;22994:18;23084:131;;23232:407;23423:2;23437:47;;;23408:18;;23498:131;23408:18;23498:131;;23646:407;23837:2;23851:47;;;23822:18;;23912:131;23822:18;23912:131;;24060:407;24251:2;24265:47;;;24236:18;;24326:131;24236:18;24326:131;;24474:407;24665:2;24679:47;;;24650:18;;24740:131;24650:18;24740:131;;24888:407;25079:2;25093:47;;;25064:18;;25154:131;25064:18;25154:131;;25302:407;25493:2;25507:47;;;25478:18;;25568:131;25478:18;25568:131;;25716:407;25907:2;25921:47;;;25892:18;;25982:131;25892:18;25982:131;;26130:407;26321:2;26335:47;;;26306:18;;26396:131;26306:18;26396:131;;26544:407;26735:2;26749:47;;;26720:18;;26810:131;26720:18;26810:131;;26958:407;27149:2;27163:47;;;27134:18;;27224:131;27134:18;27224:131;;27372:831;27640:3;27625:19;;27655:71;27629:9;27699:6;27655:71;;;27737:70;27803:2;27792:9;27788:18;27779:6;27737:70;;;27818:72;27886:2;27875:9;27871:18;27862:6;27818:72;;;27938:9;27932:4;27928:20;27923:2;27912:9;27908:18;27901:48;27963:78;28036:4;28027:6;27963:78;;;27955:86;;28090:9;28084:4;28080:20;28074:3;28063:9;28059:19;28052:49;28115:78;28188:4;28179:6;28115:78;;;28107:86;27611:592;-1:-1;;;;;;;27611:592;28210:1003;28512:3;28497:19;;28527:71;28501:9;28571:6;28527:71;;;28609:70;28675:2;28664:9;28660:18;28651:6;28609:70;;;28690:72;28758:2;28747:9;28743:18;28734:6;28690:72;;;28810:9;28804:4;28800:20;28795:2;28784:9;28780:18;28773:48;28835:74;28904:4;28895:6;28835:74;;;28827:82;;28958:9;28952:4;28948:20;28942:3;28931:9;28927:19;28920:49;28983:74;29052:4;29043:6;28983:74;;;28975:82;;29106:9;29100:4;29096:20;29090:3;29079:9;29075:19;29068:49;29131:72;29198:4;29189:6;29131:72;;;29123:80;28483:730;-1:-1;;;;;;;;28483:730;29220:256;29282:2;29276:9;29308:17;;;-1:-1;;;;;29368:34;;29404:22;;;29365:62;29362:2;;;29440:1;29437;29430:12;29362:2;29456;29449:22;29260:216;;-1:-1;29260:216;29483:317;;-1:-1;;;;;29614:6;29611:30;29608:2;;;29654:1;29651;29644:12;29608:2;-1:-1;29785:4;29721;29698:17;;;;-1:-1;;29694:33;29775:15;;29545:255;30789:117;30872:12;;30843:63;31296:162;31398:19;;;31447:4;31438:14;;31391:67;31987:91;;32049:24;32067:5;32049:24;;32085:85;32151:13;32144:21;;32127:43;32177:145;-1:-1;;;;;;32239:78;;32222:100;32329:121;-1:-1;;;;;32391:54;;32374:76;32536:88;32608:10;32597:22;;32580:44;32631:159;;32729:56;32779:5;32729:56;;32932:145;33013:6;33008:3;33003;32990:30;-1:-1;33069:1;33051:16;;33044:27;32983:94;33086:268;33151:1;33158:101;33172:6;33169:1;33166:13;33158:101;;;33239:11;;;33233:18;33220:11;;;33213:39;33194:2;33187:10;33158:101;;;33274:6;33271:1;33268:13;33265:2;;;-1:-1;;33339:1;33321:16;;33314:27;33135:219;33362:97;33450:2;33430:14;-1:-1;;33426:28;;33410:49;33467:117;33536:24;33554:5;33536:24;;;33529:5;33526:35;33516:2;;33575:1;33572;33565:12;33591:111;33657:21;33672:5;33657:21;;33709:117;33778:24;33796:5;33778:24;;33833:110;33918:1;33911:5;33908:12;33898:2;;33934:1;33931;33924:12;33950:117;34019:24;34037:5;34019:24;", "source": "///////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (C) 2018-2020 Crossbar.io Technologies GmbH and contributors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\n///////////////////////////////////////////////////////////////////////////////\n\npragma solidity ^0.5.12;\npragma experimental ABIEncoderV2;\n\n// https://openzeppelin.org/api/docs/math_SafeMath.html\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"./XBRMaintained.sol\";\nimport \"./XBRTypes.sol\";\nimport \"./XBRToken.sol\";\nimport \"./XBRNetwork.sol\";\n\n\n/// XBR API catalogs contract.\ncontract XBRCatalog is XBRMaintained {\n\n // Add safe math functions to uint256 using SafeMath lib from OpenZeppelin\n using SafeMath for uint256;\n\n /// Event emitted when a new catalog was created.\n event CatalogCreated (bytes16 indexed catalogId, uint256 created, uint32 catalogSeq,\n address owner, string terms, string meta);\n\n /// Event emitted when an API has been published to a catalog.\n event ApiPublished (bytes16 indexed catalogId, bytes16 apiId, uint256 published,\n string schema, string meta);\n\n /// Instance of XBRNetwork contract this contract is linked to.\n XBRNetwork public network;\n\n /// Created catalogs are sequence numbered using this counter (to allow deterministic collision-free IDs for markets)\n uint32 private catalogSeq = 1;\n\n /// Current XBR Catalogs (\"catalog directory\")\n mapping(bytes16 => XBRTypes.Catalog) public catalogs;\n\n /// List of IDs of current XBR Catalogs.\n bytes16[] public catalogIds;\n\n // Constructor for this contract, only called once (when deploying the network).\n //\n // @param networkAdr The XBR network contract this instance is associated with.\n constructor (address networkAdr) public {\n network = XBRNetwork(networkAdr);\n }\n\n /// Create a new XBR catalog. The sender of the transaction must be XBR network member\n /// and automatically becomes owner of the new catalog.\n ///\n /// @param catalogId The ID of the new catalog.\n /// @param terms Multihash for terms that apply to the catalog and to all APIs as published to this catalog.\n /// @param meta Multihash for optional catalog meta-data.\n function createCatalog (bytes16 catalogId, string memory terms, string memory meta) public {\n\n _createCatalog(msg.sender, block.number, catalogId, terms, meta, \"\");\n }\n\n /// Create a new XBR catalog for a member. The member must be XBR network member, must have signed the\n /// transaction data, and will become owner of the new catalog.\n ///\n /// Note: This version uses pre-signed data where the actual blockchain transaction is\n /// submitted by a gateway paying the respective gas (in ETH) for the blockchain transaction.\n ///\n /// @param member Member that creates the catalog and will become owner.\n /// @param created Block number when the catalog was created.\n /// @param catalogId The ID of the new catalog.\n /// @param terms Multihash for terms that apply to the catalog and to all APIs as published to this catalog.\n /// @param meta Multihash for optional catalog meta-data.\n /// @param signature Signature created by the member.\n function createCatalogFor (address member, uint256 created, bytes16 catalogId, string memory terms,\n string memory meta, bytes memory signature) public {\n\n require(XBRTypes.verify(member, XBRTypes.EIP712CatalogCreate(network.verifyingChain(), network.verifyingContract(),\n member, created, catalogId, terms, meta), signature),\n \"INVALID_CATALOG_CREATE_SIGNATURE\");\n\n // signature must have been created in a window of 5 blocks from the current one\n require(created <= block.number && created >= (block.number - 4), \"INVALID_CATALOG_CREATE_BLOCK_NUMBER\");\n\n _createCatalog(member, created, catalogId, terms, meta, signature);\n }\n\n function _createCatalog (address member, uint256 created, bytes16 catalogId, string memory terms,\n string memory meta, bytes memory signature) private {\n\n (, , , XBRTypes.MemberLevel member_level, ) = network.members(member);\n\n // the catalog owner must be a registered member\n require(member_level == XBRTypes.MemberLevel.ACTIVE ||\n member_level == XBRTypes.MemberLevel.VERIFIED, \"SENDER_NOT_A_MEMBER\");\n\n // catalogs must not yet exist\n require(catalogs[catalogId].owner == address(0), \"CATALOG_ALREADY_EXISTS\");\n\n // store new catalog object\n catalogs[catalogId] = XBRTypes.Catalog(created, catalogSeq, member, terms, meta, signature);\n\n // add catalogId to list of all catalog IDs\n catalogIds.push(catalogId);\n\n // increment catalog sequence for next catalog\n catalogSeq = catalogSeq + 1;\n\n // notify observers of new catalogs\n emit CatalogCreated(catalogId, created, catalogSeq, member, terms, meta);\n }\n\n /// Publish the given API to the specified catalog.\n ///\n /// @param catalogId The ID of the XBR API catalog to publish the API to.\n /// @param apiId The ID of the new API (must be unique).\n /// @param schema Multihash of API Flatbuffers schema (required).\n /// @param meta Multihash for optional meta-data.\n function publishApi (bytes16 catalogId, bytes16 apiId, string memory schema, string memory meta) public {\n\n _publishApi(msg.sender, block.number, catalogId, apiId, schema, meta, \"\");\n }\n\n /// Publish the given API to the specified catalog.\n ///\n /// Note: This version uses pre-signed data where the actual blockchain transaction is\n /// submitted by a gateway paying the respective gas (in ETH) for the blockchain transaction.\n ///\n /// @param member Member that is publishing the API.\n /// @param published Block number when the API was published.\n /// @param catalogId The ID of the XBR API catalog to publish the API to.\n /// @param apiId The ID of the new API (must be unique).\n /// @param schema Multihash of API Flatbuffers schema (required).\n /// @param meta Multihash for optional meta-data.\n /// @param signature Signature created by the member.\n function publishApiFor (address member, uint256 published, bytes16 catalogId, bytes16 apiId,\n string memory schema, string memory meta, bytes memory signature) public {\n\n require(XBRTypes.verify(member, XBRTypes.EIP712ApiPublish(network.verifyingChain(), network.verifyingContract(),\n member, published, catalogId, apiId, schema, meta), signature), \"INVALID_API_PUBLISH_SIGNATURE\");\n\n // signature must have been created in a window of 5 blocks from the current one\n require(published <= block.number && published >= (block.number - 4), \"INVALID_API_PUBLISH_BLOCK_NUMBER\");\n\n _publishApi(member, published, catalogId, apiId, schema, meta, signature);\n }\n\n function _publishApi (address member, uint256 published, bytes16 catalogId, bytes16 apiId,\n string memory schema, string memory meta, bytes memory signature) private {\n\n (, , , XBRTypes.MemberLevel member_level, ) = network.members(member);\n\n // the publishing user must be a registered member\n require(member_level == XBRTypes.MemberLevel.ACTIVE, \"SENDER_NOT_A_MEMBER\");\n\n // the catalog to publish to must exist\n require(catalogs[catalogId].owner != address(0), \"NO_SUCH_CATALOG\");\n\n // the publishing member must be owner of the catalog\n require(catalogs[catalogId].owner == member, \"SENDER_IS_NOT_OWNER\");\n\n // the API, identified by the ID, must not yet exist\n require(catalogs[catalogId].apis[apiId].published == 0, \"API_ALREADY_EXISTS\");\n\n // add API to API-map of catalog\n catalogs[catalogId].apis[apiId] = XBRTypes.Api(published, schema, meta, signature);\n }\n}\n", "sourcePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRCatalog.sol", "ast": { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRCatalog.sol", "exportedSymbols": { "XBRCatalog": [ 470 ] }, "id": 471, "nodeType": "SourceUnit", "nodes": [ { "id": 58, "literals": [ "solidity", "^", "0.5", ".12" ], "nodeType": "PragmaDirective", "src": "810:24:1" }, { "id": 59, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "835:33:1" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 60, "nodeType": "ImportDirective", "scope": 471, "sourceUnit": 5802, "src": "926:59:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRMaintained.sol", "file": "./XBRMaintained.sol", "id": 61, "nodeType": "ImportDirective", "scope": 471, "sourceUnit": 1730, "src": "987:29:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRTypes.sol", "file": "./XBRTypes.sol", "id": 62, "nodeType": "ImportDirective", "scope": 471, "sourceUnit": 5426, "src": "1017:24:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRToken.sol", "file": "./XBRToken.sol", "id": 63, "nodeType": "ImportDirective", "scope": 471, "sourceUnit": 4328, "src": "1042:24:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRNetwork.sol", "file": "./XBRNetwork.sol", "id": 64, "nodeType": "ImportDirective", "scope": 471, "sourceUnit": 3887, "src": "1067:26:1", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 65, "name": "XBRMaintained", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1729, "src": "1150:13:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMaintained_$1729", "typeString": "contract XBRMaintained" } }, "id": 66, "nodeType": "InheritanceSpecifier", "src": "1150:13:1" } ], "contractDependencies": [ 1729 ], "contractKind": "contract", "documentation": "XBR API catalogs contract.", "fullyImplemented": true, "id": 470, "linearizedBaseContracts": [ 470, 1729 ], "name": "XBRCatalog", "nodeType": "ContractDefinition", "nodes": [ { "id": 69, "libraryName": { "contractScope": null, "id": 67, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5801, "src": "1256:8:1", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$5801", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "1250:27:1", "typeName": { "id": 68, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1269:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "anonymous": false, "documentation": "Event emitted when a new catalog was created.", "id": 83, "name": "CatalogCreated", "nodeType": "EventDefinition", "parameters": { "id": 82, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 71, "indexed": true, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 83, "src": "1359:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 70, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "1359:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 73, "indexed": false, "name": "created", "nodeType": "VariableDeclaration", "scope": 83, "src": "1386:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 72, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1386:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 75, "indexed": false, "name": "catalogSeq", "nodeType": "VariableDeclaration", "scope": 83, "src": "1403:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 74, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "1403:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 77, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", "scope": 83, "src": "1430:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 76, "name": "address", "nodeType": "ElementaryTypeName", "src": "1430:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 79, "indexed": false, "name": "terms", "nodeType": "VariableDeclaration", "scope": 83, "src": "1445:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 78, "name": "string", "nodeType": "ElementaryTypeName", "src": "1445:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 81, "indexed": false, "name": "meta", "nodeType": "VariableDeclaration", "scope": 83, "src": "1459:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 80, "name": "string", "nodeType": "ElementaryTypeName", "src": "1459:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "1358:113:1" }, "src": "1337:135:1" }, { "anonymous": false, "documentation": "Event emitted when an API has been published to a catalog.", "id": 95, "name": "ApiPublished", "nodeType": "EventDefinition", "parameters": { "id": 94, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 85, "indexed": true, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 95, "src": "1565:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 84, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "1565:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 87, "indexed": false, "name": "apiId", "nodeType": "VariableDeclaration", "scope": 95, "src": "1592:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 86, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "1592:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 89, "indexed": false, "name": "published", "nodeType": "VariableDeclaration", "scope": 95, "src": "1607:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 88, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1607:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 91, "indexed": false, "name": "schema", "nodeType": "VariableDeclaration", "scope": 95, "src": "1634:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 90, "name": "string", "nodeType": "ElementaryTypeName", "src": "1634:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 93, "indexed": false, "name": "meta", "nodeType": "VariableDeclaration", "scope": 95, "src": "1649:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 92, "name": "string", "nodeType": "ElementaryTypeName", "src": "1649:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "1564:97:1" }, "src": "1545:117:1" }, { "constant": false, "id": 97, "name": "network", "nodeType": "VariableDeclaration", "scope": 470, "src": "1736:25:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" }, "typeName": { "contractScope": null, "id": 96, "name": "XBRNetwork", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3886, "src": "1736:10:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 100, "name": "catalogSeq", "nodeType": "VariableDeclaration", "scope": 470, "src": "1890:29:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 98, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "1890:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "argumentTypes": null, "hexValue": "31", "id": 99, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1918:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "visibility": "private" }, { "constant": false, "id": 104, "name": "catalogs", "nodeType": "VariableDeclaration", "scope": 470, "src": "1977:52:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog)" }, "typeName": { "id": 103, "keyType": { "id": 101, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "1985:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Mapping", "src": "1977:36:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog)" }, "valueType": { "contractScope": null, "id": 102, "name": "XBRTypes.Catalog", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4452, "src": "1996:16:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage_ptr", "typeString": "struct XBRTypes.Catalog" } } }, "value": null, "visibility": "public" }, { "constant": false, "id": 107, "name": "catalogIds", "nodeType": "VariableDeclaration", "scope": 470, "src": "2081:27:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage", "typeString": "bytes16[]" }, "typeName": { "baseType": { "id": 105, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2081:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 106, "length": null, "nodeType": "ArrayTypeName", "src": "2081:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage_ptr", "typeString": "bytes16[]" } }, "value": null, "visibility": "public" }, { "body": { "id": 118, "nodeType": "Block", "src": "2331:49:1", "statements": [ { "expression": { "argumentTypes": null, "id": 116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 112, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "2341:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 114, "name": "networkAdr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 109, "src": "2362:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 113, "name": "XBRNetwork", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3886, "src": "2351:10:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRNetwork_$3886_$", "typeString": "type(contract XBRNetwork)" } }, "id": 115, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2351:22:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "src": "2341:32:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 117, "nodeType": "ExpressionStatement", "src": "2341:32:1" } ] }, "documentation": null, "id": 119, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 110, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 109, "name": "networkAdr", "nodeType": "VariableDeclaration", "scope": 119, "src": "2304:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 108, "name": "address", "nodeType": "ElementaryTypeName", "src": "2304:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2303:20:1" }, "returnParameters": { "id": 111, "nodeType": "ParameterList", "parameters": [], "src": "2331:0:1" }, "scope": 470, "src": "2291:89:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 139, "nodeType": "Block", "src": "2863:86:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 129, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "2889:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2889:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 131, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "2901:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2901:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 133, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 121, "src": "2915:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 134, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 123, "src": "2926:5:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 135, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 125, "src": "2933:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "hexValue": "", "id": 136, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2939:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "id": 128, "name": "_createCatalog", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, "src": "2874:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes16,string memory,string memory,bytes memory)" } }, "id": 137, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2874:68:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 138, "nodeType": "ExpressionStatement", "src": "2874:68:1" } ] }, "documentation": "Create a new XBR catalog. The sender of the transaction must be XBR network member\n and automatically becomes owner of the new catalog.\n\n /// @param catalogId The ID of the new catalog.\n @param terms Multihash for terms that apply to the catalog and to all APIs as published to this catalog.\n @param meta Multihash for optional catalog meta-data.", "id": 140, "implemented": true, "kind": "function", "modifiers": [], "name": "createCatalog", "nodeType": "FunctionDefinition", "parameters": { "id": 126, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 121, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 140, "src": "2796:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 120, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2796:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 123, "name": "terms", "nodeType": "VariableDeclaration", "scope": 140, "src": "2815:19:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 122, "name": "string", "nodeType": "ElementaryTypeName", "src": "2815:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 125, "name": "meta", "nodeType": "VariableDeclaration", "scope": 140, "src": "2836:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 124, "name": "string", "nodeType": "ElementaryTypeName", "src": "2836:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "2795:60:1" }, "returnParameters": { "id": 127, "nodeType": "ParameterList", "parameters": [], "src": "2863:0:1" }, "scope": 470, "src": "2772:177:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 203, "nodeType": "Block", "src": "3922:528:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 158, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 142, "src": "3957:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 161, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "3994:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingChain", "nodeType": "MemberAccess", "referencedDeclaration": 3417, "src": "3994:22:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 163, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3994:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 164, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "4020:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingContract", "nodeType": "MemberAccess", "referencedDeclaration": 3419, "src": "4020:25:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 166, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4020:27:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 167, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 142, "src": "4061:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 168, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, "src": "4069:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 169, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 146, "src": "4078:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 170, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 148, "src": "4089:5:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 171, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 150, "src": "4096:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 159, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "3965:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 160, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "EIP712CatalogCreate", "nodeType": "MemberAccess", "referencedDeclaration": 4536, "src": "3965:28:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EIP712CatalogCreate_$4536_storage_ptr_$", "typeString": "type(struct XBRTypes.EIP712CatalogCreate storage pointer)" } }, "id": 172, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3965:136:1", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712CatalogCreate_$4536_memory", "typeString": "struct XBRTypes.EIP712CatalogCreate memory" } }, { "argumentTypes": null, "id": 173, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 152, "src": "4103:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_EIP712CatalogCreate_$4536_memory", "typeString": "struct XBRTypes.EIP712CatalogCreate memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 156, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "3941:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", "referencedDeclaration": 5154, "src": "3941:15:1", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_address_$_t_struct$_EIP712CatalogCreate_$4536_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,struct XBRTypes.EIP712CatalogCreate memory,bytes memory) pure returns (bool)" } }, "id": 174, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3941:172:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f434154414c4f475f4352454154455f5349474e4154555245", "id": 175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4127:34:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e6f0e0f5f3ff0158a587ef1b4ed81006351e5938a2bf5206c56bd8a2d1e1c633", "typeString": "literal_string \"INVALID_CATALOG_CREATE_SIGNATURE\"" }, "value": "INVALID_CATALOG_CREATE_SIGNATURE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e6f0e0f5f3ff0158a587ef1b4ed81006351e5938a2bf5206c56bd8a2d1e1c633", "typeString": "literal_string \"INVALID_CATALOG_CREATE_SIGNATURE\"" } ], "id": 155, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "3933:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 176, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3933:229:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 177, "nodeType": "ExpressionStatement", "src": "3933:229:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 182, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 179, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, "src": "4270:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 180, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "4281:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 181, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4281:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4270:23:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 189, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 183, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, "src": "4297:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 184, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "4309:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4309:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "34", "id": 186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4324:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "4309:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 188, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "4308:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4297:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "4270:56:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f434154414c4f475f4352454154455f424c4f434b5f4e554d424552", "id": 191, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4328:37:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_41f9bb1d8420319b78cb7a36959e0cd80d84509e42c6e0519d98ebd4c493af41", "typeString": "literal_string \"INVALID_CATALOG_CREATE_BLOCK_NUMBER\"" }, "value": "INVALID_CATALOG_CREATE_BLOCK_NUMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_41f9bb1d8420319b78cb7a36959e0cd80d84509e42c6e0519d98ebd4c493af41", "typeString": "literal_string \"INVALID_CATALOG_CREATE_BLOCK_NUMBER\"" } ], "id": 178, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "4262:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 192, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4262:104:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 193, "nodeType": "ExpressionStatement", "src": "4262:104:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 195, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 142, "src": "4392:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 196, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, "src": "4400:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 197, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 146, "src": "4409:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 198, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 148, "src": "4420:5:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 199, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 150, "src": "4427:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 200, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 152, "src": "4433:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 194, "name": "_createCatalog", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, "src": "4377:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes16,string memory,string memory,bytes memory)" } }, "id": 201, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4377:66:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 202, "nodeType": "ExpressionStatement", "src": "4377:66:1" } ] }, "documentation": "Create a new XBR catalog for a member. The member must be XBR network member, must have signed the\n transaction data, and will become owner of the new catalog.\n\n /// Note: This version uses pre-signed data where the actual blockchain transaction is\n submitted by a gateway paying the respective gas (in ETH) for the blockchain transaction.\n\n /// @param member Member that creates the catalog and will become owner.\n @param created Block number when the catalog was created.\n @param catalogId The ID of the new catalog.\n @param terms Multihash for terms that apply to the catalog and to all APIs as published to this catalog.\n @param meta Multihash for optional catalog meta-data.\n @param signature Signature created by the member.", "id": 204, "implemented": true, "kind": "function", "modifiers": [], "name": "createCatalogFor", "nodeType": "FunctionDefinition", "parameters": { "id": 153, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 142, "name": "member", "nodeType": "VariableDeclaration", "scope": 204, "src": "3790:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 141, "name": "address", "nodeType": "ElementaryTypeName", "src": "3790:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 144, "name": "created", "nodeType": "VariableDeclaration", "scope": 204, "src": "3806:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 143, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3806:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 146, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 204, "src": "3823:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 145, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "3823:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 148, "name": "terms", "nodeType": "VariableDeclaration", "scope": 204, "src": "3842:19:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 147, "name": "string", "nodeType": "ElementaryTypeName", "src": "3842:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 150, "name": "meta", "nodeType": "VariableDeclaration", "scope": 204, "src": "3871:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 149, "name": "string", "nodeType": "ElementaryTypeName", "src": "3871:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 152, "name": "signature", "nodeType": "VariableDeclaration", "scope": 204, "src": "3891:22:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 151, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3891:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "3789:125:1" }, "returnParameters": { "id": 154, "nodeType": "ParameterList", "parameters": [], "src": "3922:0:1" }, "scope": 470, "src": "3763:687:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 290, "nodeType": "Block", "src": "4614:866:1", "statements": [ { "assignments": [ null, null, null, 222, null ], "declarations": [ null, null, null, { "constant": false, "id": 222, "name": "member_level", "nodeType": "VariableDeclaration", "scope": 290, "src": "4632:33:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 221, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "4632:20:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" }, null ], "id": 227, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 225, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 206, "src": "4687:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 223, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "4671:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", "referencedDeclaration": 3432, "src": "4671:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "function (address) view external returns (uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "id": 226, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4671:23:1", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "tuple(uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "4625:69:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 229, "name": "member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 222, "src": "4770:12:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 230, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "4786:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "4786:20:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 232, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4786:27:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "4770:43:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 234, "name": "member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 222, "src": "4833:12:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 235, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "4849:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 236, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "4849:20:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 237, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4849:29:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "4833:45:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "4770:108:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "53454e4445525f4e4f545f415f4d454d424552", "id": 240, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4880:21:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5fd1de0f9d1a25b0de511a326ce56348254806674edd224e6d62c38da0c45a12", "typeString": "literal_string \"SENDER_NOT_A_MEMBER\"" }, "value": "SENDER_NOT_A_MEMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_5fd1de0f9d1a25b0de511a326ce56348254806674edd224e6d62c38da0c45a12", "typeString": "literal_string \"SENDER_NOT_A_MEMBER\"" } ], "id": 228, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "4762:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 241, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4762:140:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 242, "nodeType": "ExpressionStatement", "src": "4762:140:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 244, "name": "catalogs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104, "src": "4960:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog storage ref)" } }, "id": 246, "indexExpression": { "argumentTypes": null, "id": 245, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 210, "src": "4969:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4960:19:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "id": 247, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 4441, "src": "4960:25:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 249, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4997:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 248, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4989:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4989:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "4960:39:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "434154414c4f475f414c52454144595f455849535453", "id": 252, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5001:24:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_eaaca4e0a597d556aa60c6fa4a6f429eb2e842179215226676e2495e72642059", "typeString": "literal_string \"CATALOG_ALREADY_EXISTS\"" }, "value": "CATALOG_ALREADY_EXISTS" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_eaaca4e0a597d556aa60c6fa4a6f429eb2e842179215226676e2495e72642059", "typeString": "literal_string \"CATALOG_ALREADY_EXISTS\"" } ], "id": 243, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "4952:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 253, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4952:74:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 254, "nodeType": "ExpressionStatement", "src": "4952:74:1" }, { "expression": { "argumentTypes": null, "id": 267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 255, "name": "catalogs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104, "src": "5073:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog storage ref)" } }, "id": 257, "indexExpression": { "argumentTypes": null, "id": 256, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 210, "src": "5082:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5073:19:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 260, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 208, "src": "5112:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 261, "name": "catalogSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100, "src": "5121:10:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 262, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 206, "src": "5133:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 263, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 212, "src": "5141:5:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 264, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 214, "src": "5148:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 265, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, "src": "5154:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 258, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "5095:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Catalog", "nodeType": "MemberAccess", "referencedDeclaration": 4452, "src": "5095:16:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Catalog_$4452_storage_ptr_$", "typeString": "type(struct XBRTypes.Catalog storage pointer)" } }, "id": 266, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5095:69:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_memory", "typeString": "struct XBRTypes.Catalog memory" } }, "src": "5073:91:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "id": 268, "nodeType": "ExpressionStatement", "src": "5073:91:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 272, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 210, "src": "5243:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 269, "name": "catalogIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 107, "src": "5227:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage", "typeString": "bytes16[] storage ref" } }, "id": 271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5227:15:1", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes16_$returns$_t_uint256_$", "typeString": "function (bytes16) returns (uint256)" } }, "id": 273, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5227:26:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 274, "nodeType": "ExpressionStatement", "src": "5227:26:1" }, { "expression": { "argumentTypes": null, "id": 279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 275, "name": "catalogSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100, "src": "5319:10:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 276, "name": "catalogSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100, "src": "5332:10:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 277, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5345:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5332:14:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "5319:27:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 280, "nodeType": "ExpressionStatement", "src": "5319:27:1" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 282, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 210, "src": "5421:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 283, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 208, "src": "5432:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 284, "name": "catalogSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100, "src": "5441:10:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 285, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 206, "src": "5453:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 286, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 212, "src": "5461:5:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 287, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 214, "src": "5468:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 281, "name": "CatalogCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 83, "src": "5406:14:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_uint256_$_t_uint32_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes16,uint256,uint32,address,string memory,string memory)" } }, "id": 288, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5406:67:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 289, "nodeType": "EmitStatement", "src": "5401:72:1" } ] }, "documentation": null, "id": 291, "implemented": true, "kind": "function", "modifiers": [], "name": "_createCatalog", "nodeType": "FunctionDefinition", "parameters": { "id": 217, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 206, "name": "member", "nodeType": "VariableDeclaration", "scope": 291, "src": "4481:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 205, "name": "address", "nodeType": "ElementaryTypeName", "src": "4481:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 208, "name": "created", "nodeType": "VariableDeclaration", "scope": 291, "src": "4497:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 207, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4497:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 210, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 291, "src": "4514:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 209, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4514:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 212, "name": "terms", "nodeType": "VariableDeclaration", "scope": 291, "src": "4533:19:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 211, "name": "string", "nodeType": "ElementaryTypeName", "src": "4533:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 214, "name": "meta", "nodeType": "VariableDeclaration", "scope": 291, "src": "4562:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 213, "name": "string", "nodeType": "ElementaryTypeName", "src": "4562:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 216, "name": "signature", "nodeType": "VariableDeclaration", "scope": 291, "src": "4582:22:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 215, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4582:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "4480:125:1" }, "returnParameters": { "id": 218, "nodeType": "ParameterList", "parameters": [], "src": "4614:0:1" }, "scope": 470, "src": "4456:1024:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { "id": 314, "nodeType": "Block", "src": "5917:91:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 303, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "5940:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5940:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 305, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "5952:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 306, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5952:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 307, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 293, "src": "5966:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 308, "name": "apiId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 295, "src": "5977:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 309, "name": "schema", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 297, "src": "5984:6:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 310, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 299, "src": "5992:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "hexValue": "", "id": 311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5998:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "id": 302, "name": "_publishApi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "5928:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes16_$_t_bytes16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes16,bytes16,string memory,string memory,bytes memory)" } }, "id": 312, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5928:73:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 313, "nodeType": "ExpressionStatement", "src": "5928:73:1" } ] }, "documentation": "Publish the given API to the specified catalog.\n\n /// @param catalogId The ID of the XBR API catalog to publish the API to.\n @param apiId The ID of the new API (must be unique).\n @param schema Multihash of API Flatbuffers schema (required).\n @param meta Multihash for optional meta-data.", "id": 315, "implemented": true, "kind": "function", "modifiers": [], "name": "publishApi", "nodeType": "FunctionDefinition", "parameters": { "id": 300, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 293, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 315, "src": "5834:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 292, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5834:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 295, "name": "apiId", "nodeType": "VariableDeclaration", "scope": 315, "src": "5853:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 294, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5853:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 297, "name": "schema", "nodeType": "VariableDeclaration", "scope": 315, "src": "5868:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 296, "name": "string", "nodeType": "ElementaryTypeName", "src": "5868:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 299, "name": "meta", "nodeType": "VariableDeclaration", "scope": 315, "src": "5890:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 298, "name": "string", "nodeType": "ElementaryTypeName", "src": "5890:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "5833:76:1" }, "returnParameters": { "id": 301, "nodeType": "ParameterList", "parameters": [], "src": "5917:0:1" }, "scope": 470, "src": "5813:195:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 382, "nodeType": "Block", "src": "6893:528:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 335, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 317, "src": "6928:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 338, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "6962:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingChain", "nodeType": "MemberAccess", "referencedDeclaration": 3417, "src": "6962:22:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6962:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 341, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "6988:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingContract", "nodeType": "MemberAccess", "referencedDeclaration": 3419, "src": "6988:25:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 343, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6988:27:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 344, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 317, "src": "7029:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 345, "name": "published", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 319, "src": "7037:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 346, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 321, "src": "7048:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 347, "name": "apiId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 323, "src": "7059:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 348, "name": "schema", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 325, "src": "7066:6:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 349, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 327, "src": "7074:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 336, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "6936:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 337, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "EIP712ApiPublish", "nodeType": "MemberAccess", "referencedDeclaration": 4553, "src": "6936:25:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EIP712ApiPublish_$4553_storage_ptr_$", "typeString": "type(struct XBRTypes.EIP712ApiPublish storage pointer)" } }, "id": 350, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6936:143:1", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ApiPublish_$4553_memory", "typeString": "struct XBRTypes.EIP712ApiPublish memory" } }, { "argumentTypes": null, "id": 351, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 329, "src": "7081:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_EIP712ApiPublish_$4553_memory", "typeString": "struct XBRTypes.EIP712ApiPublish memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 333, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "6912:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", "referencedDeclaration": 5199, "src": "6912:15:1", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_address_$_t_struct$_EIP712ApiPublish_$4553_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,struct XBRTypes.EIP712ApiPublish memory,bytes memory) pure returns (bool)" } }, "id": 352, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6912:179:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4150495f5055424c4953485f5349474e4154555245", "id": 353, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7093:31:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_950aca6f39683dedc77c2aac79688d6b46d4c5ea40b5a49032adcc445d491af9", "typeString": "literal_string \"INVALID_API_PUBLISH_SIGNATURE\"" }, "value": "INVALID_API_PUBLISH_SIGNATURE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_950aca6f39683dedc77c2aac79688d6b46d4c5ea40b5a49032adcc445d491af9", "typeString": "literal_string \"INVALID_API_PUBLISH_SIGNATURE\"" } ], "id": 332, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "6904:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 354, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6904:221:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 355, "nodeType": "ExpressionStatement", "src": "6904:221:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 360, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 357, "name": "published", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 319, "src": "7233:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 358, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "7246:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7246:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7233:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 361, "name": "published", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 319, "src": "7262:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 362, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "7276:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 363, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7276:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "34", "id": 364, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7291:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "7276:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 366, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "7275:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7262:31:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "7233:60:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4150495f5055424c4953485f424c4f434b5f4e554d424552", "id": 369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7295:34:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7542820d56461a648941336f16bf734329a05a3f0aaabf8771680fbf9c5b23a8", "typeString": "literal_string \"INVALID_API_PUBLISH_BLOCK_NUMBER\"" }, "value": "INVALID_API_PUBLISH_BLOCK_NUMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_7542820d56461a648941336f16bf734329a05a3f0aaabf8771680fbf9c5b23a8", "typeString": "literal_string \"INVALID_API_PUBLISH_BLOCK_NUMBER\"" } ], "id": 356, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7225:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 370, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7225:105:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 371, "nodeType": "ExpressionStatement", "src": "7225:105:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 373, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 317, "src": "7353:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 374, "name": "published", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 319, "src": "7361:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 375, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 321, "src": "7372:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 376, "name": "apiId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 323, "src": "7383:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 377, "name": "schema", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 325, "src": "7390:6:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 378, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 327, "src": "7398:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 379, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 329, "src": "7404:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 372, "name": "_publishApi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "7341:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes16_$_t_bytes16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes16,bytes16,string memory,string memory,bytes memory)" } }, "id": 380, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7341:73:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 381, "nodeType": "ExpressionStatement", "src": "7341:73:1" } ] }, "documentation": "Publish the given API to the specified catalog.\n\n /// Note: This version uses pre-signed data where the actual blockchain transaction is\n submitted by a gateway paying the respective gas (in ETH) for the blockchain transaction.\n\n /// @param member Member that is publishing the API.\n @param published Block number when the API was published.\n @param catalogId The ID of the XBR API catalog to publish the API to.\n @param apiId The ID of the new API (must be unique).\n @param schema Multihash of API Flatbuffers schema (required).\n @param meta Multihash for optional meta-data.\n @param signature Signature created by the member.", "id": 383, "implemented": true, "kind": "function", "modifiers": [], "name": "publishApiFor", "nodeType": "FunctionDefinition", "parameters": { "id": 330, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 317, "name": "member", "nodeType": "VariableDeclaration", "scope": 383, "src": "6743:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 316, "name": "address", "nodeType": "ElementaryTypeName", "src": "6743:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 319, "name": "published", "nodeType": "VariableDeclaration", "scope": 383, "src": "6759:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 318, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6759:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 321, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 383, "src": "6778:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 320, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "6778:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 323, "name": "apiId", "nodeType": "VariableDeclaration", "scope": 383, "src": "6797:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 322, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "6797:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 325, "name": "schema", "nodeType": "VariableDeclaration", "scope": 383, "src": "6820:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 324, "name": "string", "nodeType": "ElementaryTypeName", "src": "6820:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 327, "name": "meta", "nodeType": "VariableDeclaration", "scope": 383, "src": "6842:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 326, "name": "string", "nodeType": "ElementaryTypeName", "src": "6842:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 329, "name": "signature", "nodeType": "VariableDeclaration", "scope": 383, "src": "6862:22:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 328, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6862:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "6742:143:1" }, "returnParameters": { "id": 331, "nodeType": "ParameterList", "parameters": [], "src": "6893:0:1" }, "scope": 470, "src": "6719:702:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 468, "nodeType": "Block", "src": "7600:781:1", "statements": [ { "assignments": [ null, null, null, 403, null ], "declarations": [ null, null, null, { "constant": false, "id": 403, "name": "member_level", "nodeType": "VariableDeclaration", "scope": 468, "src": "7618:33:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 402, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "7618:20:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" }, null ], "id": 408, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 406, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 385, "src": "7673:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 404, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "7657:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", "referencedDeclaration": 3432, "src": "7657:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "function (address) view external returns (uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "id": 407, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7657:23:1", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "tuple(uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "7611:69:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 410, "name": "member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 403, "src": "7758:12:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 411, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7774:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 412, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "7774:20:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 413, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7774:27:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "7758:43:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "53454e4445525f4e4f545f415f4d454d424552", "id": 415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7803:21:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5fd1de0f9d1a25b0de511a326ce56348254806674edd224e6d62c38da0c45a12", "typeString": "literal_string \"SENDER_NOT_A_MEMBER\"" }, "value": "SENDER_NOT_A_MEMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_5fd1de0f9d1a25b0de511a326ce56348254806674edd224e6d62c38da0c45a12", "typeString": "literal_string \"SENDER_NOT_A_MEMBER\"" } ], "id": 409, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7750:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 416, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7750:75:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 417, "nodeType": "ExpressionStatement", "src": "7750:75:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 419, "name": "catalogs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104, "src": "7892:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog storage ref)" } }, "id": 421, "indexExpression": { "argumentTypes": null, "id": 420, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 389, "src": "7901:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7892:19:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "id": 422, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 4441, "src": "7892:25:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 424, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7929:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 423, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7921:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7921:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "7892:39:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f434154414c4f47", "id": 427, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7933:17:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_37ef41cf9dc4bffd38a2878fa0a1a5b51e3d9a6471bce7e518be3a256700790e", "typeString": "literal_string \"NO_SUCH_CATALOG\"" }, "value": "NO_SUCH_CATALOG" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_37ef41cf9dc4bffd38a2878fa0a1a5b51e3d9a6471bce7e518be3a256700790e", "typeString": "literal_string \"NO_SUCH_CATALOG\"" } ], "id": 418, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7884:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 428, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7884:67:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 429, "nodeType": "ExpressionStatement", "src": "7884:67:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 431, "name": "catalogs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104, "src": "8032:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog storage ref)" } }, "id": 433, "indexExpression": { "argumentTypes": null, "id": 432, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 389, "src": "8041:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8032:19:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "id": 434, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 4441, "src": "8032:25:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 435, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 385, "src": "8061:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "8032:35:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "53454e4445525f49535f4e4f545f4f574e4552", "id": 437, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8069:21:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ed2ac138795566bb3f7a6da0d363f641a49539fd4032423726d384e9e7e1bb89", "typeString": "literal_string \"SENDER_IS_NOT_OWNER\"" }, "value": "SENDER_IS_NOT_OWNER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_ed2ac138795566bb3f7a6da0d363f641a49539fd4032423726d384e9e7e1bb89", "typeString": "literal_string \"SENDER_IS_NOT_OWNER\"" } ], "id": 430, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "8024:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 438, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8024:67:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 439, "nodeType": "ExpressionStatement", "src": "8024:67:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 441, "name": "catalogs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104, "src": "8171:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog storage ref)" } }, "id": 443, "indexExpression": { "argumentTypes": null, "id": 442, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 389, "src": "8180:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8171:19:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "id": 444, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "apis", "nodeType": "MemberAccess", "referencedDeclaration": 4451, "src": "8171:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Api_$4435_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Api storage ref)" } }, "id": 446, "indexExpression": { "argumentTypes": null, "id": 445, "name": "apiId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 391, "src": "8196:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8171:31:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Api_$4435_storage", "typeString": "struct XBRTypes.Api storage ref" } }, "id": 447, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "published", "nodeType": "MemberAccess", "referencedDeclaration": 4428, "src": "8171:41:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 448, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8216:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8171:46:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4150495f414c52454144595f455849535453", "id": 450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8219:20:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7c657be8fc2714952eea5446c329abc68b3ed417f1fda4e0af704df6427d9c71", "typeString": "literal_string \"API_ALREADY_EXISTS\"" }, "value": "API_ALREADY_EXISTS" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_7c657be8fc2714952eea5446c329abc68b3ed417f1fda4e0af704df6427d9c71", "typeString": "literal_string \"API_ALREADY_EXISTS\"" } ], "id": 440, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "8163:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 451, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8163:77:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 452, "nodeType": "ExpressionStatement", "src": "8163:77:1" }, { "expression": { "argumentTypes": null, "id": 466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 453, "name": "catalogs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104, "src": "8292:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog storage ref)" } }, "id": 455, "indexExpression": { "argumentTypes": null, "id": 454, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 389, "src": "8301:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8292:19:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "id": 456, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "apis", "nodeType": "MemberAccess", "referencedDeclaration": 4451, "src": "8292:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Api_$4435_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Api storage ref)" } }, "id": 458, "indexExpression": { "argumentTypes": null, "id": 457, "name": "apiId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 391, "src": "8317:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8292:31:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Api_$4435_storage", "typeString": "struct XBRTypes.Api storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 461, "name": "published", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 387, "src": "8339:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 462, "name": "schema", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 393, "src": "8350:6:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 463, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 395, "src": "8358:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 464, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 397, "src": "8364:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 459, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "8326:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Api", "nodeType": "MemberAccess", "referencedDeclaration": 4435, "src": "8326:12:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Api_$4435_storage_ptr_$", "typeString": "type(struct XBRTypes.Api storage pointer)" } }, "id": 465, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8326:48:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Api_$4435_memory", "typeString": "struct XBRTypes.Api memory" } }, "src": "8292:82:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Api_$4435_storage", "typeString": "struct XBRTypes.Api storage ref" } }, "id": 467, "nodeType": "ExpressionStatement", "src": "8292:82:1" } ] }, "documentation": null, "id": 469, "implemented": true, "kind": "function", "modifiers": [], "name": "_publishApi", "nodeType": "FunctionDefinition", "parameters": { "id": 398, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 385, "name": "member", "nodeType": "VariableDeclaration", "scope": 469, "src": "7449:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 384, "name": "address", "nodeType": "ElementaryTypeName", "src": "7449:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 387, "name": "published", "nodeType": "VariableDeclaration", "scope": 469, "src": "7465:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 386, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7465:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 389, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 469, "src": "7484:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 388, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7484:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 391, "name": "apiId", "nodeType": "VariableDeclaration", "scope": 469, "src": "7503:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 390, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7503:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 393, "name": "schema", "nodeType": "VariableDeclaration", "scope": 469, "src": "7526:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 392, "name": "string", "nodeType": "ElementaryTypeName", "src": "7526:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 395, "name": "meta", "nodeType": "VariableDeclaration", "scope": 469, "src": "7548:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 394, "name": "string", "nodeType": "ElementaryTypeName", "src": "7548:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 397, "name": "signature", "nodeType": "VariableDeclaration", "scope": 469, "src": "7568:22:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 396, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7568:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "7448:143:1" }, "returnParameters": { "id": 399, "nodeType": "ParameterList", "parameters": [], "src": "7600:0:1" }, "scope": 470, "src": "7427:954:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" } ], "scope": 471, "src": "1127:7256:1" } ], "src": "810:7574:1" }, "legacyAST": { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRCatalog.sol", "exportedSymbols": { "XBRCatalog": [ 470 ] }, "id": 471, "nodeType": "SourceUnit", "nodes": [ { "id": 58, "literals": [ "solidity", "^", "0.5", ".12" ], "nodeType": "PragmaDirective", "src": "810:24:1" }, { "id": 59, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "835:33:1" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 60, "nodeType": "ImportDirective", "scope": 471, "sourceUnit": 5802, "src": "926:59:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRMaintained.sol", "file": "./XBRMaintained.sol", "id": 61, "nodeType": "ImportDirective", "scope": 471, "sourceUnit": 1730, "src": "987:29:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRTypes.sol", "file": "./XBRTypes.sol", "id": 62, "nodeType": "ImportDirective", "scope": 471, "sourceUnit": 5426, "src": "1017:24:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRToken.sol", "file": "./XBRToken.sol", "id": 63, "nodeType": "ImportDirective", "scope": 471, "sourceUnit": 4328, "src": "1042:24:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRNetwork.sol", "file": "./XBRNetwork.sol", "id": 64, "nodeType": "ImportDirective", "scope": 471, "sourceUnit": 3887, "src": "1067:26:1", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 65, "name": "XBRMaintained", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1729, "src": "1150:13:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMaintained_$1729", "typeString": "contract XBRMaintained" } }, "id": 66, "nodeType": "InheritanceSpecifier", "src": "1150:13:1" } ], "contractDependencies": [ 1729 ], "contractKind": "contract", "documentation": "XBR API catalogs contract.", "fullyImplemented": true, "id": 470, "linearizedBaseContracts": [ 470, 1729 ], "name": "XBRCatalog", "nodeType": "ContractDefinition", "nodes": [ { "id": 69, "libraryName": { "contractScope": null, "id": 67, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5801, "src": "1256:8:1", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$5801", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "1250:27:1", "typeName": { "id": 68, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1269:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "anonymous": false, "documentation": "Event emitted when a new catalog was created.", "id": 83, "name": "CatalogCreated", "nodeType": "EventDefinition", "parameters": { "id": 82, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 71, "indexed": true, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 83, "src": "1359:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 70, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "1359:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 73, "indexed": false, "name": "created", "nodeType": "VariableDeclaration", "scope": 83, "src": "1386:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 72, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1386:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 75, "indexed": false, "name": "catalogSeq", "nodeType": "VariableDeclaration", "scope": 83, "src": "1403:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 74, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "1403:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 77, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", "scope": 83, "src": "1430:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 76, "name": "address", "nodeType": "ElementaryTypeName", "src": "1430:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 79, "indexed": false, "name": "terms", "nodeType": "VariableDeclaration", "scope": 83, "src": "1445:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 78, "name": "string", "nodeType": "ElementaryTypeName", "src": "1445:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 81, "indexed": false, "name": "meta", "nodeType": "VariableDeclaration", "scope": 83, "src": "1459:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 80, "name": "string", "nodeType": "ElementaryTypeName", "src": "1459:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "1358:113:1" }, "src": "1337:135:1" }, { "anonymous": false, "documentation": "Event emitted when an API has been published to a catalog.", "id": 95, "name": "ApiPublished", "nodeType": "EventDefinition", "parameters": { "id": 94, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 85, "indexed": true, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 95, "src": "1565:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 84, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "1565:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 87, "indexed": false, "name": "apiId", "nodeType": "VariableDeclaration", "scope": 95, "src": "1592:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 86, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "1592:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 89, "indexed": false, "name": "published", "nodeType": "VariableDeclaration", "scope": 95, "src": "1607:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 88, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1607:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 91, "indexed": false, "name": "schema", "nodeType": "VariableDeclaration", "scope": 95, "src": "1634:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 90, "name": "string", "nodeType": "ElementaryTypeName", "src": "1634:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 93, "indexed": false, "name": "meta", "nodeType": "VariableDeclaration", "scope": 95, "src": "1649:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 92, "name": "string", "nodeType": "ElementaryTypeName", "src": "1649:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "1564:97:1" }, "src": "1545:117:1" }, { "constant": false, "id": 97, "name": "network", "nodeType": "VariableDeclaration", "scope": 470, "src": "1736:25:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" }, "typeName": { "contractScope": null, "id": 96, "name": "XBRNetwork", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3886, "src": "1736:10:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 100, "name": "catalogSeq", "nodeType": "VariableDeclaration", "scope": 470, "src": "1890:29:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 98, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "1890:6:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "argumentTypes": null, "hexValue": "31", "id": 99, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1918:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "visibility": "private" }, { "constant": false, "id": 104, "name": "catalogs", "nodeType": "VariableDeclaration", "scope": 470, "src": "1977:52:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog)" }, "typeName": { "id": 103, "keyType": { "id": 101, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "1985:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Mapping", "src": "1977:36:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog)" }, "valueType": { "contractScope": null, "id": 102, "name": "XBRTypes.Catalog", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4452, "src": "1996:16:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage_ptr", "typeString": "struct XBRTypes.Catalog" } } }, "value": null, "visibility": "public" }, { "constant": false, "id": 107, "name": "catalogIds", "nodeType": "VariableDeclaration", "scope": 470, "src": "2081:27:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage", "typeString": "bytes16[]" }, "typeName": { "baseType": { "id": 105, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2081:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 106, "length": null, "nodeType": "ArrayTypeName", "src": "2081:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage_ptr", "typeString": "bytes16[]" } }, "value": null, "visibility": "public" }, { "body": { "id": 118, "nodeType": "Block", "src": "2331:49:1", "statements": [ { "expression": { "argumentTypes": null, "id": 116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 112, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "2341:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 114, "name": "networkAdr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 109, "src": "2362:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 113, "name": "XBRNetwork", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3886, "src": "2351:10:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRNetwork_$3886_$", "typeString": "type(contract XBRNetwork)" } }, "id": 115, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2351:22:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "src": "2341:32:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 117, "nodeType": "ExpressionStatement", "src": "2341:32:1" } ] }, "documentation": null, "id": 119, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 110, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 109, "name": "networkAdr", "nodeType": "VariableDeclaration", "scope": 119, "src": "2304:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 108, "name": "address", "nodeType": "ElementaryTypeName", "src": "2304:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "2303:20:1" }, "returnParameters": { "id": 111, "nodeType": "ParameterList", "parameters": [], "src": "2331:0:1" }, "scope": 470, "src": "2291:89:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 139, "nodeType": "Block", "src": "2863:86:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 129, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "2889:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2889:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 131, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "2901:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "2901:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 133, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 121, "src": "2915:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 134, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 123, "src": "2926:5:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 135, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 125, "src": "2933:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "hexValue": "", "id": 136, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2939:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "id": 128, "name": "_createCatalog", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, "src": "2874:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes16,string memory,string memory,bytes memory)" } }, "id": 137, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2874:68:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 138, "nodeType": "ExpressionStatement", "src": "2874:68:1" } ] }, "documentation": "Create a new XBR catalog. The sender of the transaction must be XBR network member\n and automatically becomes owner of the new catalog.\n\n /// @param catalogId The ID of the new catalog.\n @param terms Multihash for terms that apply to the catalog and to all APIs as published to this catalog.\n @param meta Multihash for optional catalog meta-data.", "id": 140, "implemented": true, "kind": "function", "modifiers": [], "name": "createCatalog", "nodeType": "FunctionDefinition", "parameters": { "id": 126, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 121, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 140, "src": "2796:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 120, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2796:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 123, "name": "terms", "nodeType": "VariableDeclaration", "scope": 140, "src": "2815:19:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 122, "name": "string", "nodeType": "ElementaryTypeName", "src": "2815:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 125, "name": "meta", "nodeType": "VariableDeclaration", "scope": 140, "src": "2836:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 124, "name": "string", "nodeType": "ElementaryTypeName", "src": "2836:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "2795:60:1" }, "returnParameters": { "id": 127, "nodeType": "ParameterList", "parameters": [], "src": "2863:0:1" }, "scope": 470, "src": "2772:177:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 203, "nodeType": "Block", "src": "3922:528:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 158, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 142, "src": "3957:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 161, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "3994:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingChain", "nodeType": "MemberAccess", "referencedDeclaration": 3417, "src": "3994:22:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 163, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3994:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 164, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "4020:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingContract", "nodeType": "MemberAccess", "referencedDeclaration": 3419, "src": "4020:25:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 166, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4020:27:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 167, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 142, "src": "4061:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 168, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, "src": "4069:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 169, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 146, "src": "4078:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 170, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 148, "src": "4089:5:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 171, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 150, "src": "4096:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 159, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "3965:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 160, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "EIP712CatalogCreate", "nodeType": "MemberAccess", "referencedDeclaration": 4536, "src": "3965:28:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EIP712CatalogCreate_$4536_storage_ptr_$", "typeString": "type(struct XBRTypes.EIP712CatalogCreate storage pointer)" } }, "id": 172, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3965:136:1", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712CatalogCreate_$4536_memory", "typeString": "struct XBRTypes.EIP712CatalogCreate memory" } }, { "argumentTypes": null, "id": 173, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 152, "src": "4103:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_EIP712CatalogCreate_$4536_memory", "typeString": "struct XBRTypes.EIP712CatalogCreate memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 156, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "3941:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", "referencedDeclaration": 5154, "src": "3941:15:1", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_address_$_t_struct$_EIP712CatalogCreate_$4536_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,struct XBRTypes.EIP712CatalogCreate memory,bytes memory) pure returns (bool)" } }, "id": 174, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3941:172:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f434154414c4f475f4352454154455f5349474e4154555245", "id": 175, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4127:34:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e6f0e0f5f3ff0158a587ef1b4ed81006351e5938a2bf5206c56bd8a2d1e1c633", "typeString": "literal_string \"INVALID_CATALOG_CREATE_SIGNATURE\"" }, "value": "INVALID_CATALOG_CREATE_SIGNATURE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e6f0e0f5f3ff0158a587ef1b4ed81006351e5938a2bf5206c56bd8a2d1e1c633", "typeString": "literal_string \"INVALID_CATALOG_CREATE_SIGNATURE\"" } ], "id": 155, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "3933:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 176, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3933:229:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 177, "nodeType": "ExpressionStatement", "src": "3933:229:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 190, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 182, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 179, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, "src": "4270:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 180, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "4281:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 181, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4281:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4270:23:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 189, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 183, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, "src": "4297:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 184, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "4309:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4309:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "34", "id": 186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4324:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "4309:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 188, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "4308:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4297:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "4270:56:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f434154414c4f475f4352454154455f424c4f434b5f4e554d424552", "id": 191, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4328:37:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_41f9bb1d8420319b78cb7a36959e0cd80d84509e42c6e0519d98ebd4c493af41", "typeString": "literal_string \"INVALID_CATALOG_CREATE_BLOCK_NUMBER\"" }, "value": "INVALID_CATALOG_CREATE_BLOCK_NUMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_41f9bb1d8420319b78cb7a36959e0cd80d84509e42c6e0519d98ebd4c493af41", "typeString": "literal_string \"INVALID_CATALOG_CREATE_BLOCK_NUMBER\"" } ], "id": 178, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "4262:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 192, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4262:104:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 193, "nodeType": "ExpressionStatement", "src": "4262:104:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 195, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 142, "src": "4392:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 196, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 144, "src": "4400:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 197, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 146, "src": "4409:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 198, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 148, "src": "4420:5:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 199, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 150, "src": "4427:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 200, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 152, "src": "4433:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 194, "name": "_createCatalog", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 291, "src": "4377:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes16,string memory,string memory,bytes memory)" } }, "id": 201, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4377:66:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 202, "nodeType": "ExpressionStatement", "src": "4377:66:1" } ] }, "documentation": "Create a new XBR catalog for a member. The member must be XBR network member, must have signed the\n transaction data, and will become owner of the new catalog.\n\n /// Note: This version uses pre-signed data where the actual blockchain transaction is\n submitted by a gateway paying the respective gas (in ETH) for the blockchain transaction.\n\n /// @param member Member that creates the catalog and will become owner.\n @param created Block number when the catalog was created.\n @param catalogId The ID of the new catalog.\n @param terms Multihash for terms that apply to the catalog and to all APIs as published to this catalog.\n @param meta Multihash for optional catalog meta-data.\n @param signature Signature created by the member.", "id": 204, "implemented": true, "kind": "function", "modifiers": [], "name": "createCatalogFor", "nodeType": "FunctionDefinition", "parameters": { "id": 153, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 142, "name": "member", "nodeType": "VariableDeclaration", "scope": 204, "src": "3790:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 141, "name": "address", "nodeType": "ElementaryTypeName", "src": "3790:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 144, "name": "created", "nodeType": "VariableDeclaration", "scope": 204, "src": "3806:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 143, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3806:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 146, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 204, "src": "3823:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 145, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "3823:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 148, "name": "terms", "nodeType": "VariableDeclaration", "scope": 204, "src": "3842:19:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 147, "name": "string", "nodeType": "ElementaryTypeName", "src": "3842:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 150, "name": "meta", "nodeType": "VariableDeclaration", "scope": 204, "src": "3871:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 149, "name": "string", "nodeType": "ElementaryTypeName", "src": "3871:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 152, "name": "signature", "nodeType": "VariableDeclaration", "scope": 204, "src": "3891:22:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 151, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3891:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "3789:125:1" }, "returnParameters": { "id": 154, "nodeType": "ParameterList", "parameters": [], "src": "3922:0:1" }, "scope": 470, "src": "3763:687:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 290, "nodeType": "Block", "src": "4614:866:1", "statements": [ { "assignments": [ null, null, null, 222, null ], "declarations": [ null, null, null, { "constant": false, "id": 222, "name": "member_level", "nodeType": "VariableDeclaration", "scope": 290, "src": "4632:33:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 221, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "4632:20:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" }, null ], "id": 227, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 225, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 206, "src": "4687:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 223, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "4671:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", "referencedDeclaration": 3432, "src": "4671:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "function (address) view external returns (uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "id": 226, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4671:23:1", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "tuple(uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "4625:69:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 229, "name": "member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 222, "src": "4770:12:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 230, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "4786:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "4786:20:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 232, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4786:27:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "4770:43:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 234, "name": "member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 222, "src": "4833:12:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 235, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "4849:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 236, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "4849:20:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 237, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4849:29:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "4833:45:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "4770:108:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "53454e4445525f4e4f545f415f4d454d424552", "id": 240, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4880:21:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5fd1de0f9d1a25b0de511a326ce56348254806674edd224e6d62c38da0c45a12", "typeString": "literal_string \"SENDER_NOT_A_MEMBER\"" }, "value": "SENDER_NOT_A_MEMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_5fd1de0f9d1a25b0de511a326ce56348254806674edd224e6d62c38da0c45a12", "typeString": "literal_string \"SENDER_NOT_A_MEMBER\"" } ], "id": 228, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "4762:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 241, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4762:140:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 242, "nodeType": "ExpressionStatement", "src": "4762:140:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 244, "name": "catalogs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104, "src": "4960:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog storage ref)" } }, "id": 246, "indexExpression": { "argumentTypes": null, "id": 245, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 210, "src": "4969:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4960:19:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "id": 247, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 4441, "src": "4960:25:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 249, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4997:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 248, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4989:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 250, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4989:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "4960:39:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "434154414c4f475f414c52454144595f455849535453", "id": 252, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5001:24:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_eaaca4e0a597d556aa60c6fa4a6f429eb2e842179215226676e2495e72642059", "typeString": "literal_string \"CATALOG_ALREADY_EXISTS\"" }, "value": "CATALOG_ALREADY_EXISTS" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_eaaca4e0a597d556aa60c6fa4a6f429eb2e842179215226676e2495e72642059", "typeString": "literal_string \"CATALOG_ALREADY_EXISTS\"" } ], "id": 243, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "4952:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 253, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4952:74:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 254, "nodeType": "ExpressionStatement", "src": "4952:74:1" }, { "expression": { "argumentTypes": null, "id": 267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 255, "name": "catalogs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104, "src": "5073:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog storage ref)" } }, "id": 257, "indexExpression": { "argumentTypes": null, "id": 256, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 210, "src": "5082:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "5073:19:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 260, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 208, "src": "5112:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 261, "name": "catalogSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100, "src": "5121:10:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 262, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 206, "src": "5133:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 263, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 212, "src": "5141:5:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 264, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 214, "src": "5148:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 265, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 216, "src": "5154:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 258, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "5095:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Catalog", "nodeType": "MemberAccess", "referencedDeclaration": 4452, "src": "5095:16:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Catalog_$4452_storage_ptr_$", "typeString": "type(struct XBRTypes.Catalog storage pointer)" } }, "id": 266, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5095:69:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_memory", "typeString": "struct XBRTypes.Catalog memory" } }, "src": "5073:91:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "id": 268, "nodeType": "ExpressionStatement", "src": "5073:91:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 272, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 210, "src": "5243:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 269, "name": "catalogIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 107, "src": "5227:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage", "typeString": "bytes16[] storage ref" } }, "id": 271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5227:15:1", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes16_$returns$_t_uint256_$", "typeString": "function (bytes16) returns (uint256)" } }, "id": 273, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5227:26:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 274, "nodeType": "ExpressionStatement", "src": "5227:26:1" }, { "expression": { "argumentTypes": null, "id": 279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 275, "name": "catalogSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100, "src": "5319:10:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 276, "name": "catalogSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100, "src": "5332:10:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 277, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5345:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "5332:14:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "5319:27:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 280, "nodeType": "ExpressionStatement", "src": "5319:27:1" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 282, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 210, "src": "5421:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 283, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 208, "src": "5432:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 284, "name": "catalogSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 100, "src": "5441:10:1", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 285, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 206, "src": "5453:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 286, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 212, "src": "5461:5:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 287, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 214, "src": "5468:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 281, "name": "CatalogCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 83, "src": "5406:14:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_uint256_$_t_uint32_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes16,uint256,uint32,address,string memory,string memory)" } }, "id": 288, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5406:67:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 289, "nodeType": "EmitStatement", "src": "5401:72:1" } ] }, "documentation": null, "id": 291, "implemented": true, "kind": "function", "modifiers": [], "name": "_createCatalog", "nodeType": "FunctionDefinition", "parameters": { "id": 217, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 206, "name": "member", "nodeType": "VariableDeclaration", "scope": 291, "src": "4481:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 205, "name": "address", "nodeType": "ElementaryTypeName", "src": "4481:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 208, "name": "created", "nodeType": "VariableDeclaration", "scope": 291, "src": "4497:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 207, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4497:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 210, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 291, "src": "4514:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 209, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4514:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 212, "name": "terms", "nodeType": "VariableDeclaration", "scope": 291, "src": "4533:19:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 211, "name": "string", "nodeType": "ElementaryTypeName", "src": "4533:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 214, "name": "meta", "nodeType": "VariableDeclaration", "scope": 291, "src": "4562:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 213, "name": "string", "nodeType": "ElementaryTypeName", "src": "4562:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 216, "name": "signature", "nodeType": "VariableDeclaration", "scope": 291, "src": "4582:22:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 215, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4582:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "4480:125:1" }, "returnParameters": { "id": 218, "nodeType": "ParameterList", "parameters": [], "src": "4614:0:1" }, "scope": 470, "src": "4456:1024:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { "id": 314, "nodeType": "Block", "src": "5917:91:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 303, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "5940:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5940:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 305, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "5952:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 306, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5952:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 307, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 293, "src": "5966:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 308, "name": "apiId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 295, "src": "5977:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 309, "name": "schema", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 297, "src": "5984:6:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 310, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 299, "src": "5992:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "hexValue": "", "id": 311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5998:2:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "id": 302, "name": "_publishApi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "5928:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes16_$_t_bytes16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes16,bytes16,string memory,string memory,bytes memory)" } }, "id": 312, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5928:73:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 313, "nodeType": "ExpressionStatement", "src": "5928:73:1" } ] }, "documentation": "Publish the given API to the specified catalog.\n\n /// @param catalogId The ID of the XBR API catalog to publish the API to.\n @param apiId The ID of the new API (must be unique).\n @param schema Multihash of API Flatbuffers schema (required).\n @param meta Multihash for optional meta-data.", "id": 315, "implemented": true, "kind": "function", "modifiers": [], "name": "publishApi", "nodeType": "FunctionDefinition", "parameters": { "id": 300, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 293, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 315, "src": "5834:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 292, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5834:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 295, "name": "apiId", "nodeType": "VariableDeclaration", "scope": 315, "src": "5853:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 294, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5853:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 297, "name": "schema", "nodeType": "VariableDeclaration", "scope": 315, "src": "5868:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 296, "name": "string", "nodeType": "ElementaryTypeName", "src": "5868:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 299, "name": "meta", "nodeType": "VariableDeclaration", "scope": 315, "src": "5890:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 298, "name": "string", "nodeType": "ElementaryTypeName", "src": "5890:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "5833:76:1" }, "returnParameters": { "id": 301, "nodeType": "ParameterList", "parameters": [], "src": "5917:0:1" }, "scope": 470, "src": "5813:195:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 382, "nodeType": "Block", "src": "6893:528:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 335, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 317, "src": "6928:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 338, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "6962:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingChain", "nodeType": "MemberAccess", "referencedDeclaration": 3417, "src": "6962:22:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6962:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 341, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "6988:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingContract", "nodeType": "MemberAccess", "referencedDeclaration": 3419, "src": "6988:25:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 343, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6988:27:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 344, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 317, "src": "7029:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 345, "name": "published", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 319, "src": "7037:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 346, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 321, "src": "7048:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 347, "name": "apiId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 323, "src": "7059:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 348, "name": "schema", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 325, "src": "7066:6:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 349, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 327, "src": "7074:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 336, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "6936:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 337, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "EIP712ApiPublish", "nodeType": "MemberAccess", "referencedDeclaration": 4553, "src": "6936:25:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EIP712ApiPublish_$4553_storage_ptr_$", "typeString": "type(struct XBRTypes.EIP712ApiPublish storage pointer)" } }, "id": 350, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6936:143:1", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ApiPublish_$4553_memory", "typeString": "struct XBRTypes.EIP712ApiPublish memory" } }, { "argumentTypes": null, "id": 351, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 329, "src": "7081:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_EIP712ApiPublish_$4553_memory", "typeString": "struct XBRTypes.EIP712ApiPublish memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 333, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "6912:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", "referencedDeclaration": 5199, "src": "6912:15:1", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_address_$_t_struct$_EIP712ApiPublish_$4553_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,struct XBRTypes.EIP712ApiPublish memory,bytes memory) pure returns (bool)" } }, "id": 352, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6912:179:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4150495f5055424c4953485f5349474e4154555245", "id": 353, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7093:31:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_950aca6f39683dedc77c2aac79688d6b46d4c5ea40b5a49032adcc445d491af9", "typeString": "literal_string \"INVALID_API_PUBLISH_SIGNATURE\"" }, "value": "INVALID_API_PUBLISH_SIGNATURE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_950aca6f39683dedc77c2aac79688d6b46d4c5ea40b5a49032adcc445d491af9", "typeString": "literal_string \"INVALID_API_PUBLISH_SIGNATURE\"" } ], "id": 332, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "6904:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 354, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6904:221:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 355, "nodeType": "ExpressionStatement", "src": "6904:221:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 360, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 357, "name": "published", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 319, "src": "7233:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 358, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "7246:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7246:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7233:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 361, "name": "published", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 319, "src": "7262:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 362, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "7276:5:1", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 363, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7276:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "hexValue": "34", "id": 364, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7291:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "7276:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 366, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "7275:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7262:31:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "7233:60:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4150495f5055424c4953485f424c4f434b5f4e554d424552", "id": 369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7295:34:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7542820d56461a648941336f16bf734329a05a3f0aaabf8771680fbf9c5b23a8", "typeString": "literal_string \"INVALID_API_PUBLISH_BLOCK_NUMBER\"" }, "value": "INVALID_API_PUBLISH_BLOCK_NUMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_7542820d56461a648941336f16bf734329a05a3f0aaabf8771680fbf9c5b23a8", "typeString": "literal_string \"INVALID_API_PUBLISH_BLOCK_NUMBER\"" } ], "id": 356, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7225:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 370, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7225:105:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 371, "nodeType": "ExpressionStatement", "src": "7225:105:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 373, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 317, "src": "7353:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 374, "name": "published", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 319, "src": "7361:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 375, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 321, "src": "7372:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 376, "name": "apiId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 323, "src": "7383:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 377, "name": "schema", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 325, "src": "7390:6:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 378, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 327, "src": "7398:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 379, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 329, "src": "7404:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 372, "name": "_publishApi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "7341:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes16_$_t_bytes16_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes16,bytes16,string memory,string memory,bytes memory)" } }, "id": 380, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7341:73:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 381, "nodeType": "ExpressionStatement", "src": "7341:73:1" } ] }, "documentation": "Publish the given API to the specified catalog.\n\n /// Note: This version uses pre-signed data where the actual blockchain transaction is\n submitted by a gateway paying the respective gas (in ETH) for the blockchain transaction.\n\n /// @param member Member that is publishing the API.\n @param published Block number when the API was published.\n @param catalogId The ID of the XBR API catalog to publish the API to.\n @param apiId The ID of the new API (must be unique).\n @param schema Multihash of API Flatbuffers schema (required).\n @param meta Multihash for optional meta-data.\n @param signature Signature created by the member.", "id": 383, "implemented": true, "kind": "function", "modifiers": [], "name": "publishApiFor", "nodeType": "FunctionDefinition", "parameters": { "id": 330, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 317, "name": "member", "nodeType": "VariableDeclaration", "scope": 383, "src": "6743:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 316, "name": "address", "nodeType": "ElementaryTypeName", "src": "6743:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 319, "name": "published", "nodeType": "VariableDeclaration", "scope": 383, "src": "6759:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 318, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6759:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 321, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 383, "src": "6778:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 320, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "6778:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 323, "name": "apiId", "nodeType": "VariableDeclaration", "scope": 383, "src": "6797:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 322, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "6797:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 325, "name": "schema", "nodeType": "VariableDeclaration", "scope": 383, "src": "6820:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 324, "name": "string", "nodeType": "ElementaryTypeName", "src": "6820:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 327, "name": "meta", "nodeType": "VariableDeclaration", "scope": 383, "src": "6842:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 326, "name": "string", "nodeType": "ElementaryTypeName", "src": "6842:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 329, "name": "signature", "nodeType": "VariableDeclaration", "scope": 383, "src": "6862:22:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 328, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6862:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "6742:143:1" }, "returnParameters": { "id": 331, "nodeType": "ParameterList", "parameters": [], "src": "6893:0:1" }, "scope": 470, "src": "6719:702:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 468, "nodeType": "Block", "src": "7600:781:1", "statements": [ { "assignments": [ null, null, null, 403, null ], "declarations": [ null, null, null, { "constant": false, "id": 403, "name": "member_level", "nodeType": "VariableDeclaration", "scope": 468, "src": "7618:33:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 402, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "7618:20:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" }, null ], "id": 408, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 406, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 385, "src": "7673:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 404, "name": "network", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 97, "src": "7657:7:1", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", "referencedDeclaration": 3432, "src": "7657:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "function (address) view external returns (uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "id": 407, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7657:23:1", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "tuple(uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "7611:69:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 410, "name": "member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 403, "src": "7758:12:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 411, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7774:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 412, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "7774:20:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 413, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7774:27:1", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "7758:43:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "53454e4445525f4e4f545f415f4d454d424552", "id": 415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7803:21:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5fd1de0f9d1a25b0de511a326ce56348254806674edd224e6d62c38da0c45a12", "typeString": "literal_string \"SENDER_NOT_A_MEMBER\"" }, "value": "SENDER_NOT_A_MEMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_5fd1de0f9d1a25b0de511a326ce56348254806674edd224e6d62c38da0c45a12", "typeString": "literal_string \"SENDER_NOT_A_MEMBER\"" } ], "id": 409, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7750:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 416, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7750:75:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 417, "nodeType": "ExpressionStatement", "src": "7750:75:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 419, "name": "catalogs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104, "src": "7892:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog storage ref)" } }, "id": 421, "indexExpression": { "argumentTypes": null, "id": 420, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 389, "src": "7901:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7892:19:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "id": 422, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 4441, "src": "7892:25:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 424, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7929:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 423, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7921:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7921:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "7892:39:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f434154414c4f47", "id": 427, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7933:17:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_37ef41cf9dc4bffd38a2878fa0a1a5b51e3d9a6471bce7e518be3a256700790e", "typeString": "literal_string \"NO_SUCH_CATALOG\"" }, "value": "NO_SUCH_CATALOG" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_37ef41cf9dc4bffd38a2878fa0a1a5b51e3d9a6471bce7e518be3a256700790e", "typeString": "literal_string \"NO_SUCH_CATALOG\"" } ], "id": 418, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7884:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 428, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7884:67:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 429, "nodeType": "ExpressionStatement", "src": "7884:67:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 431, "name": "catalogs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104, "src": "8032:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog storage ref)" } }, "id": 433, "indexExpression": { "argumentTypes": null, "id": 432, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 389, "src": "8041:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8032:19:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "id": 434, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 4441, "src": "8032:25:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 435, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 385, "src": "8061:6:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "8032:35:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "53454e4445525f49535f4e4f545f4f574e4552", "id": 437, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8069:21:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ed2ac138795566bb3f7a6da0d363f641a49539fd4032423726d384e9e7e1bb89", "typeString": "literal_string \"SENDER_IS_NOT_OWNER\"" }, "value": "SENDER_IS_NOT_OWNER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_ed2ac138795566bb3f7a6da0d363f641a49539fd4032423726d384e9e7e1bb89", "typeString": "literal_string \"SENDER_IS_NOT_OWNER\"" } ], "id": 430, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "8024:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 438, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8024:67:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 439, "nodeType": "ExpressionStatement", "src": "8024:67:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 441, "name": "catalogs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104, "src": "8171:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog storage ref)" } }, "id": 443, "indexExpression": { "argumentTypes": null, "id": 442, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 389, "src": "8180:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8171:19:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "id": 444, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "apis", "nodeType": "MemberAccess", "referencedDeclaration": 4451, "src": "8171:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Api_$4435_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Api storage ref)" } }, "id": 446, "indexExpression": { "argumentTypes": null, "id": 445, "name": "apiId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 391, "src": "8196:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8171:31:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Api_$4435_storage", "typeString": "struct XBRTypes.Api storage ref" } }, "id": 447, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "published", "nodeType": "MemberAccess", "referencedDeclaration": 4428, "src": "8171:41:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 448, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8216:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8171:46:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4150495f414c52454144595f455849535453", "id": 450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8219:20:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7c657be8fc2714952eea5446c329abc68b3ed417f1fda4e0af704df6427d9c71", "typeString": "literal_string \"API_ALREADY_EXISTS\"" }, "value": "API_ALREADY_EXISTS" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_7c657be8fc2714952eea5446c329abc68b3ed417f1fda4e0af704df6427d9c71", "typeString": "literal_string \"API_ALREADY_EXISTS\"" } ], "id": 440, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "8163:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 451, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8163:77:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 452, "nodeType": "ExpressionStatement", "src": "8163:77:1" }, { "expression": { "argumentTypes": null, "id": 466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 453, "name": "catalogs", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104, "src": "8292:8:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Catalog_$4452_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Catalog storage ref)" } }, "id": 455, "indexExpression": { "argumentTypes": null, "id": 454, "name": "catalogId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 389, "src": "8301:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8292:19:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Catalog_$4452_storage", "typeString": "struct XBRTypes.Catalog storage ref" } }, "id": 456, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "apis", "nodeType": "MemberAccess", "referencedDeclaration": 4451, "src": "8292:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Api_$4435_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Api storage ref)" } }, "id": 458, "indexExpression": { "argumentTypes": null, "id": 457, "name": "apiId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 391, "src": "8317:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8292:31:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Api_$4435_storage", "typeString": "struct XBRTypes.Api storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 461, "name": "published", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 387, "src": "8339:9:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 462, "name": "schema", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 393, "src": "8350:6:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 463, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 395, "src": "8358:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 464, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 397, "src": "8364:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 459, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "8326:8:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Api", "nodeType": "MemberAccess", "referencedDeclaration": 4435, "src": "8326:12:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Api_$4435_storage_ptr_$", "typeString": "type(struct XBRTypes.Api storage pointer)" } }, "id": 465, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8326:48:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Api_$4435_memory", "typeString": "struct XBRTypes.Api memory" } }, "src": "8292:82:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Api_$4435_storage", "typeString": "struct XBRTypes.Api storage ref" } }, "id": 467, "nodeType": "ExpressionStatement", "src": "8292:82:1" } ] }, "documentation": null, "id": 469, "implemented": true, "kind": "function", "modifiers": [], "name": "_publishApi", "nodeType": "FunctionDefinition", "parameters": { "id": 398, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 385, "name": "member", "nodeType": "VariableDeclaration", "scope": 469, "src": "7449:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 384, "name": "address", "nodeType": "ElementaryTypeName", "src": "7449:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 387, "name": "published", "nodeType": "VariableDeclaration", "scope": 469, "src": "7465:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 386, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7465:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 389, "name": "catalogId", "nodeType": "VariableDeclaration", "scope": 469, "src": "7484:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 388, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7484:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 391, "name": "apiId", "nodeType": "VariableDeclaration", "scope": 469, "src": "7503:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 390, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7503:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 393, "name": "schema", "nodeType": "VariableDeclaration", "scope": 469, "src": "7526:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 392, "name": "string", "nodeType": "ElementaryTypeName", "src": "7526:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 395, "name": "meta", "nodeType": "VariableDeclaration", "scope": 469, "src": "7548:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 394, "name": "string", "nodeType": "ElementaryTypeName", "src": "7548:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 397, "name": "signature", "nodeType": "VariableDeclaration", "scope": 469, "src": "7568:22:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 396, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7568:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "7448:143:1" }, "returnParameters": { "id": 399, "nodeType": "ParameterList", "parameters": [], "src": "7600:0:1" }, "scope": 470, "src": "7427:954:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" } ], "scope": 471, "src": "1127:7256:1" } ], "src": "810:7574:1" }, "compiler": { "name": "solc", "version": "0.5.16+commit.9c3226ce.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.1.0", "updatedAt": "2020-04-13T15:29:57.141Z", "devdoc": { "methods": { "addMaintainer(address)": { "params": { "account": "The account to grant maintainer rights to." } }, "createCatalog(bytes16,string,string)": { "params": { "catalogId": "The ID of the new catalog.", "meta": "Multihash for optional catalog meta-data.", "terms": "Multihash for terms that apply to the catalog and to all APIs as published to this catalog." } }, "createCatalogFor(address,uint256,bytes16,string,string,bytes)": { "params": { "catalogId": "The ID of the new catalog.", "created": "Block number when the catalog was created.", "member": "Member that creates the catalog and will become owner.", "meta": "Multihash for optional catalog meta-data.", "signature": "Signature created by the member.", "terms": "Multihash for terms that apply to the catalog and to all APIs as published to this catalog." } }, "isMaintainer(address)": { "params": { "account": "The account to check." }, "return": "`true` if the account is maintainer, otherwise `false`." }, "publishApi(bytes16,bytes16,string,string)": { "params": { "apiId": "The ID of the new API (must be unique).", "catalogId": "The ID of the XBR API catalog to publish the API to.", "meta": "Multihash for optional meta-data.", "schema": "Multihash of API Flatbuffers schema (required)." } }, "publishApiFor(address,uint256,bytes16,bytes16,string,string,bytes)": { "params": { "apiId": "The ID of the new API (must be unique).", "catalogId": "The ID of the XBR API catalog to publish the API to.", "member": "Member that is publishing the API.", "meta": "Multihash for optional meta-data.", "published": "Block number when the API was published.", "schema": "Multihash of API Flatbuffers schema (required).", "signature": "Signature created by the member." } } } }, "userdoc": { "methods": { "addMaintainer(address)": { "notice": "Add a new maintainer to the list of maintainers." }, "createCatalog(bytes16,string,string)": { "notice": "Create a new XBR catalog. The sender of the transaction must be XBR network member and automatically becomes owner of the new catalog. " }, "createCatalogFor(address,uint256,bytes16,string,string,bytes)": { "notice": "Create a new XBR catalog for a member. The member must be XBR network member, must have signed the transaction data, and will become owner of the new catalog. /// Note: This version uses pre-signed data where the actual blockchain transaction is submitted by a gateway paying the respective gas (in ETH) for the blockchain transaction. " }, "isMaintainer(address)": { "notice": "Check if the given address is currently a maintainer." }, "publishApi(bytes16,bytes16,string,string)": { "notice": "Publish the given API to the specified catalog. " }, "publishApiFor(address,uint256,bytes16,bytes16,string,string,bytes)": { "notice": "Publish the given API to the specified catalog. /// Note: This version uses pre-signed data where the actual blockchain transaction is submitted by a gateway paying the respective gas (in ETH) for the blockchain transaction. " }, "renounceMaintainer()": { "notice": "Give away maintainer rights." } }, "notice": "XBR API catalogs contract." } }