{ "contractName": "XBRNetwork", "abi": [ { "inputs": [ { "internalType": "address", "name": "networkToken", "type": "address" }, { "internalType": "address", "name": "networkOrganization", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "coin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isPayable", "type": "bool" } ], "name": "CoinChanged", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "member", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "changed", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "eula", "type": "string" }, { "indexed": false, "internalType": "string", "name": "profile", "type": "string" }, { "indexed": false, "internalType": "enum XBRTypes.MemberLevel", "name": "level", "type": "uint8" } ], "name": "MemberChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "member", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "registered", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "eula", "type": "string" }, { "indexed": false, "internalType": "string", "name": "profile", "type": "string" }, { "indexed": false, "internalType": "enum XBRTypes.MemberLevel", "name": "level", "type": "uint8" } ], "name": "MemberRegistered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "member", "type": "address" } ], "name": "MemberRetired", "type": "event" }, { "constant": true, "inputs": [], "name": "ANYADR", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "PRESIGNED_TXN_MAX_AGE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addMaintainer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "coins", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "contribution", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "eula", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "members", "outputs": [ { "internalType": "uint256", "name": "registered", "type": "uint256" }, { "internalType": "string", "name": "eula", "type": "string" }, { "internalType": "string", "name": "profile", "type": "string" }, { "internalType": "enum XBRTypes.MemberLevel", "name": "level", "type": "uint8" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "organization", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "renounceMaintainer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "token", "outputs": [ { "internalType": "contract XBRToken", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "verifyingChain", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "verifyingContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "string", "name": "networkEula", "type": "string" }, { "internalType": "string", "name": "memberProfile", "type": "string" } ], "name": "registerMember", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "member", "type": "address" }, { "internalType": "uint256", "name": "registered", "type": "uint256" }, { "internalType": "string", "name": "networkEula", "type": "string" }, { "internalType": "string", "name": "memberProfile", "type": "string" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "registerMemberFor", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "networkToken", "type": "address" } ], "name": "setNetworkToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "networkOrganization", "type": "address" } ], "name": "setNetworkOrganization", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "member", "type": "address" }, { "internalType": "enum XBRTypes.MemberLevel", "name": "level", "type": "uint8" } ], "name": "setMemberLevel", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "coin", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "isPayable", "type": "bool" } ], "name": "setCoinPayable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "uint256", "name": "networkContribution", "type": "uint256" } ], "name": "setContribution", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOrganization\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isPayable\",\"type\":\"bool\"}],\"name\":\"CoinChanged\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"changed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"eula\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"profile\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"enum XBRTypes.MemberLevel\",\"name\":\"level\",\"type\":\"uint8\"}],\"name\":\"MemberChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"registered\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"eula\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"profile\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"enum XBRTypes.MemberLevel\",\"name\":\"level\",\"type\":\"uint8\"}],\"name\":\"MemberRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"MemberRetired\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"ANYADR\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRESIGNED_TXN_MAX_AGE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMaintainer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"coins\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"contribution\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"eula\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"members\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"registered\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"eula\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"profile\",\"type\":\"string\"},{\"internalType\":\"enum XBRTypes.MemberLevel\",\"name\":\"level\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"organization\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"networkEula\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"memberProfile\",\"type\":\"string\"}],\"name\":\"registerMember\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"registered\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"networkEula\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"memberProfile\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"registerMemberFor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMaintainer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isPayable\",\"type\":\"bool\"}],\"name\":\"setCoinPayable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"networkContribution\",\"type\":\"uint256\"}],\"name\":\"setContribution\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"enum XBRTypes.MemberLevel\",\"name\":\"level\",\"type\":\"uint8\"}],\"name\":\"setMemberLevel\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkOrganization\",\"type\":\"address\"}],\"name\":\"setNetworkOrganization\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"networkToken\",\"type\":\"address\"}],\"name\":\"setNetworkToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract XBRToken\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"verifyingChain\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"verifyingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"addMaintainer(address)\":{\"params\":{\"account\":\"The account to grant maintainer rights to.\"}},\"constructor\":{\"params\":{\"networkOrganization\":\"The XBR network organization address.\",\"networkToken\":\"The token to run this network itself on. Note that XBR data markets can use any ERC20 token (enabled in the ``coins`` mapping of this contract) as a means of payment in the respective market.\"}},\"isMaintainer(address)\":{\"params\":{\"account\":\"The account to check.\"},\"return\":\"`true` if the account is maintainer, otherwise `false`.\"},\"registerMember(string,string)\":{\"params\":{\"memberProfile\":\"Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.\",\"networkEula\":\"Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS.\"}},\"registerMemberFor(address,uint256,string,string,bytes)\":{\"params\":{\"member\":\"Address of the registering (new) member.\",\"memberProfile\":\"Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.\",\"networkEula\":\"Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS.\",\"registered\":\"Block number at which the registering member has created the signature.\",\"signature\":\"EIP712 signature, signed by the registering member.\"}},\"setCoinPayable(address,address,bool)\":{\"params\":{\"coin\":\"The address of the ERC20 coin to change.\",\"isPayable\":\"When true, the coin can be specified when opening a new data market.\"}},\"setMemberLevel(address,uint8)\":{\"params\":{\"level\":\"The member level to set the member to.\",\"member\":\"The address of the XBR network member to override member level.\"}},\"setNetworkOrganization(address)\":{\"params\":{\"networkOrganization\":\"The XBR network organization address.\"}},\"setNetworkToken(address)\":{\"params\":{\"networkToken\":\"The token to run this network itself on. Note that XBR data markets can use any ERC20 token (enabled in the ``coins`` mapping of this contract) as a means of payment in the respective market.\"}}}},\"userdoc\":{\"methods\":{\"addMaintainer(address)\":{\"notice\":\"Add a new maintainer to the list of maintainers.\"},\"constructor\":\"Create the XBR network. \",\"isMaintainer(address)\":{\"notice\":\"Check if the given address is currently a maintainer.\"},\"registerMember(string,string)\":{\"notice\":\"Register the sender of this transaction in the XBR network. All XBR stakeholders, namely data providers (\\\"sellers\\\"), data consumers (\\\"buyers\\\") and data market operators, must be registered in the XBR network. \"},\"registerMemberFor(address,uint256,string,string,bytes)\":{\"notice\":\"Register the specified new member in the XBR Network. All XBR stakeholders, namely data providers (\\\"sellers\\\"), data consumers (\\\"buyers\\\") and data market operators, must be registered in the XBR network. /// 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.\"},\"setCoinPayable(address,address,bool)\":{\"notice\":\"Set ERC20 coins as usable as a means of payment when opening data markets. \"},\"setMemberLevel(address,uint8)\":{\"notice\":\"Set (override manually) the member level of a XBR Network member. Being able to do so currently serves two purposes: /// - having a last resort to handle situation where members violated the EULA - being able to manually patch things in error/bug cases \"},\"setNetworkOrganization(address)\":{\"notice\":\"Set the XBR network organization address. \"},\"setNetworkToken(address)\":{\"notice\":\"Set the XBR network organization address. \"}},\"notice\":\"The `XBR Network `__ contract is the on-chain anchor of and the entry point to the XBR protocol.\"}},\"settings\":{\"compilationTarget\":{\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRNetwork.sol\":\"XBRNetwork\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/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": "0x6105a060015560e0604052602e60808181529062001f2e60a03980516200002f91600491602090910190620003d3565b503480156200003d57600080fd5b5060405162001f5c38038062001f5c833981016040819052620000609162000492565b62000074336001600160e01b03620002cf16565b466002819055600380546001600160a01b03199081163017909155600680546001600160a01b03868116919093168117909155600081815260096020908152604080832085845290915290819020805460ff19166001908117909155905191927f445f815edb2acb62cd4694fd85a51a33f322a9a4420f68a5667c45d7435861a192620001029290620005bc565b60405180910390a2600654604080516318160ddd60e01b815290516064926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156200015057600080fd5b505afa15801562000165573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200018b9190810190620004d1565b601e02816200019657fe5b04600555600780546001600160a01b0319166001600160a01b0384161790556040805160a0810182524280825282516020808201855260008083528185019283528551808301875281815285870152600260608601528551808301875281815260808601523381526008825294909420835181559051805192949192620002249260018501920190620003d3565b506040820151805162000242916002840191602090910190620003d3565b50606082015160038201805460ff191660018360058111156200026157fe5b02179055506080820151805162000283916004840191602090910190620003d3565b50506040513391507f10e02cc5ae33a370a3d23ce6e20ed94923f69eb718276f6c13cc36e5cf19c17490620002bd90849060029062000606565b60405180910390a250505050620006c4565b620002ea8160006200032160201b62000d9c1790919060201c565b6040516001600160a01b038216907f1390a149489c82e9e2e89927bdb17ad1ea3f0cc314fce06c96369721d3afb8f090600090a250565b6200033682826001600160e01b036200038416565b156200035f5760405162461bcd60e51b81526004016200035690620005e2565b60405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620003af5760405162461bcd60e51b81526004016200035690620005f4565b506001600160a01b03811660009081526020839052604090205460ff165b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200041657805160ff191683800117855562000446565b8280016001018555821562000446579182015b828111156200044657825182559160200191906001019062000429565b506200045492915062000458565b5090565b6200047591905b808211156200045457600081556001016200045f565b90565b8051620003cd81620006a2565b8051620003cd81620006b9565b60008060408385031215620004a657600080fd5b6000620004b4858562000478565b9250506020620004c78582860162000478565b9150509250929050565b600060208284031215620004e457600080fd5b6000620004f2848462000485565b949350505050565b620005058162000658565b82525050565b620005058162000665565b620005058162000687565b600062000530601f836200064f565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b60006200056b6022836200064f565b7f526f6c65733a206163636f756e7420697320746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000620003cd6000836200064f565b620005058162000475565b60408101620005cc8285620004fa565b620005db60208301846200050b565b9392505050565b60208082528101620003cd8162000521565b60208082528101620003cd816200055c565b60808101620006168285620005b1565b81810360208301526200062981620005a2565b905081810360408301526200063e81620005a2565b9050620005db606083018462000516565b90815260200190565b6000620003cd826200067b565b151590565b80620006768162000694565b919050565b6001600160a01b031690565b6000620003cd826200066a565b600681106200069f57fe5b50565b620006ad8162000658565b81146200069f57600080fd5b620006ad8162000475565b61185a80620006d46000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80636b453c1f116100ad578063a8f7d8ea11610071578063a8f7d8ea1461024f578063b4cd239114610264578063dd57366a1461026c578063e94185bf1461027f578063fc0c546a146102925761012c565b80636b453c1f146101fb57806382d9e98b1461020e57806388017e051461022157806390fef8ca14610234578063a787d61b146102475761012c565b8063314db06b116100f4578063314db06b146101b95780633adc728d146101c357806350405fdf146101cb57806350520b1f146101de57806359c8e603146101f35761012c565b8063010493d91461013157806303e602361461015a57806308ae4b0c1461016d57806317107c491461019157806323bd4d7a146101a4575b600080fd5b61014461013f366004610f19565b6102a7565b604051610151919061153d565b60405180910390f35b610144610168366004610f3f565b6102fc565b61018061017b366004610f19565b61031c565b60405161015195949392919061165c565b61014461019f366004610f19565b6104f0565b6101ac610585565b60405161015191906114e0565b6101c1610594565b005b6101ac61059f565b6101446101d9366004610fc6565b6105aa565b6101e66106e6565b604051610151919061160b565b6101e66106ec565b6101c1610209366004610f19565b6106f2565b6101c161021c366004610ff6565b610710565b61014461022f366004611130565b610841565b6101c16102423660046110d1565b610910565b6101ac610930565b61025761093f565b6040516101519190611559565b6101e66109cd565b61014461027a366004610f19565b6109d3565b61014461028d366004610f79565b6109e5565b61029a610aab565b604051610151919061154b565b60006102b2336109d3565b6102bb57600080fd5b6007546001600160a01b038381169116146102f35750600780546001600160a01b0319166001600160a01b03831617905560016102f7565b5060005b919050565b600960209081526000928352604080842090915290825290205460ff1681565b6008602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f8101869004860283018601909652858252919492939092908301828280156103b95780601f1061038e576101008083540402835291602001916103b9565b820191906000526020600020905b81548152906001019060200180831161039c57829003601f168201915b50505060028085018054604080516020601f600019610100600187161502019094169590950492830185900485028101850190915281815295969594509092509083018282801561044b5780601f106104205761010080835404028352916020019161044b565b820191906000526020600020905b81548152906001019060200180831161042e57829003601f168201915b50505050600383015460048401805460408051602060026101006001861615026000190190941693909304601f8101849004840282018401909252818152959660ff90941695939450908301828280156104e65780601f106104bb576101008083540402835291602001916104e6565b820191906000526020600020905b8154815290600101906020018083116104c957829003601f168201915b5050505050905085565b60006104fb336109d3565b61050457600080fd5b6006546001600160a01b038381169116146102f35750600680546001600160a01b0390811660009081526009602081815260408084208585528252808420805460ff1990811690915586546001600160a01b0319168887169081179097559584529181528183209383529290925220805490911660019081179091556102f7565b6007546001600160a01b031681565b61059d33610aba565b565b6001600160a01b0381565b60006105b5336109d3565b6105be57600080fd5b3360009081526008602052604090206003015460ff1660058111156105df57fe5b6106045760405162461bcd60e51b81526004016105fb906115bb565b60405180910390fd5b81600581111561061057fe5b6001600160a01b03841660009081526008602052604090206003015460ff16600581111561063a57fe5b146106dc576001600160a01b0383166000908152600860205260409020600301805483919060ff1916600183600581111561067157fe5b02179055506001600160a01b0383166000818152600860205260409081902090517f8069fd4b6cfc9bd059e9be9e81f8b7b6413f90bcc179e82bc7f201ec03ac8c1e916106cc914291600181019160029091019088906116bc565b60405180910390a25060016106e0565b5060005b92915050565b60055481565b60025481565b6106fb336109d3565b61070457600080fd5b61070d81610b02565b50565b6040805160c08101825260025481526003546001600160a01b039081166020830152871681830152606081018690526080810185905260a081018490529051633402ce0160e01b815273__XBRTypes______________________________91633402ce01916107859189918690600401611509565b60206040518083038186803b15801561079d57600080fd5b505af41580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107d591908101906110b3565b6107f15760405162461bcd60e51b81526004016105fb9061158b565b438411158015610811575060015443111580610811575060015443038410155b61082d5760405162461bcd60e51b81526004016105fb906115cb565b61083a8585858585610b4a565b5050505050565b600061084c336109d3565b61085557600080fd5b600660009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156108a357600080fd5b505afa1580156108b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108db919081019061114e565b8211156108fa5760405162461bcd60e51b81526004016105fb906115ab565b81600554146102f35750600581905560016102f7565b61092c3343848460405180602001604052806000815250610b4a565b5050565b6003546001600160a01b031681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109c55780601f1061099a576101008083540402835291602001916109c5565b820191906000526020600020905b8154815290600101906020018083116109a857829003601f168201915b505050505081565b60015481565b60006106e0818363ffffffff610d0c16565b60006109f0336109d3565b6109f957600080fd5b6001600160a01b0380851660009081526009602090815260408083209387168352929052205460ff16151582151514610aa0576001600160a01b0384811660008181526009602090815260408083209488168352939052829020805460ff191685151517905590517f445f815edb2acb62cd4694fd85a51a33f322a9a4420f68a5667c45d7435861a190610a9090869086906114ee565b60405180910390a2506001610aa4565b5060005b9392505050565b6006546001600160a01b031681565b610acb60008263ffffffff610d5416565b6040516001600160a01b038216907fa7b36d52bea726c3aa90d876d0e52a1089a347b3e3408a03f08eae32f96fdbb490600090a250565b610b1360008263ffffffff610d9c16565b6040516001600160a01b038216907f1390a149489c82e9e2e89927bdb17ad1ea3f0cc314fce06c96369721d3afb8f090600090a250565b6001600160a01b03851660009081526008602052604090206003015460ff166005811115610b7457fe5b60ff1615610b945760405162461bcd60e51b81526004016105fb9061159b565b6004604051602001610ba6919061156a565b6040516020818303038152906040528051906020012083604051602001610bcd9190611559565b6040516020818303038152906040528051906020012014610c005760405162461bcd60e51b81526004016105fb906115fb565b6040805160a08101825285815260208101859052908101839052606081016001815260209081018390526001600160a01b03871660009081526008825260409020825181558282015180519192610c5f92600185019290910190610de8565b5060408201518051610c7b916002840191602090910190610de8565b50606082015160038201805460ff19166001836005811115610c9957fe5b021790555060808201518051610cb9916004840191602090910190610de8565b50905050846001600160a01b03167f10e02cc5ae33a370a3d23ce6e20ed94923f69eb718276f6c13cc36e5cf19c1748585856001604051610cfd9493929190611619565b60405180910390a25050505050565b60006001600160a01b038216610d345760405162461bcd60e51b81526004016105fb906115eb565b506001600160a01b03166000908152602091909152604090205460ff1690565b610d5e8282610d0c565b610d7a5760405162461bcd60e51b81526004016105fb906115db565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b610da68282610d0c565b15610dc35760405162461bcd60e51b81526004016105fb9061157b565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610e2957805160ff1916838001178555610e56565b82800160010185558215610e56579182015b82811115610e56578251825591602001919060010190610e3b565b50610e62929150610e66565b5090565b610e8091905b80821115610e625760008155600101610e6c565b90565b80356106e0816117e4565b80356106e0816117f8565b80516106e0816117f8565b600082601f830112610eb557600080fd5b8135610ec8610ec382611717565b6116f0565b91508082526020830160208301858383011115610ee457600080fd5b610eef838284611794565b50505092915050565b80356106e081611801565b80356106e08161180e565b80516106e08161180e565b600060208284031215610f2b57600080fd5b6000610f378484610e83565b949350505050565b60008060408385031215610f5257600080fd5b6000610f5e8585610e83565b9250506020610f6f85828601610e83565b9150509250929050565b600080600060608486031215610f8e57600080fd5b6000610f9a8686610e83565b9350506020610fab86828701610e83565b9250506040610fbc86828701610e8e565b9150509250925092565b60008060408385031215610fd957600080fd5b6000610fe58585610e83565b9250506020610f6f85828601610ef8565b600080600080600060a0868803121561100e57600080fd5b600061101a8888610e83565b955050602061102b88828901610f03565b945050604086013567ffffffffffffffff81111561104857600080fd5b61105488828901610ea4565b935050606086013567ffffffffffffffff81111561107157600080fd5b61107d88828901610ea4565b925050608086013567ffffffffffffffff81111561109a57600080fd5b6110a688828901610ea4565b9150509295509295909350565b6000602082840312156110c557600080fd5b6000610f378484610e99565b600080604083850312156110e457600080fd5b823567ffffffffffffffff8111156110fb57600080fd5b61110785828601610ea4565b925050602083013567ffffffffffffffff81111561112457600080fd5b610f6f85828601610ea4565b60006020828403121561114257600080fd5b6000610f378484610f03565b60006020828403121561116057600080fd5b6000610f378484610f0e565b61117581611758565b82525050565b61117581611763565b600061118f8261174b565b611199818561174f565b93506111a98185602086016117a0565b6111b2816117d0565b9093019392505050565b6111758161177e565b61117581611789565b6000815460018116600081146111eb576001811461121157611250565b607f60028304166111fc818761174f565b60ff1984168152955050602085019250611250565b6002820461121f818761174f565b955061122a8561173f565b60005b828110156112495781548882015260019091019060200161122d565b8701945050505b505092915050565b6000611265601f8361174f565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b600061129e60218361174f565b7f494e56414c49445f4d454d4245525f52454749535445525f5349474e415455528152604560f81b602082015260400192915050565b60006112e160198361174f565b7f4d454d4245525f414c52454144595f5245474953544552454400000000000000815260200192915050565b600061131a60148361174f565b7324a72b20a624a22fa1a7a72a2924a12aaa24a7a760611b815260200192915050565b600061134a600e8361174f565b6d2727afa9aaa1a42fa6a2a6a122a960911b815260200192915050565b6000611374601f8361174f565b7f494e56414c49445f524547495354455245445f424c4f434b5f4e554d42455200815260200192915050565b60006113ad60218361174f565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c8152606560f81b602082015260400192915050565b60006113f060228361174f565b7f526f6c65733a206163636f756e7420697320746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000611434600c8361174f565b6b494e56414c49445f45554c4160a01b815260200192915050565b805160009060c084019061146385826114d7565b506020830151611476602086018261116c565b506040830151611489604086018261116c565b50606083015161149c60608601826114d7565b50608083015184820360808601526114b48282611184565b91505060a083015184820360a08601526114ce8282611184565b95945050505050565b61117581610e80565b602081016106e0828461116c565b604081016114fc828561116c565b610aa4602083018461117b565b60608101611517828661116c565b8181036020830152611529818561144f565b905081810360408301526114ce8184611184565b602081016106e0828461117b565b602081016106e082846111bc565b60208082528101610aa48184611184565b60208082528101610aa481846111ce565b602080825281016106e081611258565b602080825281016106e081611291565b602080825281016106e0816112d4565b602080825281016106e08161130d565b602080825281016106e08161133d565b602080825281016106e081611367565b602080825281016106e0816113a0565b602080825281016106e0816113e3565b602080825281016106e081611427565b602081016106e082846114d7565b6080810161162782876114d7565b81810360208301526116398186611184565b9050818103604083015261164d8185611184565b90506114ce60608301846111c5565b60a0810161166a82886114d7565b818103602083015261167c8187611184565b905081810360408301526116908186611184565b905061169f60608301856111c5565b81810360808301526116b18184611184565b979650505050505050565b608081016116ca82876114d7565b81810360208301526116dc81866111ce565b9050818103604083015261164d81856111ce565b60405181810167ffffffffffffffff8111828210171561170f57600080fd5b604052919050565b600067ffffffffffffffff82111561172e57600080fd5b506020601f91909101601f19160190565b60009081526020902090565b5190565b90815260200190565b60006106e082611772565b151590565b806102f7816117da565b6001600160a01b031690565b60006106e082611758565b60006106e082611768565b82818337506000910152565b60005b838110156117bb5781810151838201526020016117a3565b838111156117ca576000848401525b50505050565b601f01601f191690565b6006811061070d57fe5b6117ed81611758565b811461070d57600080fd5b6117ed81611763565b6006811061070d57600080fd5b6117ed81610e8056fea365627a7a72315820211eddc941385a77878abf2337793cc93c26e53f9068c7d91095ee0481cfe7346c6578706572696d656e74616cf564736f6c63430005100040516d563165654465787453645572525551703974555846385364765665796b616977594c67725848485679554c59", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80636b453c1f116100ad578063a8f7d8ea11610071578063a8f7d8ea1461024f578063b4cd239114610264578063dd57366a1461026c578063e94185bf1461027f578063fc0c546a146102925761012c565b80636b453c1f146101fb57806382d9e98b1461020e57806388017e051461022157806390fef8ca14610234578063a787d61b146102475761012c565b8063314db06b116100f4578063314db06b146101b95780633adc728d146101c357806350405fdf146101cb57806350520b1f146101de57806359c8e603146101f35761012c565b8063010493d91461013157806303e602361461015a57806308ae4b0c1461016d57806317107c491461019157806323bd4d7a146101a4575b600080fd5b61014461013f366004610f19565b6102a7565b604051610151919061153d565b60405180910390f35b610144610168366004610f3f565b6102fc565b61018061017b366004610f19565b61031c565b60405161015195949392919061165c565b61014461019f366004610f19565b6104f0565b6101ac610585565b60405161015191906114e0565b6101c1610594565b005b6101ac61059f565b6101446101d9366004610fc6565b6105aa565b6101e66106e6565b604051610151919061160b565b6101e66106ec565b6101c1610209366004610f19565b6106f2565b6101c161021c366004610ff6565b610710565b61014461022f366004611130565b610841565b6101c16102423660046110d1565b610910565b6101ac610930565b61025761093f565b6040516101519190611559565b6101e66109cd565b61014461027a366004610f19565b6109d3565b61014461028d366004610f79565b6109e5565b61029a610aab565b604051610151919061154b565b60006102b2336109d3565b6102bb57600080fd5b6007546001600160a01b038381169116146102f35750600780546001600160a01b0319166001600160a01b03831617905560016102f7565b5060005b919050565b600960209081526000928352604080842090915290825290205460ff1681565b6008602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f8101869004860283018601909652858252919492939092908301828280156103b95780601f1061038e576101008083540402835291602001916103b9565b820191906000526020600020905b81548152906001019060200180831161039c57829003601f168201915b50505060028085018054604080516020601f600019610100600187161502019094169590950492830185900485028101850190915281815295969594509092509083018282801561044b5780601f106104205761010080835404028352916020019161044b565b820191906000526020600020905b81548152906001019060200180831161042e57829003601f168201915b50505050600383015460048401805460408051602060026101006001861615026000190190941693909304601f8101849004840282018401909252818152959660ff90941695939450908301828280156104e65780601f106104bb576101008083540402835291602001916104e6565b820191906000526020600020905b8154815290600101906020018083116104c957829003601f168201915b5050505050905085565b60006104fb336109d3565b61050457600080fd5b6006546001600160a01b038381169116146102f35750600680546001600160a01b0390811660009081526009602081815260408084208585528252808420805460ff1990811690915586546001600160a01b0319168887169081179097559584529181528183209383529290925220805490911660019081179091556102f7565b6007546001600160a01b031681565b61059d33610aba565b565b6001600160a01b0381565b60006105b5336109d3565b6105be57600080fd5b3360009081526008602052604090206003015460ff1660058111156105df57fe5b6106045760405162461bcd60e51b81526004016105fb906115bb565b60405180910390fd5b81600581111561061057fe5b6001600160a01b03841660009081526008602052604090206003015460ff16600581111561063a57fe5b146106dc576001600160a01b0383166000908152600860205260409020600301805483919060ff1916600183600581111561067157fe5b02179055506001600160a01b0383166000818152600860205260409081902090517f8069fd4b6cfc9bd059e9be9e81f8b7b6413f90bcc179e82bc7f201ec03ac8c1e916106cc914291600181019160029091019088906116bc565b60405180910390a25060016106e0565b5060005b92915050565b60055481565b60025481565b6106fb336109d3565b61070457600080fd5b61070d81610b02565b50565b6040805160c08101825260025481526003546001600160a01b039081166020830152871681830152606081018690526080810185905260a081018490529051633402ce0160e01b815273__XBRTypes______________________________91633402ce01916107859189918690600401611509565b60206040518083038186803b15801561079d57600080fd5b505af41580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107d591908101906110b3565b6107f15760405162461bcd60e51b81526004016105fb9061158b565b438411158015610811575060015443111580610811575060015443038410155b61082d5760405162461bcd60e51b81526004016105fb906115cb565b61083a8585858585610b4a565b5050505050565b600061084c336109d3565b61085557600080fd5b600660009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156108a357600080fd5b505afa1580156108b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108db919081019061114e565b8211156108fa5760405162461bcd60e51b81526004016105fb906115ab565b81600554146102f35750600581905560016102f7565b61092c3343848460405180602001604052806000815250610b4a565b5050565b6003546001600160a01b031681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109c55780601f1061099a576101008083540402835291602001916109c5565b820191906000526020600020905b8154815290600101906020018083116109a857829003601f168201915b505050505081565b60015481565b60006106e0818363ffffffff610d0c16565b60006109f0336109d3565b6109f957600080fd5b6001600160a01b0380851660009081526009602090815260408083209387168352929052205460ff16151582151514610aa0576001600160a01b0384811660008181526009602090815260408083209488168352939052829020805460ff191685151517905590517f445f815edb2acb62cd4694fd85a51a33f322a9a4420f68a5667c45d7435861a190610a9090869086906114ee565b60405180910390a2506001610aa4565b5060005b9392505050565b6006546001600160a01b031681565b610acb60008263ffffffff610d5416565b6040516001600160a01b038216907fa7b36d52bea726c3aa90d876d0e52a1089a347b3e3408a03f08eae32f96fdbb490600090a250565b610b1360008263ffffffff610d9c16565b6040516001600160a01b038216907f1390a149489c82e9e2e89927bdb17ad1ea3f0cc314fce06c96369721d3afb8f090600090a250565b6001600160a01b03851660009081526008602052604090206003015460ff166005811115610b7457fe5b60ff1615610b945760405162461bcd60e51b81526004016105fb9061159b565b6004604051602001610ba6919061156a565b6040516020818303038152906040528051906020012083604051602001610bcd9190611559565b6040516020818303038152906040528051906020012014610c005760405162461bcd60e51b81526004016105fb906115fb565b6040805160a08101825285815260208101859052908101839052606081016001815260209081018390526001600160a01b03871660009081526008825260409020825181558282015180519192610c5f92600185019290910190610de8565b5060408201518051610c7b916002840191602090910190610de8565b50606082015160038201805460ff19166001836005811115610c9957fe5b021790555060808201518051610cb9916004840191602090910190610de8565b50905050846001600160a01b03167f10e02cc5ae33a370a3d23ce6e20ed94923f69eb718276f6c13cc36e5cf19c1748585856001604051610cfd9493929190611619565b60405180910390a25050505050565b60006001600160a01b038216610d345760405162461bcd60e51b81526004016105fb906115eb565b506001600160a01b03166000908152602091909152604090205460ff1690565b610d5e8282610d0c565b610d7a5760405162461bcd60e51b81526004016105fb906115db565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b610da68282610d0c565b15610dc35760405162461bcd60e51b81526004016105fb9061157b565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610e2957805160ff1916838001178555610e56565b82800160010185558215610e56579182015b82811115610e56578251825591602001919060010190610e3b565b50610e62929150610e66565b5090565b610e8091905b80821115610e625760008155600101610e6c565b90565b80356106e0816117e4565b80356106e0816117f8565b80516106e0816117f8565b600082601f830112610eb557600080fd5b8135610ec8610ec382611717565b6116f0565b91508082526020830160208301858383011115610ee457600080fd5b610eef838284611794565b50505092915050565b80356106e081611801565b80356106e08161180e565b80516106e08161180e565b600060208284031215610f2b57600080fd5b6000610f378484610e83565b949350505050565b60008060408385031215610f5257600080fd5b6000610f5e8585610e83565b9250506020610f6f85828601610e83565b9150509250929050565b600080600060608486031215610f8e57600080fd5b6000610f9a8686610e83565b9350506020610fab86828701610e83565b9250506040610fbc86828701610e8e565b9150509250925092565b60008060408385031215610fd957600080fd5b6000610fe58585610e83565b9250506020610f6f85828601610ef8565b600080600080600060a0868803121561100e57600080fd5b600061101a8888610e83565b955050602061102b88828901610f03565b945050604086013567ffffffffffffffff81111561104857600080fd5b61105488828901610ea4565b935050606086013567ffffffffffffffff81111561107157600080fd5b61107d88828901610ea4565b925050608086013567ffffffffffffffff81111561109a57600080fd5b6110a688828901610ea4565b9150509295509295909350565b6000602082840312156110c557600080fd5b6000610f378484610e99565b600080604083850312156110e457600080fd5b823567ffffffffffffffff8111156110fb57600080fd5b61110785828601610ea4565b925050602083013567ffffffffffffffff81111561112457600080fd5b610f6f85828601610ea4565b60006020828403121561114257600080fd5b6000610f378484610f03565b60006020828403121561116057600080fd5b6000610f378484610f0e565b61117581611758565b82525050565b61117581611763565b600061118f8261174b565b611199818561174f565b93506111a98185602086016117a0565b6111b2816117d0565b9093019392505050565b6111758161177e565b61117581611789565b6000815460018116600081146111eb576001811461121157611250565b607f60028304166111fc818761174f565b60ff1984168152955050602085019250611250565b6002820461121f818761174f565b955061122a8561173f565b60005b828110156112495781548882015260019091019060200161122d565b8701945050505b505092915050565b6000611265601f8361174f565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b600061129e60218361174f565b7f494e56414c49445f4d454d4245525f52454749535445525f5349474e415455528152604560f81b602082015260400192915050565b60006112e160198361174f565b7f4d454d4245525f414c52454144595f5245474953544552454400000000000000815260200192915050565b600061131a60148361174f565b7324a72b20a624a22fa1a7a72a2924a12aaa24a7a760611b815260200192915050565b600061134a600e8361174f565b6d2727afa9aaa1a42fa6a2a6a122a960911b815260200192915050565b6000611374601f8361174f565b7f494e56414c49445f524547495354455245445f424c4f434b5f4e554d42455200815260200192915050565b60006113ad60218361174f565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c8152606560f81b602082015260400192915050565b60006113f060228361174f565b7f526f6c65733a206163636f756e7420697320746865207a65726f206164647265815261737360f01b602082015260400192915050565b6000611434600c8361174f565b6b494e56414c49445f45554c4160a01b815260200192915050565b805160009060c084019061146385826114d7565b506020830151611476602086018261116c565b506040830151611489604086018261116c565b50606083015161149c60608601826114d7565b50608083015184820360808601526114b48282611184565b91505060a083015184820360a08601526114ce8282611184565b95945050505050565b61117581610e80565b602081016106e0828461116c565b604081016114fc828561116c565b610aa4602083018461117b565b60608101611517828661116c565b8181036020830152611529818561144f565b905081810360408301526114ce8184611184565b602081016106e0828461117b565b602081016106e082846111bc565b60208082528101610aa48184611184565b60208082528101610aa481846111ce565b602080825281016106e081611258565b602080825281016106e081611291565b602080825281016106e0816112d4565b602080825281016106e08161130d565b602080825281016106e08161133d565b602080825281016106e081611367565b602080825281016106e0816113a0565b602080825281016106e0816113e3565b602080825281016106e081611427565b602081016106e082846114d7565b6080810161162782876114d7565b81810360208301526116398186611184565b9050818103604083015261164d8185611184565b90506114ce60608301846111c5565b60a0810161166a82886114d7565b818103602083015261167c8187611184565b905081810360408301526116908186611184565b905061169f60608301856111c5565b81810360808301526116b18184611184565b979650505050505050565b608081016116ca82876114d7565b81810360208301526116dc81866111ce565b9050818103604083015261164d81856111ce565b60405181810167ffffffffffffffff8111828210171561170f57600080fd5b604052919050565b600067ffffffffffffffff82111561172e57600080fd5b506020601f91909101601f19160190565b60009081526020902090565b5190565b90815260200190565b60006106e082611772565b151590565b806102f7816117da565b6001600160a01b031690565b60006106e082611758565b60006106e082611768565b82818337506000910152565b60005b838110156117bb5781810151838201526020016117a3565b838111156117ca576000848401525b50505050565b601f01601f191690565b6006811061070d57fe5b6117ed81611758565b811461070d57600080fd5b6117ed81611763565b6006811061070d57600080fd5b6117ed81610e8056fea365627a7a72315820211eddc941385a77878abf2337793cc93c26e53f9068c7d91095ee0481cfe7346c6578706572696d656e74616cf564736f6c63430005100040", "sourceMap": "2386:4:5:-;2347:43;;2808:69;1261:9776;2808:69;;1261:9776;2808:69;;;1261:9776;2808:69;;;;;;;;;;;;;;;:::i;:::-;;3926:938;8:9:-1;5:2;;;30:1;27;20:12;5:2;3926:938:5;;;;;;;;;;;;;;;;;;;;;1843:26:3;1858:10;-1:-1:-1;;;;;1843:14:3;:26;:::i;:::-;4172:9:5;4200:14;:24;;;4234:17;:33;;-1:-1:-1;;;;;;4234:33:5;;;4262:4;4234:33;;;;4278:5;:30;;-1:-1:-1;;;;;4278:30:5;;;;;;;;;;;;4113:15;4318:19;;;:5;:19;;;;;;;;:27;;;;;;;;;;:34;;-1:-1:-1;;4318:34:5;4234:33;4318:34;;;;;;4367:39;;4278:30;;4367:39;;;;4234:33;4367:39;;;;;;;;;;4432:5;;:19;;;-1:-1:-1;;;4432:19:5;;;;4459:3;;-1:-1:-1;;;;;4432:5:5;;:17;;:19;;;;;;;;;;;;;;:5;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;4432:19:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4432:19:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4432:19:5;;;;;;;;;4454:2;4432:24;:30;;;;;;4417:12;:45;4473:12;:34;;-1:-1:-1;;;;;;4473:34:5;-1:-1:-1;;;;;4473:34:5;;;;;4693:70;;;;;;;;4539:15;4693:70;;;;;;;;;;;-1:-1:-1;4693:70:5;;;;;;;;;;;;;;;;;;;;;;;4729:29;4693:70;;;;;;;;;;;;;;;;;;4679:10;4671:19;;:7;:19;;;;;;:92;;;;;;;;4539:15;;4671:19;;:92;;-1:-1:-1;4671:92:5;;;;;;:::i;:::-;-1:-1:-1;4671:92:5;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4671:92:5;;;;;;;;;-1:-1:-1;;4671:92:5;;;;;;;;;;;;;;;-1:-1:-1;4671:92:5;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;4778:79:5;;4795:10;;-1:-1:-1;4778:79:5;;;;4807:10;;4827:29;;4778:79;;;;;;;;;;3926:938;;;;1261:9776;;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;1261:9776:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1261:9776:5;;;-1:-1:-1;1261:9776:5;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;5:134:-1:-;83:13;;101:33;83:13;101:33;;146:134;224:13;;242:33;224:13;242:33;;287:399;;;419:2;407:9;398:7;394:23;390:32;387:2;;;435:1;432;425:12;387:2;470:1;487:64;543:7;523:9;487:64;;;477:74;;449:108;588:2;606:64;662:7;653:6;642:9;638:22;606:64;;;596:74;;567:109;381:305;;;;;;693:263;;808:2;796:9;787:7;783:23;779:32;776:2;;;824:1;821;814:12;776:2;859:1;876:64;932:7;912:9;876:64;;;866:74;770:186;-1:-1;;;;770:186;963:113;1046:24;1064:5;1046:24;;;1041:3;1034:37;1028:48;;;1083:104;1160:21;1175:5;1160:21;;1194:154;1291:51;1336:5;1291:51;;1356:331;;1516:67;1580:2;1575:3;1516:67;;;1616:33;1596:54;;1678:2;1669:12;;1502:185;-1:-1;;1502:185;1696:371;;1856:67;1920:2;1915:3;1856:67;;;1956:34;1936:55;;-1:-1;;;2020:2;2011:12;;2004:26;2058:2;2049:12;;1842:225;-1:-1;;1842:225;2076:262;;2236:66;2300:1;2295:3;2236:66;;2346:113;2429:24;2447:5;2429:24;;2466:312;2606:2;2591:18;;2620:71;2595:9;2664:6;2620:71;;;2702:66;2764:2;2753:9;2749:18;2740:6;2702:66;;;2577:201;;;;;;2785:407;2976:2;2990:47;;;2961:18;;3051:131;2961:18;3051:131;;3199:407;3390:2;3404:47;;;3375:18;;3465:131;3375:18;3465:131;;3613:963;3975:3;3960:19;;3990:71;3964:9;4034:6;3990:71;;;4109:9;4103:4;4099:20;4094:2;4083:9;4079:18;4072:48;4134:131;4260:4;4134:131;;;4126:139;;4313:9;4307:4;4303:20;4298:2;4287:9;4283:18;4276:48;4338:131;4464:4;4338:131;;;4330:139;;4480:86;4562:2;4551:9;4547:18;4538:6;4480:86;;4584:163;4687:19;;;4736:4;4727:14;;4680:67;4755:91;;4817:24;4835:5;4817:24;;4853:85;4919:13;4912:21;;4895:43;4945:138;5023:5;5029:49;5023:5;5029:49;;;5006:77;;;;5090:121;-1:-1;;;;;5152:54;;5135:76;5297:138;;5390:40;5424:5;5390:40;;5442:107;5527:1;5520:5;5517:12;5507:2;;5533:9;5507:2;5501:48;;5556:117;5625:24;5643:5;5625:24;;;5618:5;5615:35;5605:2;;5664:1;5661;5654:12;5680:117;5749:24;5767:5;5749:24;;5723:74;1261:9776:5;;;;;;", "deployedSourceMap": "1261:9776:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1261:9776:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8834:292;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3473:57;;;;;;;;;:::i;3321:50::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;8338:359;;;;;;;;;:::i;3229:27::-;;;:::i;:::-;;;;;;;;2694:84:3;;;:::i;:::-;;2161:75:5;;;:::i;9575:464::-;;;;;;;;;:::i;3011:27::-;;;:::i;:::-;;;;;;;;2511:29;;;:::i;2533:103:3:-;;;;;;;;;:::i;6427:797:5:-;;;;;;;;;:::i;10646:389::-;;;;;;;;;:::i;5342:178::-;;;;;;;;;:::i;2633:32::-;;;:::i;2808:69::-;;;:::i;:::-;;;;;;;;2347:43;;;:::i;2268:115:3:-;;;;;;;;;:::i;10291:349:5:-;;;;;;;;;:::i;3125:21::-;;;:::i;:::-;;;;;;;;8834:292;8927:4;2020:24:3;2033:10;2020:12;:24::i;:::-;2012:33;;;;;;8978:12:5;;-1:-1:-1;;;;;8947:44:5;;;8978:12;;8947:44;8943:177;;-1:-1:-1;9007:12:5;:34;;-1:-1:-1;;;;;;9007:34:5;-1:-1:-1;;;;;9007:34:5;;;;;-1:-1:-1;9055:11:5;;8943:177;-1:-1:-1;9104:5:5;8943:177;8834:292;;;:::o;3473:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3321:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3321:50:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3321:50:5;;;;;;;;;;;-1:-1:-1;;3321:50:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3321:50:5;;-1:-1:-1;3321:50:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3321:50:5;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3321:50:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3321:50:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8338:359::-;8417:4;2020:24:3;2033:10;2020:12;:24::i;:::-;2012:33;;;;;;8461:5:5;;-1:-1:-1;;;;;8437:30:5;;;8461:5;;8437:30;8433:258;;-1:-1:-1;8497:5:5;;;-1:-1:-1;;;;;8497:5:5;;;8515;8483:21;;;:5;:21;;;;;;;;:29;;;;;;;;:37;;-1:-1:-1;;8483:37:5;;;;;;8534:30;;-1:-1:-1;;;;;;8534:30:5;;;;;;;;;;8578:19;;;;;;;;;:27;;;;;;;;:34;;;;;-1:-1:-1;8578:34:5;;;;;;8626:11;;3229:27;;;-1:-1:-1;;;;;3229:27:5;;:::o;2694:84:3:-;2742:29;2760:10;2742:17;:29::i;:::-;2694:84::o;2161:75:5:-;-1:-1:-1;;;;;2161:75:5;:::o;9575:464::-;9675:4;2020:24:3;2033:10;2020:12;:24::i;:::-;2012:33;;;;;;9712:10:5;9704:19;;;;:7;:19;;;;;:25;;;;;9699:31;;;;;;;;9691:63;;;;-1:-1:-1;;;9691:63:5;;;;;;;;;;;;;;;;;9793:5;9768:30;;;;;;;;-1:-1:-1;;;;;9768:15:5;;;;;;:7;:15;;;;;:21;;;;;:30;;;;;;;;;9764:269;;-1:-1:-1;;;;;9814:15:5;;;;;;:7;:15;;;;;:21;;:29;;9838:5;;9814:21;-1:-1:-1;;9814:29:5;;9838:5;9814:29;;;;;;;;;;;;-1:-1:-1;;;;;;9862:92:5;;9901:15;;;;:7;:15;;;;;;;9862:92;;;;;;9884:15;;9901:20;;;;9923:23;;;;;9948:5;;9862:92;;;;;;;;;;-1:-1:-1;9975:4:5;9968:11;;9764:269;-1:-1:-1;10017:5:5;9764:269;9575:464;;;;:::o;3011:27::-;;;;:::o;2511:29::-;;;;:::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;6427:797:5:-;6657:124;;;;;;;;6687:14;;6657:124;;6703:17;;-1:-1:-1;;;;;6703:17:5;;;6657:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;6633:160;;-1:-1:-1;;;6633:160:5;;:8;;:15;;:160;;6649:6;;6783:9;;6633:160;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6633:160:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6633:160:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6633:160:5;;;;;;;;;6625:206;;;;-1:-1:-1;;;6625:206:5;;;;;;;;;6973:12;6959:10;:26;;:137;;;;;7006:21;;6990:12;:37;;:105;;;;7073:21;;7058:12;:36;7043:10;:52;;6990:105;6951:181;;;;-1:-1:-1;;;6951:181:5;;;;;;;;;7143:74;7159:6;7167:10;7179:11;7192:13;7207:9;7143:15;:74::i;:::-;6427:797;;;;;:::o;10646:389::-;10732:4;2020:24:3;2033:10;2020:12;:24::i;:::-;2012:33;;;;;;10807:5:5;;;;;;;;;-1:-1:-1;;;;;10807:5:5;-1:-1:-1;;;;;10807:17:5;;:19;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10807:19:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10807:19:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10807:19:5;;;;;;;;;10784;:42;;10748:103;;;;-1:-1:-1;;;10748:103:5;;;;;;;;;10881:19;10865:12;;:35;10861:168;;-1:-1:-1;10916:12:5;:34;;;10971:4;10964:11;;5342:178;5440:73;5456:10;5468:12;5482:11;5495:13;5440:73;;;;;;;;;;;;:15;:73::i;:::-;5342:178;;:::o;2633:32::-;;;-1:-1:-1;;;;;2633:32:5;;:::o;2808:69::-;;;;;;;;;;;;;;;-1:-1:-1;;2808:69:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2347:43::-;;;;:::o;2268:115:3:-;2329:4;2352:24;2329:4;2368:7;2352:24;:15;:24;:::i;10291:349:5:-;10395:4;2020:24:3;2033:10;2020:12;:24::i;:::-;2012:33;;;;;;-1:-1:-1;;;;;10415:11:5;;;;;;;:5;:11;;;;;;;;:21;;;;;;;;;;;;:34;;;;;;10411:223;;-1:-1:-1;;;;;10465:11:5;;;;;;;:5;:11;;;;;;;;:21;;;;;;;;;;;:33;;-1:-1:-1;;10465:33:5;;;;;;;10517:38;;;;;;10465:21;;:33;;10517:38;;;;;;;;;;-1:-1:-1;10576:4:5;10569:11;;10411:223;-1:-1:-1;10618:5:5;10411:223;10291:349;;;;;:::o;3125:21::-;;;-1:-1:-1;;;;;3125:21:5;;:::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;2784:131::-;2845:24;:11;2861:7;2845:24;:15;:24;:::i;:::-;2884;;-1:-1:-1;;;;;2884:24:3;;;;;;;;2784:131;:::o;7230:768:5:-;-1:-1:-1;;;;;7451:15:5;;;;;;:7;:15;;;;;:21;;;;;7445:28;;;;;;;;:33;;;7437:71;;;;-1:-1:-1;;;7437:71:5;;;;;;;;;7674:4;7663:16;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7663:16:5;;;7653:27;;;;;;7620:11;7609:23;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7609:23:5;;;7599:34;;;;;;:81;7591:106;;;;-1:-1:-1;;;7591:106:5;;;;;;;;;7757:89;;;;;;;;;;;;;;;;;;;;;;;;;;7807:27;7757:89;;;;;;;;;-1:-1:-1;;;;;7739:15:5;;-1:-1:-1;7739:15:5;;;:7;:15;;;;;:107;;;;;;;;;;:15;;:107;;;;;;;;;;;:::i;:::-;-1:-1:-1;7739:107:5;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7739:107:5;;;;;;;;;-1:-1:-1;;7739:107:5;;;;;;;;;;;;;;;-1:-1:-1;7739:107:5;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;7921:6;-1:-1:-1;;;;;7904:87:5;;7929:10;7941:11;7954:7;7963:27;7904:87;;;;;;;;;;;;;;;;;;7230:768;;;;;:::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;1261:9776:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1261:9776:5;;;-1:-1:-1;1261:9776:5;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:124;206:20;;231:30;206:20;231:30;;273:128;348:13;;366:30;348:13;366:30;;409:440;;510:3;503:4;495:6;491:17;487:27;477:2;;528:1;525;518:12;477:2;565:6;552:20;587:64;602:48;643:6;602:48;;;587:64;;;578:73;;671:6;664:5;657:21;707:4;699:6;695:17;740:4;733:5;729:16;775:3;766:6;761:3;757:16;754:25;751:2;;;792:1;789;782:12;751:2;802:41;836:6;831:3;826;802:41;;;470:379;;;;;;;;857:162;940:20;;965:49;940:20;965:49;;1477:130;1544:20;;1569:33;1544:20;1569:33;;1614:134;1692:13;;1710:33;1692:13;1710:33;;1755:241;;1859:2;1847:9;1838:7;1834:23;1830:32;1827:2;;;1875:1;1872;1865:12;1827:2;1910:1;1927:53;1972:7;1952:9;1927:53;;;1917:63;1821:175;-1:-1;;;;1821:175;2003:366;;;2124:2;2112:9;2103:7;2099:23;2095:32;2092:2;;;2140:1;2137;2130:12;2092:2;2175:1;2192:53;2237:7;2217:9;2192:53;;;2182:63;;2154:97;2282:2;2300:53;2345:7;2336:6;2325:9;2321:22;2300:53;;;2290:63;;2261:98;2086:283;;;;;;2376:485;;;;2511:2;2499:9;2490:7;2486:23;2482:32;2479:2;;;2527:1;2524;2517:12;2479:2;2562:1;2579:53;2624:7;2604:9;2579:53;;;2569:63;;2541:97;2669:2;2687:53;2732:7;2723:6;2712:9;2708:22;2687:53;;;2677:63;;2648:98;2777:2;2795:50;2837:7;2828:6;2817:9;2813:22;2795:50;;;2785:60;;2756:95;2473:388;;;;;;2868:398;;;3005:2;2993:9;2984:7;2980:23;2976:32;2973:2;;;3021:1;3018;3011:12;2973:2;3056:1;3073:53;3118:7;3098:9;3073:53;;;3063:63;;3035:97;3163:2;3181:69;3242:7;3233:6;3222:9;3218:22;3181:69;;3273:1059;;;;;;3474:3;3462:9;3453:7;3449:23;3445:33;3442:2;;;3491:1;3488;3481:12;3442:2;3526:1;3543:53;3588:7;3568:9;3543:53;;;3533:63;;3505:97;3633:2;3651:53;3696:7;3687:6;3676:9;3672:22;3651:53;;;3641:63;;3612:98;3769:2;3758:9;3754:18;3741:32;3793:18;3785:6;3782:30;3779:2;;;3825:1;3822;3815:12;3779:2;3845:63;3900:7;3891:6;3880:9;3876:22;3845:63;;;3835:73;;3720:194;3973:2;3962:9;3958:18;3945:32;3997:18;3989:6;3986:30;3983:2;;;4029:1;4026;4019:12;3983:2;4049:63;4104:7;4095:6;4084:9;4080:22;4049:63;;;4039:73;;3924:194;4177:3;4166:9;4162:19;4149:33;4202:18;4194:6;4191:30;4188:2;;;4234:1;4231;4224:12;4188:2;4254:62;4308:7;4299:6;4288:9;4284:22;4254:62;;;4244:72;;4128:194;3436:896;;;;;;;;;4339:257;;4451:2;4439:9;4430:7;4426:23;4422:32;4419:2;;;4467:1;4464;4457:12;4419:2;4502:1;4519:61;4572:7;4552:9;4519:61;;4603:578;;;4744:2;4732:9;4723:7;4719:23;4715:32;4712:2;;;4760:1;4757;4750:12;4712:2;4795:31;;4846:18;4835:30;;4832:2;;;4878:1;4875;4868:12;4832:2;4898:63;4953:7;4944:6;4933:9;4929:22;4898:63;;;4888:73;;4774:193;5026:2;5015:9;5011:18;4998:32;5050:18;5042:6;5039:30;5036:2;;;5082:1;5079;5072:12;5036:2;5102:63;5157:7;5148:6;5137:9;5133:22;5102:63;;5188:241;;5292:2;5280:9;5271:7;5267:23;5263:32;5260:2;;;5308:1;5305;5298:12;5260:2;5343:1;5360:53;5405:7;5385:9;5360:53;;5436:263;;5551:2;5539:9;5530:7;5526:23;5522:32;5519:2;;;5567:1;5564;5557:12;5519:2;5602:1;5619:64;5675:7;5655:9;5619:64;;5706:113;5789:24;5807:5;5789:24;;;5784:3;5777:37;5771:48;;;6072:104;6149:21;6164:5;6149:21;;6183:359;;6301:38;6333:5;6301:38;;;6351:78;6422:6;6417:3;6351:78;;;6344:85;;6434:52;6479:6;6474:3;6467:4;6460:5;6456:16;6434:52;;;6507:29;6529:6;6507:29;;;6498:39;;;;6281:261;-1:-1;;;6281:261;6891:160;6991:54;7039:5;6991:54;;7058:154;7155:51;7200:5;7155:51;;8286:823;;8405:5;8399:12;8439:1;8428:9;8424:17;8452:1;8447:248;;;;8706:1;8701:402;;;;8417:686;;8447:248;8525:4;8521:1;8510:9;8506:17;8502:28;8544:71;8608:6;8603:3;8544:71;;;-1:-1;;8634:25;;8622:38;;8537:78;-1:-1;;8683:4;8674:14;;;-1:-1;8447:248;;8701:402;8770:1;8759:9;8755:17;8786:71;8850:6;8845:3;8786:71;;;8779:78;;8879:38;8911:5;8879:38;;;8933:1;8941:130;8955:6;8952:1;8949:13;8941:130;;;9014:14;;9001:11;;;8994:35;9061:1;9048:15;;;;8977:4;8970:12;8941:130;;;9085:11;;;-1:-1;;;8417:686;;8375:734;;;;;;9118:331;;9278:67;9342:2;9337:3;9278:67;;;9378:33;9358:54;;9440:2;9431:12;;9264:185;-1:-1;;9264:185;9458:370;;9618:67;9682:2;9677:3;9618:67;;;9718:34;9698:55;;-1:-1;;;9782:2;9773:12;;9766:25;9819:2;9810:12;;9604:224;-1:-1;;9604:224;9837:325;;9997:67;10061:2;10056:3;9997:67;;;10097:27;10077:48;;10153:2;10144:12;;9983:179;-1:-1;;9983:179;10171:320;;10331:67;10395:2;10390:3;10331:67;;;-1:-1;;;10411:43;;10482:2;10473:12;;10317:174;-1:-1;;10317:174;10500:314;;10660:67;10724:2;10719:3;10660:67;;;-1:-1;;;10740:37;;10805:2;10796:12;;10646:168;-1:-1;;10646:168;10823:331;;10983:67;11047:2;11042:3;10983:67;;;11083:33;11063:54;;11145:2;11136:12;;10969:185;-1:-1;;10969:185;11163:370;;11323:67;11387:2;11382:3;11323:67;;;11423:34;11403:55;;-1:-1;;;11487:2;11478:12;;11471:25;11524:2;11515:12;;11309:224;-1:-1;;11309:224;11542:371;;11702:67;11766:2;11761:3;11702:67;;;11802:34;11782:55;;-1:-1;;;11866:2;11857:12;;11850:26;11904:2;11895:12;;11688:225;-1:-1;;11688:225;11922:312;;12082:67;12146:2;12141:3;12082:67;;;-1:-1;;;12162:35;;12225:2;12216:12;;12068:166;-1:-1;;12068:166;12325:1360;12575:23;;12325:1360;;12506:4;12497:14;;;12604:71;12501:3;12575:23;12604:71;;;12526:155;12767:4;12760:5;12756:16;12750:23;12779:71;12844:4;12839:3;12835:14;12821:12;12779:71;;;12691:165;12931:4;12924:5;12920:16;12914:23;12943:71;13008:4;13003:3;12999:14;12985:12;12943:71;;;12866:154;13099:4;13092:5;13088:16;13082:23;13111:71;13176:4;13171:3;13167:14;13153:12;13111:71;;;13030:158;13261:4;13254:5;13250:16;13244:23;13313:3;13307:4;13303:14;13296:4;13291:3;13287:14;13280:38;13333:77;13405:4;13391:12;13333:77;;;13325:85;;13198:224;13498:4;13491:5;13487:16;13481:23;13550:3;13544:4;13540:14;13533:4;13528:3;13524:14;13517:38;13570:77;13642:4;13628:12;13570:77;;;13562:85;12479:1206;-1:-1;;;;;12479:1206;13692:113;13775:24;13793:5;13775:24;;13930:213;14048:2;14033:18;;14062:71;14037:9;14106:6;14062:71;;14150:312;14290:2;14275:18;;14304:71;14279:9;14348:6;14304:71;;;14386:66;14448:2;14437:9;14433:18;14424:6;14386:66;;14469:743;14741:2;14726:18;;14755:79;14730:9;14807:6;14755:79;;;14882:9;14876:4;14872:20;14867:2;14856:9;14852:18;14845:48;14907:138;15040:4;15031:6;14907:138;;;14899:146;;15093:9;15087:4;15083:20;15078:2;15067:9;15063:18;15056:48;15118:84;15197:4;15188:6;15118:84;;15219:201;15331:2;15316:18;;15345:65;15320:9;15383:6;15345:65;;15427:247;15562:2;15547:18;;15576:88;15551:9;15637:6;15576:88;;15681:293;15815:2;15829:47;;;15800:18;;15890:74;15800:18;15950:6;15890:74;;16289:295;16424:2;16438:47;;;16409:18;;16499:75;16409:18;16560:6;16499:75;;16591:407;16782:2;16796:47;;;16767:18;;16857:131;16767:18;16857:131;;17005:407;17196:2;17210:47;;;17181:18;;17271:131;17181:18;17271:131;;17419:407;17610:2;17624:47;;;17595:18;;17685:131;17595:18;17685:131;;17833:407;18024:2;18038:47;;;18009:18;;18099:131;18009:18;18099:131;;18247:407;18438:2;18452:47;;;18423:18;;18513:131;18423:18;18513:131;;18661:407;18852:2;18866:47;;;18837:18;;18927:131;18837:18;18927:131;;19075:407;19266:2;19280:47;;;19251:18;;19341:131;19251:18;19341:131;;19489:407;19680:2;19694:47;;;19665:18;;19755:131;19665:18;19755:131;;19903:407;20094:2;20108:47;;;20079:18;;20169:131;20079:18;20169:131;;20317:213;20435:2;20420:18;;20449:71;20424:9;20493:6;20449:71;;20537:751;20793:3;20778:19;;20808:71;20782:9;20852:6;20808:71;;;20927:9;20921:4;20917:20;20912:2;20901:9;20897:18;20890:48;20952:78;21025:4;21016:6;20952:78;;;20944:86;;21078:9;21072:4;21068:20;21063:2;21052:9;21048:18;21041:48;21103:78;21176:4;21167:6;21103:78;;;21095:86;;21192;21274:2;21263:9;21259:18;21250:6;21192:86;;21295:923;21585:3;21570:19;;21600:71;21574:9;21644:6;21600:71;;;21719:9;21713:4;21709:20;21704:2;21693:9;21689:18;21682:48;21744:74;21813:4;21804:6;21744:74;;;21736:82;;21866:9;21860:4;21856:20;21851:2;21840:9;21836:18;21829:48;21891:74;21960:4;21951:6;21891:74;;;21883:82;;21976:86;22058:2;22047:9;22043:18;22034:6;21976:86;;;22111:9;22105:4;22101:20;22095:3;22084:9;22080:19;22073:49;22136:72;22203:4;22194:6;22136:72;;;22128:80;21556:662;-1:-1;;;;;;;21556:662;22225:739;22475:3;22460:19;;22490:71;22464:9;22534:6;22490:71;;;22609:9;22603:4;22599:20;22594:2;22583:9;22579:18;22572:48;22634:75;22704:4;22695:6;22634:75;;;22626:83;;22757:9;22751:4;22747:20;22742:2;22731:9;22727:18;22720:48;22782:75;22852:4;22843:6;22782:75;;22971:256;23033:2;23027:9;23059:17;;;23134:18;23119:34;;23155:22;;;23116:62;23113:2;;;23191:1;23188;23181:12;23113:2;23207;23200:22;23011:216;;-1:-1;23011:216;23234:321;;23377:18;23369:6;23366:30;23363:2;;;23409:1;23406;23399:12;23363:2;-1:-1;23540:4;23476;23453:17;;;;-1:-1;;23449:33;23530:15;;23300:255;23891:158;;23986:14;;;24028:4;24015:18;;;23945:104;24056:117;24139:12;;24110:63;24563:162;24665:19;;;24714:4;24705:14;;24658:67;25254:91;;25316:24;25334:5;25316:24;;25352:85;25418:13;25411:21;;25394:43;25444:138;25522:5;25528:49;25522:5;25528:49;;25589:121;-1:-1;;;;;25651:54;;25634:76;25796:155;;25892:54;25940:5;25892:54;;26090:138;;26183:40;26217:5;26183:40;;26236:145;26317:6;26312:3;26307;26294:30;-1:-1;26373:1;26355:16;;26348:27;26287:94;26390:268;26455:1;26462:101;26476:6;26473:1;26470:13;26462:101;;;26543:11;;;26537:18;26524:11;;;26517:39;26498:2;26491:10;26462:101;;;26578:6;26575:1;26572:13;26569:2;;;26643:1;26634:6;26629:3;26625:16;26618:27;26569:2;26439:219;;;;;26666:97;26754:2;26734:14;-1:-1;;26730:28;;26714:49;26771:107;26856:1;26849:5;26846:12;26836:2;;26862:9;26885:117;26954:24;26972:5;26954:24;;;26947:5;26944:35;26934:2;;26993:1;26990;26983:12;27009:111;27075:21;27090:5;27075:21;;27127:110;27212:1;27205:5;27202:12;27192:2;;27228:1;27225;27218:12;27244:117;27313:24;27331:5;27313: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\";\n\n\n/**\n * The `XBR Network `__\n * contract is the on-chain anchor of and the entry point to the XBR protocol.\n */\ncontract XBRNetwork 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 member registered in the XBR Network.\n event MemberRegistered (address indexed member, uint registered, string eula, string profile, XBRTypes.MemberLevel level);\n\n /// Event emitted when an existing member is changed (without leaving the XBR Network).\n event MemberChanged (address indexed member, uint changed, string eula, string profile, XBRTypes.MemberLevel level);\n\n /// Event emitted when a member leaves the XBR Network.\n event MemberRetired (address member);\n\n /// Event emitted when the payable status of a coin is changed.\n event CoinChanged (address indexed coin, address operator, bool isPayable);\n\n /// Special addresses used as \"any address\" marker in mappings (eg coins).\n address public constant ANYADR = 0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF;\n\n /// Limit to how old a pre-signed transaction is accetable (eg in \"registerMemberFor\" and similar).\n uint256 public PRESIGNED_TXN_MAX_AGE = 1440;\n\n /// Chain ID of the blockchain this contract is running on, used in EIP712 typed data signature verification.\n uint256 public verifyingChain;\n\n /// Verifying contract address, used in EIP712 typed data signature verification.\n address public verifyingContract;\n\n /// IPFS multihash of the `XBR Network EULA `__.\n string public eula = \"QmV1eeDextSdUrRUQp9tUXF8SdvVeykaiwYLgrXHHVyULY\";\n\n /// XBR network contributions from markets for the XBR project, expressed as a fraction of the total amount of XBR tokens.\n uint256 public contribution;\n\n /// Address of the XBR Networks' own ERC20 token for network-wide purposes.\n XBRToken public token;\n\n /// Address of the `XBR Network Organization `__.\n address public organization;\n\n /// Current XBR Network members (\"member directory\").\n mapping(address => XBRTypes.Member) public members;\n\n /// ERC20 coins which can specified as a means of payment when creating a new data market.\n mapping(address => mapping(address => bool)) public coins;\n\n /// Create the XBR network.\n ///\n /// @param networkToken The token to run this network itself on. Note that XBR data markets can use\n /// any ERC20 token (enabled in the ``coins`` mapping of this contract) as\n /// a means of payment in the respective market.\n /// @param networkOrganization The XBR network organization address.\n constructor (address networkToken, address networkOrganization) public {\n\n // read chain ID into temp local var (to avoid \"TypeError: Only local variables are supported\").\n uint256 chainId;\n assembly {\n chainId := chainid()\n }\n verifyingChain = chainId;\n verifyingContract = address(this);\n\n token = XBRToken(networkToken);\n coins[networkToken][ANYADR] = true;\n emit CoinChanged(networkToken, ANYADR, true);\n\n contribution = token.totalSupply() * 30 / 100;\n\n organization = networkOrganization;\n\n uint256 registered = block.timestamp;\n\n // technically, the creator of the XBR network contract instance is a XBR member (by definition).\n members[msg.sender] = XBRTypes.Member(registered, \"\", \"\", XBRTypes.MemberLevel.VERIFIED, \"\");\n emit MemberRegistered(msg.sender, registered, \"\", \"\", XBRTypes.MemberLevel.VERIFIED);\n }\n\n /// Register the sender of this transaction in the XBR network. All XBR stakeholders, namely data\n /// providers (\"sellers\"), data consumers (\"buyers\") and data market operators, must be registered\n /// in the XBR network.\n ///\n /// @param networkEula Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS.\n /// @param memberProfile Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.\n function registerMember (string memory networkEula, string memory memberProfile) public {\n _registerMember(msg.sender, block.number, networkEula, memberProfile, \"\");\n }\n\n /// Register the specified new member in the XBR Network. All XBR stakeholders, namely data\n /// providers (\"sellers\"), data consumers (\"buyers\") and data market operators, must be registered\n /// in the XBR network.\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 Address of the registering (new) member.\n /// @param registered Block number at which the registering member has created the signature.\n /// @param networkEula Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS.\n /// @param memberProfile Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.\n /// @param signature EIP712 signature, signed by the registering member.\n function registerMemberFor (address member, uint256 registered, string memory networkEula,\n string memory memberProfile, bytes memory signature) public {\n\n // verify signature\n require(XBRTypes.verify(member, XBRTypes.EIP712MemberRegister(verifyingChain, verifyingContract,\n member, registered, networkEula, memberProfile), signature), \"INVALID_MEMBER_REGISTER_SIGNATURE\");\n\n // signature must have been created in a window of PRESIGNED_TXN_MAX_AGE blocks from the current one\n require(registered <= block.number && (block.number <= PRESIGNED_TXN_MAX_AGE ||\n registered >= (block.number - PRESIGNED_TXN_MAX_AGE)), \"INVALID_REGISTERED_BLOCK_NUMBER\");\n\n _registerMember(member, registered, networkEula, memberProfile, signature);\n }\n\n function _registerMember (address member, uint256 registered, string memory networkEula, string memory profile, bytes memory signature) private {\n // check that sender is not already a member\n require(uint8(members[member].level) == 0, \"MEMBER_ALREADY_REGISTERED\");\n\n // check that the EULA the member accepted is the one we expect\n require(keccak256(abi.encode(networkEula)) ==\n keccak256(abi.encode(eula)), \"INVALID_EULA\");\n\n // remember the member\n members[member] = XBRTypes.Member(registered, networkEula, profile, XBRTypes.MemberLevel.ACTIVE, signature);\n\n // notify observers of new member\n emit MemberRegistered(member, registered, networkEula, profile, XBRTypes.MemberLevel.ACTIVE);\n }\n\n /// Set the XBR network organization address.\n ///\n /// @param networkToken The token to run this network itself on. Note that XBR data markets can use\n /// any ERC20 token (enabled in the ``coins`` mapping of this contract) as\n /// a means of payment in the respective market.\n function setNetworkToken (address networkToken) public onlyMaintainer returns (bool) {\n if (networkToken != address(token)) {\n coins[address(token)][ANYADR] = false;\n token = XBRToken(networkToken);\n coins[networkToken][ANYADR] = true;\n return true;\n } else {\n return false;\n }\n }\n\n /// Set the XBR network organization address.\n ///\n /// @param networkOrganization The XBR network organization address.\n function setNetworkOrganization (address networkOrganization) public onlyMaintainer returns (bool) {\n if (networkOrganization != address(organization)) {\n organization = networkOrganization;\n return true;\n } else {\n return false;\n }\n }\n\n /// Set (override manually) the member level of a XBR Network member. Being able to do so\n /// currently serves two purposes:\n ///\n /// - having a last resort to handle situation where members violated the EULA\n /// - being able to manually patch things in error/bug cases\n ///\n /// @param member The address of the XBR network member to override member level.\n /// @param level The member level to set the member to.\n function setMemberLevel (address member, XBRTypes.MemberLevel level) public onlyMaintainer returns (bool) {\n require(uint(members[msg.sender].level) != 0, \"NO_SUCH_MEMBER\");\n if (members[member].level != level) {\n members[member].level = level;\n emit MemberChanged(member, block.timestamp, members[member].eula, members[member].profile, level);\n return true;\n } else {\n return false;\n }\n }\n\n /// Set ERC20 coins as usable as a means of payment when opening data markets.\n ///\n /// @param coin The address of the ERC20 coin to change.\n /// @param isPayable When true, the coin can be specified when opening a new data market.\n function setCoinPayable (address coin, address operator, bool isPayable) public onlyMaintainer returns (bool) {\n if (coins[coin][operator] != isPayable) {\n coins[coin][operator] = isPayable;\n emit CoinChanged(coin, operator, isPayable);\n return true;\n } else {\n return false;\n }\n }\n\n function setContribution (uint256 networkContribution) public onlyMaintainer returns (bool) {\n require(networkContribution >= 0 && networkContribution <= token.totalSupply(), \"INVALID_CONTRIBUTION\");\n if (contribution != networkContribution) {\n contribution = networkContribution;\n return true;\n } else {\n return false;\n }\n }\n}\n", "sourcePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRNetwork.sol", "ast": { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRNetwork.sol", "exportedSymbols": { "XBRNetwork": [ 3886 ] }, "id": 3887, "nodeType": "SourceUnit", "nodes": [ { "id": 3363, "literals": [ "solidity", "^", "0.5", ".12" ], "nodeType": "PragmaDirective", "src": "810:24:5" }, { "id": 3364, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "835:33:5" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 3365, "nodeType": "ImportDirective", "scope": 3887, "sourceUnit": 5802, "src": "926:59:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRMaintained.sol", "file": "./XBRMaintained.sol", "id": 3366, "nodeType": "ImportDirective", "scope": 3887, "sourceUnit": 1730, "src": "987:29:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRTypes.sol", "file": "./XBRTypes.sol", "id": 3367, "nodeType": "ImportDirective", "scope": 3887, "sourceUnit": 5426, "src": "1017:24:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRToken.sol", "file": "./XBRToken.sol", "id": 3368, "nodeType": "ImportDirective", "scope": 3887, "sourceUnit": 4328, "src": "1042:24:5", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3369, "name": "XBRMaintained", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1729, "src": "1284:13:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMaintained_$1729", "typeString": "contract XBRMaintained" } }, "id": 3370, "nodeType": "InheritanceSpecifier", "src": "1284:13:5" } ], "contractDependencies": [ 1729 ], "contractKind": "contract", "documentation": "The `XBR Network `__\ncontract is the on-chain anchor of and the entry point to the XBR protocol.", "fullyImplemented": true, "id": 3886, "linearizedBaseContracts": [ 3886, 1729 ], "name": "XBRNetwork", "nodeType": "ContractDefinition", "nodes": [ { "id": 3373, "libraryName": { "contractScope": null, "id": 3371, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5801, "src": "1390:8:5", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$5801", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "1384:27:5", "typeName": { "id": 3372, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1403:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "anonymous": false, "documentation": "Event emitted when a new member registered in the XBR Network.", "id": 3385, "name": "MemberRegistered", "nodeType": "EventDefinition", "parameters": { "id": 3384, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3375, "indexed": true, "name": "member", "nodeType": "VariableDeclaration", "scope": 3385, "src": "1512:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3374, "name": "address", "nodeType": "ElementaryTypeName", "src": "1512:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3377, "indexed": false, "name": "registered", "nodeType": "VariableDeclaration", "scope": 3385, "src": "1536:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3376, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1536:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3379, "indexed": false, "name": "eula", "nodeType": "VariableDeclaration", "scope": 3385, "src": "1553:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3378, "name": "string", "nodeType": "ElementaryTypeName", "src": "1553:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3381, "indexed": false, "name": "profile", "nodeType": "VariableDeclaration", "scope": 3385, "src": "1566:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3380, "name": "string", "nodeType": "ElementaryTypeName", "src": "1566:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3383, "indexed": false, "name": "level", "nodeType": "VariableDeclaration", "scope": 3385, "src": "1582:26:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 3382, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "1582:20:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" } ], "src": "1511:98:5" }, "src": "1488:122:5" }, { "anonymous": false, "documentation": "Event emitted when an existing member is changed (without leaving the XBR Network).", "id": 3397, "name": "MemberChanged", "nodeType": "EventDefinition", "parameters": { "id": 3396, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3387, "indexed": true, "name": "member", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1729:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3386, "name": "address", "nodeType": "ElementaryTypeName", "src": "1729:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3389, "indexed": false, "name": "changed", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1753:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3388, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1753:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3391, "indexed": false, "name": "eula", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1767:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3390, "name": "string", "nodeType": "ElementaryTypeName", "src": "1767:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3393, "indexed": false, "name": "profile", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1780:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3392, "name": "string", "nodeType": "ElementaryTypeName", "src": "1780:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3395, "indexed": false, "name": "level", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1796:26:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 3394, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "1796:20:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" } ], "src": "1728:95:5" }, "src": "1708:116:5" }, { "anonymous": false, "documentation": "Event emitted when a member leaves the XBR Network.", "id": 3401, "name": "MemberRetired", "nodeType": "EventDefinition", "parameters": { "id": 3400, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3399, "indexed": false, "name": "member", "nodeType": "VariableDeclaration", "scope": 3401, "src": "1911:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3398, "name": "address", "nodeType": "ElementaryTypeName", "src": "1911:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1910:16:5" }, "src": "1890:37:5" }, { "anonymous": false, "documentation": "Event emitted when the payable status of a coin is changed.", "id": 3409, "name": "CoinChanged", "nodeType": "EventDefinition", "parameters": { "id": 3408, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3403, "indexed": true, "name": "coin", "nodeType": "VariableDeclaration", "scope": 3409, "src": "2020:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3402, "name": "address", "nodeType": "ElementaryTypeName", "src": "2020:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3405, "indexed": false, "name": "operator", "nodeType": "VariableDeclaration", "scope": 3409, "src": "2042:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3404, "name": "address", "nodeType": "ElementaryTypeName", "src": "2042:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3407, "indexed": false, "name": "isPayable", "nodeType": "VariableDeclaration", "scope": 3409, "src": "2060:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3406, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2060:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "2019:56:5" }, "src": "2001:75:5" }, { "constant": true, "id": 3412, "name": "ANYADR", "nodeType": "VariableDeclaration", "scope": 3886, "src": "2161:75:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3410, "name": "address", "nodeType": "ElementaryTypeName", "src": "2161:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": { "argumentTypes": null, "hexValue": "307846466646664666664646666666464666464666464646464666664646466666666646664646466646", "id": 3411, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2194:42:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "value": "0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF" }, "visibility": "public" }, { "constant": false, "id": 3415, "name": "PRESIGNED_TXN_MAX_AGE", "nodeType": "VariableDeclaration", "scope": 3886, "src": "2347:43:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3413, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2347:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "31343430", "id": 3414, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2386:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1440_by_1", "typeString": "int_const 1440" }, "value": "1440" }, "visibility": "public" }, { "constant": false, "id": 3417, "name": "verifyingChain", "nodeType": "VariableDeclaration", "scope": 3886, "src": "2511:29:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3416, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2511:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3419, "name": "verifyingContract", "nodeType": "VariableDeclaration", "scope": 3886, "src": "2633:32:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3418, "name": "address", "nodeType": "ElementaryTypeName", "src": "2633:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3422, "name": "eula", "nodeType": "VariableDeclaration", "scope": 3886, "src": "2808:69:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 3420, "name": "string", "nodeType": "ElementaryTypeName", "src": "2808:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "516d563165654465787453645572525551703974555846385364765665796b616977594c67725848485679554c59", "id": 3421, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2829:48:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_25141b0976dea6cbeacca31da79a9f0479a2ae4e4ca3e2ed26297dc4b3192430", "typeString": "literal_string \"QmV1eeDextSdUrRUQp9tUXF8SdvVeykaiwYLgrXHHVyULY\"" }, "value": "QmV1eeDextSdUrRUQp9tUXF8SdvVeykaiwYLgrXHHVyULY" }, "visibility": "public" }, { "constant": false, "id": 3424, "name": "contribution", "nodeType": "VariableDeclaration", "scope": 3886, "src": "3011:27:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3423, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3011:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3426, "name": "token", "nodeType": "VariableDeclaration", "scope": 3886, "src": "3125:21:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" }, "typeName": { "contractScope": null, "id": 3425, "name": "XBRToken", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4327, "src": "3125:8:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3428, "name": "organization", "nodeType": "VariableDeclaration", "scope": 3886, "src": "3229:27:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3427, "name": "address", "nodeType": "ElementaryTypeName", "src": "3229:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3432, "name": "members", "nodeType": "VariableDeclaration", "scope": 3886, "src": "3321:50:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member)" }, "typeName": { "id": 3431, "keyType": { "id": 3429, "name": "address", "nodeType": "ElementaryTypeName", "src": "3329:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3321:35:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member)" }, "valueType": { "contractScope": null, "id": 3430, "name": "XBRTypes.Member", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4363, "src": "3340:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage_ptr", "typeString": "struct XBRTypes.Member" } } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3438, "name": "coins", "nodeType": "VariableDeclaration", "scope": 3886, "src": "3473:57:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" }, "typeName": { "id": 3437, "keyType": { "id": 3433, "name": "address", "nodeType": "ElementaryTypeName", "src": "3481:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3473:44:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" }, "valueType": { "id": 3436, "keyType": { "id": 3434, "name": "address", "nodeType": "ElementaryTypeName", "src": "3500:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3492:24:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 3435, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3511:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } } }, "value": null, "visibility": "public" }, { "body": { "id": 3525, "nodeType": "Block", "src": "3997:867:5", "statements": [ { "assignments": [ 3446 ], "declarations": [ { "constant": false, "id": 3446, "name": "chainId", "nodeType": "VariableDeclaration", "scope": 3525, "src": "4113:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3445, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4113:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3447, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "4113:15:5" }, { "externalReferences": [ { "chainId": { "declaration": 3446, "isOffset": false, "isSlot": false, "src": "4161:7:5", "valueSize": 1 } } ], "id": 3448, "nodeType": "InlineAssembly", "operations": "{ chainId := chainid() }", "src": "4138:53:5" }, { "expression": { "argumentTypes": null, "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3449, "name": "verifyingChain", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3417, "src": "4200:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3450, "name": "chainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3446, "src": "4217:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4200:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3452, "nodeType": "ExpressionStatement", "src": "4200:24:5" }, { "expression": { "argumentTypes": null, "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3453, "name": "verifyingContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3419, "src": "4234:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3455, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6382, "src": "4262:4:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } ], "id": 3454, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4254:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3456, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4254:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4234:33:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3458, "nodeType": "ExpressionStatement", "src": "4234:33:5" }, { "expression": { "argumentTypes": null, "id": 3463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3459, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3426, "src": "4278:5:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3461, "name": "networkToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3440, "src": "4295:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3460, "name": "XBRToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4327, "src": "4286:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRToken_$4327_$", "typeString": "type(contract XBRToken)" } }, "id": 3462, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4286:22:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "src": "4278:30:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "id": 3464, "nodeType": "ExpressionStatement", "src": "4278:30:5" }, { "expression": { "argumentTypes": null, "id": 3471, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3465, "name": "coins", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3438, "src": "4318:5:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, "id": 3468, "indexExpression": { "argumentTypes": null, "id": 3466, "name": "networkToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3440, "src": "4324:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4318:19:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3469, "indexExpression": { "argumentTypes": null, "id": 3467, "name": "ANYADR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3412, "src": "4338:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4318:27:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 3470, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4348:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "4318:34:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3472, "nodeType": "ExpressionStatement", "src": "4318:34:5" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3474, "name": "networkToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3440, "src": "4379:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3475, "name": "ANYADR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3412, "src": "4393:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "hexValue": "74727565", "id": 3476, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4401:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3473, "name": "CoinChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3409, "src": "4367:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,address,bool)" } }, "id": 3477, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4367:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3478, "nodeType": "EmitStatement", "src": "4362:44:5" }, { "expression": { "argumentTypes": null, "id": 3487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3479, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3424, "src": "4417:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 3480, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3426, "src": "4432:5:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "id": 3481, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 5833, "src": "4432:17:5", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4432:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "hexValue": "3330", "id": 3483, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4454:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_30_by_1", "typeString": "int_const 30" }, "value": "30" }, "src": "4432:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "313030", "id": 3485, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4459:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "src": "4432:30:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4417:45:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3488, "nodeType": "ExpressionStatement", "src": "4417:45:5" }, { "expression": { "argumentTypes": null, "id": 3491, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3489, "name": "organization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3428, "src": "4473:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3490, "name": "networkOrganization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3442, "src": "4488:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4473:34:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3492, "nodeType": "ExpressionStatement", "src": "4473:34:5" }, { "assignments": [ 3494 ], "declarations": [ { "constant": false, "id": 3494, "name": "registered", "nodeType": "VariableDeclaration", "scope": 3525, "src": "4518:18:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3493, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4518:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3497, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3495, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "4539:5:5", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4539:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4518:36:5" }, { "expression": { "argumentTypes": null, "id": 3512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3498, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "4671:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3501, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3499, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "4679:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4679:10:5", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4671:19:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3504, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3494, "src": "4709:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "hexValue": "", "id": 3505, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4721:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "hexValue": "", "id": 3506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4725:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3507, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "4729:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "4729:20:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 3509, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4729:29:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, { "argumentTypes": null, "hexValue": "", "id": 3510, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4760:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "expression": { "argumentTypes": null, "id": 3502, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "4693:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Member", "nodeType": "MemberAccess", "referencedDeclaration": 4363, "src": "4693:15:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Member_$4363_storage_ptr_$", "typeString": "type(struct XBRTypes.Member storage pointer)" } }, "id": 3511, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4693:70:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_memory", "typeString": "struct XBRTypes.Member memory" } }, "src": "4671:92:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3513, "nodeType": "ExpressionStatement", "src": "4671:92:5" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3515, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "4795:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4795:10:5", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 3517, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3494, "src": "4807:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "hexValue": "", "id": 3518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4819:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "hexValue": "", "id": 3519, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4823:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3520, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "4827:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "4827:20:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 3522, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4827:29:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } ], "id": 3514, "name": "MemberRegistered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3385, "src": "4778:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_enum$_MemberLevel_$4337_$returns$__$", "typeString": "function (address,uint256,string memory,string memory,enum XBRTypes.MemberLevel)" } }, "id": 3523, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4778:79:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3524, "nodeType": "EmitStatement", "src": "4773:84:5" } ] }, "documentation": "Create the XBR network.\n\n /// @param networkToken The token to run this network itself on. Note that XBR data markets can use\n any ERC20 token (enabled in the ``coins`` mapping of this contract) as\n a means of payment in the respective market.\n @param networkOrganization The XBR network organization address.", "id": 3526, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 3443, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3440, "name": "networkToken", "nodeType": "VariableDeclaration", "scope": 3526, "src": "3939:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3439, "name": "address", "nodeType": "ElementaryTypeName", "src": "3939:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3442, "name": "networkOrganization", "nodeType": "VariableDeclaration", "scope": 3526, "src": "3961:27:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3441, "name": "address", "nodeType": "ElementaryTypeName", "src": "3961:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3938:51:5" }, "returnParameters": { "id": 3444, "nodeType": "ParameterList", "parameters": [], "src": "3997:0:5" }, "scope": 3886, "src": "3926:938:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3543, "nodeType": "Block", "src": "5430:90:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3534, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "5456:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5456:10:5", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3536, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "5468:5:5", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5468:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3538, "name": "networkEula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3528, "src": "5482:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 3539, "name": "memberProfile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3530, "src": "5495:13:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "hexValue": "", "id": 3540, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5510:2:5", "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_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "id": 3533, "name": "_registerMember", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3674, "src": "5440:15:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,string memory,string memory,bytes memory)" } }, "id": 3541, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5440:73:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3542, "nodeType": "ExpressionStatement", "src": "5440:73:5" } ] }, "documentation": "Register the sender of this transaction in the XBR network. All XBR stakeholders, namely data\n providers (\"sellers\"), data consumers (\"buyers\") and data market operators, must be registered\n in the XBR network.\n\n /// @param networkEula Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS.\n @param memberProfile Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.", "id": 3544, "implemented": true, "kind": "function", "modifiers": [], "name": "registerMember", "nodeType": "FunctionDefinition", "parameters": { "id": 3531, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3528, "name": "networkEula", "nodeType": "VariableDeclaration", "scope": 3544, "src": "5367:25:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3527, "name": "string", "nodeType": "ElementaryTypeName", "src": "5367:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3530, "name": "memberProfile", "nodeType": "VariableDeclaration", "scope": 3544, "src": "5394:27:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3529, "name": "string", "nodeType": "ElementaryTypeName", "src": "5394:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "5366:56:5" }, "returnParameters": { "id": 3532, "nodeType": "ParameterList", "parameters": [], "src": "5430:0:5" }, "scope": 3886, "src": "5342:178:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3605, "nodeType": "Block", "src": "6586:638:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3560, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3546, "src": "6649:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3563, "name": "verifyingChain", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3417, "src": "6687:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3564, "name": "verifyingContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3419, "src": "6703:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3565, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3546, "src": "6734:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3566, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3548, "src": "6742:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3567, "name": "networkEula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3550, "src": "6754:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 3568, "name": "memberProfile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3552, "src": "6767:13:5", "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_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 3561, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "6657:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "EIP712MemberRegister", "nodeType": "MemberAccess", "referencedDeclaration": 4521, "src": "6657:29:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EIP712MemberRegister_$4521_storage_ptr_$", "typeString": "type(struct XBRTypes.EIP712MemberRegister storage pointer)" } }, "id": 3569, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6657:124:5", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712MemberRegister_$4521_memory", "typeString": "struct XBRTypes.EIP712MemberRegister memory" } }, { "argumentTypes": null, "id": 3570, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3554, "src": "6783:9:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_EIP712MemberRegister_$4521_memory", "typeString": "struct XBRTypes.EIP712MemberRegister memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 3558, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "6633:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", "referencedDeclaration": 5109, "src": "6633:15:5", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_address_$_t_struct$_EIP712MemberRegister_$4521_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,struct XBRTypes.EIP712MemberRegister memory,bytes memory) pure returns (bool)" } }, "id": 3571, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6633:160:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4d454d4245525f52454749535445525f5349474e4154555245", "id": 3572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6795:35:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1641308f91d7fa3ded432b1ab2f9cb5c04d26b93c850a7bdba819b95d6f21459", "typeString": "literal_string \"INVALID_MEMBER_REGISTER_SIGNATURE\"" }, "value": "INVALID_MEMBER_REGISTER_SIGNATURE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_1641308f91d7fa3ded432b1ab2f9cb5c04d26b93c850a7bdba819b95d6f21459", "typeString": "literal_string \"INVALID_MEMBER_REGISTER_SIGNATURE\"" } ], "id": 3557, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "6625:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3573, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6625:206:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3574, "nodeType": "ExpressionStatement", "src": "6625:206:5" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3593, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3579, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3576, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3548, "src": "6959:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3577, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "6973:5:5", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6973:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6959:26:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3591, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3580, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "6990:5:5", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6990:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 3582, "name": "PRESIGNED_TXN_MAX_AGE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3415, "src": "7006:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6990:37:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3584, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3548, "src": "7043:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3585, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "7058:5:5", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7058:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 3587, "name": "PRESIGNED_TXN_MAX_AGE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3415, "src": "7073:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7058:36:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 3589, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "7057:38:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7043:52:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6990:105:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 3592, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "6989:107:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6959:137:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f524547495354455245445f424c4f434b5f4e554d424552", "id": 3594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7098:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5a77a8f658683c076ef227088e3a5aad094db6d42966d121deadd22b9916f815", "typeString": "literal_string \"INVALID_REGISTERED_BLOCK_NUMBER\"" }, "value": "INVALID_REGISTERED_BLOCK_NUMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_5a77a8f658683c076ef227088e3a5aad094db6d42966d121deadd22b9916f815", "typeString": "literal_string \"INVALID_REGISTERED_BLOCK_NUMBER\"" } ], "id": 3575, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "6951:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3595, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6951:181:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3596, "nodeType": "ExpressionStatement", "src": "6951:181:5" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3598, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3546, "src": "7159:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3599, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3548, "src": "7167:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3600, "name": "networkEula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3550, "src": "7179:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 3601, "name": "memberProfile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3552, "src": "7192:13:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 3602, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3554, "src": "7207:9:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "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" } ], "id": 3597, "name": "_registerMember", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3674, "src": "7143:15:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,string memory,string memory,bytes memory)" } }, "id": 3603, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7143:74:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3604, "nodeType": "ExpressionStatement", "src": "7143:74:5" } ] }, "documentation": "Register the specified new member in the XBR Network. All XBR stakeholders, namely data\n providers (\"sellers\"), data consumers (\"buyers\") and data market operators, must be registered\n in the XBR network.\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 Address of the registering (new) member.\n @param registered Block number at which the registering member has created the signature.\n @param networkEula Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS.\n @param memberProfile Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.\n @param signature EIP712 signature, signed by the registering member.", "id": 3606, "implemented": true, "kind": "function", "modifiers": [], "name": "registerMemberFor", "nodeType": "FunctionDefinition", "parameters": { "id": 3555, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3546, "name": "member", "nodeType": "VariableDeclaration", "scope": 3606, "src": "6455:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3545, "name": "address", "nodeType": "ElementaryTypeName", "src": "6455:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3548, "name": "registered", "nodeType": "VariableDeclaration", "scope": 3606, "src": "6471:18:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3547, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6471:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3550, "name": "networkEula", "nodeType": "VariableDeclaration", "scope": 3606, "src": "6491:25:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3549, "name": "string", "nodeType": "ElementaryTypeName", "src": "6491:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3552, "name": "memberProfile", "nodeType": "VariableDeclaration", "scope": 3606, "src": "6526:27:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3551, "name": "string", "nodeType": "ElementaryTypeName", "src": "6526:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3554, "name": "signature", "nodeType": "VariableDeclaration", "scope": 3606, "src": "6555:22:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3553, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6555:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "6454:124:5" }, "returnParameters": { "id": 3556, "nodeType": "ParameterList", "parameters": [], "src": "6586:0:5" }, "scope": 3886, "src": "6427:797:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3673, "nodeType": "Block", "src": "7374:624:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 3627, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3621, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "7451:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3623, "indexExpression": { "argumentTypes": null, "id": 3622, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3608, "src": "7459:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7451:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3624, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 4360, "src": "7451:21:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } ], "id": 3620, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7445:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 3625, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7445:28:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 3626, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7477:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "7445:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4d454d4245525f414c52454144595f52454749535445524544", "id": 3628, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7480:27:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_16b40795a0be72253fc8c7ba426fe7f085b1c1f89abdfdf0708b4a3db23ab9a6", "typeString": "literal_string \"MEMBER_ALREADY_REGISTERED\"" }, "value": "MEMBER_ALREADY_REGISTERED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_16b40795a0be72253fc8c7ba426fe7f085b1c1f89abdfdf0708b4a3db23ab9a6", "typeString": "literal_string \"MEMBER_ALREADY_REGISTERED\"" } ], "id": 3619, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7437:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3629, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7437:71:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3630, "nodeType": "ExpressionStatement", "src": "7437:71:5" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 3644, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3635, "name": "networkEula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3612, "src": "7620:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 3633, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6335, "src": "7609:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 3634, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7609:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 3636, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7609:23:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 3632, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6342, "src": "7599:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 3637, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7599:34:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3641, "name": "eula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3422, "src": "7674:4:5", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } ], "expression": { "argumentTypes": null, "id": 3639, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6335, "src": "7663:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 3640, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7663:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 3642, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7663:16:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 3638, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6342, "src": "7653:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 3643, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7653:27:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "7599:81:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f45554c41", "id": 3645, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7682:14:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c321721a97c8c08590d5bae46327f00c6daa94ace4174516864cab214e67ef96", "typeString": "literal_string \"INVALID_EULA\"" }, "value": "INVALID_EULA" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c321721a97c8c08590d5bae46327f00c6daa94ace4174516864cab214e67ef96", "typeString": "literal_string \"INVALID_EULA\"" } ], "id": 3631, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7591:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7591:106:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3647, "nodeType": "ExpressionStatement", "src": "7591:106:5" }, { "expression": { "argumentTypes": null, "id": 3661, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3648, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "7739:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3650, "indexExpression": { "argumentTypes": null, "id": 3649, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3608, "src": "7747:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7739:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3653, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3610, "src": "7773:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3654, "name": "networkEula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3612, "src": "7785:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 3655, "name": "profile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3614, "src": "7798:7:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3656, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7807:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "7807:20:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 3658, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7807:27:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, { "argumentTypes": null, "id": 3659, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3616, "src": "7836:9:5", "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_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 3651, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7757:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Member", "nodeType": "MemberAccess", "referencedDeclaration": 4363, "src": "7757:15:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Member_$4363_storage_ptr_$", "typeString": "type(struct XBRTypes.Member storage pointer)" } }, "id": 3660, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7757:89:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_memory", "typeString": "struct XBRTypes.Member memory" } }, "src": "7739:107:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3662, "nodeType": "ExpressionStatement", "src": "7739:107:5" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3664, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3608, "src": "7921:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3665, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3610, "src": "7929:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3666, "name": "networkEula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3612, "src": "7941:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 3667, "name": "profile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3614, "src": "7954:7:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3668, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7963:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3669, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "7963:20:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 3670, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7963:27:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } ], "id": 3663, "name": "MemberRegistered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3385, "src": "7904:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_enum$_MemberLevel_$4337_$returns$__$", "typeString": "function (address,uint256,string memory,string memory,enum XBRTypes.MemberLevel)" } }, "id": 3671, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7904:87:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3672, "nodeType": "EmitStatement", "src": "7899:92:5" } ] }, "documentation": null, "id": 3674, "implemented": true, "kind": "function", "modifiers": [], "name": "_registerMember", "nodeType": "FunctionDefinition", "parameters": { "id": 3617, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3608, "name": "member", "nodeType": "VariableDeclaration", "scope": 3674, "src": "7256:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3607, "name": "address", "nodeType": "ElementaryTypeName", "src": "7256:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3610, "name": "registered", "nodeType": "VariableDeclaration", "scope": 3674, "src": "7272:18:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3609, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7272:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3612, "name": "networkEula", "nodeType": "VariableDeclaration", "scope": 3674, "src": "7292:25:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3611, "name": "string", "nodeType": "ElementaryTypeName", "src": "7292:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3614, "name": "profile", "nodeType": "VariableDeclaration", "scope": 3674, "src": "7319:21:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3613, "name": "string", "nodeType": "ElementaryTypeName", "src": "7319:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3616, "name": "signature", "nodeType": "VariableDeclaration", "scope": 3674, "src": "7342:22:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3615, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7342:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "7255:110:5" }, "returnParameters": { "id": 3618, "nodeType": "ParameterList", "parameters": [], "src": "7374:0:5" }, "scope": 3886, "src": "7230:768:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { "id": 3719, "nodeType": "Block", "src": "8423:274:5", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 3687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3683, "name": "networkToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3676, "src": "8437:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3685, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3426, "src": "8461:5:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } ], "id": 3684, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8453:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3686, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8453:14:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "8437:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 3717, "nodeType": "Block", "src": "8654:37:5", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8675:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 3682, "id": 3716, "nodeType": "Return", "src": "8668:12:5" } ] }, "id": 3718, "nodeType": "IfStatement", "src": "8433:258:5", "trueBody": { "id": 3714, "nodeType": "Block", "src": "8469:179:5", "statements": [ { "expression": { "argumentTypes": null, "id": 3696, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3688, "name": "coins", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3438, "src": "8483:5:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, "id": 3693, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3690, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3426, "src": "8497:5:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } ], "id": 3689, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8489:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3691, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8489:14:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8483:21:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3694, "indexExpression": { "argumentTypes": null, "id": 3692, "name": "ANYADR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3412, "src": "8505:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8483:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3695, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8515:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "8483:37:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3697, "nodeType": "ExpressionStatement", "src": "8483:37:5" }, { "expression": { "argumentTypes": null, "id": 3702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3698, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3426, "src": "8534:5:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3700, "name": "networkToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3676, "src": "8551:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3699, "name": "XBRToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4327, "src": "8542:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRToken_$4327_$", "typeString": "type(contract XBRToken)" } }, "id": 3701, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8542:22:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "src": "8534:30:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "id": 3703, "nodeType": "ExpressionStatement", "src": "8534:30:5" }, { "expression": { "argumentTypes": null, "id": 3710, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3704, "name": "coins", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3438, "src": "8578:5:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, "id": 3707, "indexExpression": { "argumentTypes": null, "id": 3705, "name": "networkToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3676, "src": "8584:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8578:19:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3708, "indexExpression": { "argumentTypes": null, "id": 3706, "name": "ANYADR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3412, "src": "8598:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8578:27:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 3709, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8608:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "8578:34:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3711, "nodeType": "ExpressionStatement", "src": "8578:34:5" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3712, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8633:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3682, "id": 3713, "nodeType": "Return", "src": "8626:11:5" } ] } } ] }, "documentation": "Set the XBR network organization address.\n\n /// @param networkToken The token to run this network itself on. Note that XBR data markets can use\n any ERC20 token (enabled in the ``coins`` mapping of this contract) as\n a means of payment in the respective market.", "id": 3720, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 3679, "modifierName": { "argumentTypes": null, "id": 3678, "name": "onlyMaintainer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1662, "src": "8393:14:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "8393:14:5" } ], "name": "setNetworkToken", "nodeType": "FunctionDefinition", "parameters": { "id": 3677, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3676, "name": "networkToken", "nodeType": "VariableDeclaration", "scope": 3720, "src": "8364:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3675, "name": "address", "nodeType": "ElementaryTypeName", "src": "8364:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "8363:22:5" }, "returnParameters": { "id": 3682, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3681, "name": "", "nodeType": "VariableDeclaration", "scope": 3720, "src": "8417:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3680, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8417:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8416:6:5" }, "scope": 3886, "src": "8338:359:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3745, "nodeType": "Block", "src": "8933:193:5", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 3733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3729, "name": "networkOrganization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3722, "src": "8947:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3731, "name": "organization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3428, "src": "8978:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3730, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8970:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3732, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8970:21:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "8947:44:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 3743, "nodeType": "Block", "src": "9083:37:5", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3741, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "9104:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 3728, "id": 3742, "nodeType": "Return", "src": "9097:12:5" } ] }, "id": 3744, "nodeType": "IfStatement", "src": "8943:177:5", "trueBody": { "id": 3740, "nodeType": "Block", "src": "8993:84:5", "statements": [ { "expression": { "argumentTypes": null, "id": 3736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3734, "name": "organization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3428, "src": "9007:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3735, "name": "networkOrganization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3722, "src": "9022:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "9007:34:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3737, "nodeType": "ExpressionStatement", "src": "9007:34:5" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3738, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "9062:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3728, "id": 3739, "nodeType": "Return", "src": "9055:11:5" } ] } } ] }, "documentation": "Set the XBR network organization address.\n\n /// @param networkOrganization The XBR network organization address.", "id": 3746, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 3725, "modifierName": { "argumentTypes": null, "id": 3724, "name": "onlyMaintainer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1662, "src": "8903:14:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "8903:14:5" } ], "name": "setNetworkOrganization", "nodeType": "FunctionDefinition", "parameters": { "id": 3723, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3722, "name": "networkOrganization", "nodeType": "VariableDeclaration", "scope": 3746, "src": "8867:27:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3721, "name": "address", "nodeType": "ElementaryTypeName", "src": "8867:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "8866:29:5" }, "returnParameters": { "id": 3728, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3727, "name": "", "nodeType": "VariableDeclaration", "scope": 3746, "src": "8927:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3726, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8927:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8926:6:5" }, "scope": 3886, "src": "8834:292:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3805, "nodeType": "Block", "src": "9681:358:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3759, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "9704:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3762, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3760, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "9712:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3761, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9712:10:5", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9704:19:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3763, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 4360, "src": "9704:25:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } ], "id": 3758, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9699:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 3764, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9699:31:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 3765, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9734:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "9699:36:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d454d424552", "id": 3767, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9737:16:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4033f0d2aee40aa8c26dd7a43827b900bd2b7b740bfb635777273e01722db306", "typeString": "literal_string \"NO_SUCH_MEMBER\"" }, "value": "NO_SUCH_MEMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_4033f0d2aee40aa8c26dd7a43827b900bd2b7b740bfb635777273e01722db306", "typeString": "literal_string \"NO_SUCH_MEMBER\"" } ], "id": 3757, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "9691:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3768, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9691:63:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3769, "nodeType": "ExpressionStatement", "src": "9691:63:5" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 3775, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3770, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "9768:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3772, "indexExpression": { "argumentTypes": null, "id": 3771, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "9776:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9768:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3773, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 4360, "src": "9768:21:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 3774, "name": "level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3750, "src": "9793:5:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "9768:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 3803, "nodeType": "Block", "src": "9996:37:5", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3801, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10017:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 3756, "id": 3802, "nodeType": "Return", "src": "10010:12:5" } ] }, "id": 3804, "nodeType": "IfStatement", "src": "9764:269:5", "trueBody": { "id": 3800, "nodeType": "Block", "src": "9800:190:5", "statements": [ { "expression": { "argumentTypes": null, "id": 3781, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3776, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "9814:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3778, "indexExpression": { "argumentTypes": null, "id": 3777, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "9822:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9814:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3779, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 4360, "src": "9814:21:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3780, "name": "level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3750, "src": "9838:5:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "9814:29:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "id": 3782, "nodeType": "ExpressionStatement", "src": "9814:29:5" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3784, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "9876:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3785, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "9884:5:5", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3786, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9884:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3787, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "9901:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3789, "indexExpression": { "argumentTypes": null, "id": 3788, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "9909:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9901:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3790, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "eula", "nodeType": "MemberAccess", "referencedDeclaration": 4356, "src": "9901:20:5", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3791, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "9923:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3793, "indexExpression": { "argumentTypes": null, "id": 3792, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "9931:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9923:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3794, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "profile", "nodeType": "MemberAccess", "referencedDeclaration": 4358, "src": "9923:23:5", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "argumentTypes": null, "id": 3795, "name": "level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3750, "src": "9948:5:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } ], "id": 3783, "name": "MemberChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3397, "src": "9862:13:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_enum$_MemberLevel_$4337_$returns$__$", "typeString": "function (address,uint256,string memory,string memory,enum XBRTypes.MemberLevel)" } }, "id": 3796, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9862:92:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3797, "nodeType": "EmitStatement", "src": "9857:97:5" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3798, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "9975:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3756, "id": 3799, "nodeType": "Return", "src": "9968:11:5" } ] } } ] }, "documentation": "Set (override manually) the member level of a XBR Network member. Being able to do so\n currently serves two purposes:\n\n /// - having a last resort to handle situation where members violated the EULA\n - being able to manually patch things in error/bug cases\n\n /// @param member The address of the XBR network member to override member level.\n @param level The member level to set the member to.", "id": 3806, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 3753, "modifierName": { "argumentTypes": null, "id": 3752, "name": "onlyMaintainer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1662, "src": "9651:14:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "9651:14:5" } ], "name": "setMemberLevel", "nodeType": "FunctionDefinition", "parameters": { "id": 3751, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3748, "name": "member", "nodeType": "VariableDeclaration", "scope": 3806, "src": "9600:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3747, "name": "address", "nodeType": "ElementaryTypeName", "src": "9600:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3750, "name": "level", "nodeType": "VariableDeclaration", "scope": 3806, "src": "9616:26:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 3749, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "9616:20:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" } ], "src": "9599:44:5" }, "returnParameters": { "id": 3756, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3755, "name": "", "nodeType": "VariableDeclaration", "scope": 3806, "src": "9675:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3754, "name": "bool", "nodeType": "ElementaryTypeName", "src": "9675:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "9674:6:5" }, "scope": 3886, "src": "9575:464:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3847, "nodeType": "Block", "src": "10401:239:5", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3819, "name": "coins", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3438, "src": "10415:5:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, "id": 3821, "indexExpression": { "argumentTypes": null, "id": 3820, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3808, "src": "10421:4:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10415:11:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3823, "indexExpression": { "argumentTypes": null, "id": 3822, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3810, "src": "10427:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10415:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 3824, "name": "isPayable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3812, "src": "10440:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "10415:34:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 3845, "nodeType": "Block", "src": "10597:37:5", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3843, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10618:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 3818, "id": 3844, "nodeType": "Return", "src": "10611:12:5" } ] }, "id": 3846, "nodeType": "IfStatement", "src": "10411:223:5", "trueBody": { "id": 3842, "nodeType": "Block", "src": "10451:140:5", "statements": [ { "expression": { "argumentTypes": null, "id": 3832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3826, "name": "coins", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3438, "src": "10465:5:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, "id": 3829, "indexExpression": { "argumentTypes": null, "id": 3827, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3808, "src": "10471:4:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10465:11:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3830, "indexExpression": { "argumentTypes": null, "id": 3828, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3810, "src": "10477:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10465:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3831, "name": "isPayable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3812, "src": "10489:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "10465:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3833, "nodeType": "ExpressionStatement", "src": "10465:33:5" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3835, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3808, "src": "10529:4:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3836, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3810, "src": "10535:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3837, "name": "isPayable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3812, "src": "10545:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3834, "name": "CoinChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3409, "src": "10517:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,address,bool)" } }, "id": 3838, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10517:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3839, "nodeType": "EmitStatement", "src": "10512:43:5" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10576:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3818, "id": 3841, "nodeType": "Return", "src": "10569:11:5" } ] } } ] }, "documentation": "Set ERC20 coins as usable as a means of payment when opening data markets.\n\n /// @param coin The address of the ERC20 coin to change.\n @param isPayable When true, the coin can be specified when opening a new data market.", "id": 3848, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 3815, "modifierName": { "argumentTypes": null, "id": 3814, "name": "onlyMaintainer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1662, "src": "10371:14:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "10371:14:5" } ], "name": "setCoinPayable", "nodeType": "FunctionDefinition", "parameters": { "id": 3813, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3808, "name": "coin", "nodeType": "VariableDeclaration", "scope": 3848, "src": "10316:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3807, "name": "address", "nodeType": "ElementaryTypeName", "src": "10316:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3810, "name": "operator", "nodeType": "VariableDeclaration", "scope": 3848, "src": "10330:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3809, "name": "address", "nodeType": "ElementaryTypeName", "src": "10330:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3812, "name": "isPayable", "nodeType": "VariableDeclaration", "scope": 3848, "src": "10348:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3811, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10348:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "10315:48:5" }, "returnParameters": { "id": 3818, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3817, "name": "", "nodeType": "VariableDeclaration", "scope": 3848, "src": "10395:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3816, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10395:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "10394:6:5" }, "scope": 3886, "src": "10291:349:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3884, "nodeType": "Block", "src": "10738:297:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3866, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3858, "name": "networkContribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3850, "src": "10756:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 3859, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10779:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10756:24:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3861, "name": "networkContribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3850, "src": "10784:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 3862, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3426, "src": "10807:5:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "id": 3863, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 5833, "src": "10807:17:5", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 3864, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10807:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10784:42:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "10756:70:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f434f4e545249425554494f4e", "id": 3867, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10828:22:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_19a884fa0b1bb02bcab06edf1577a9b594aebaf029a934895489d96c8a9ec31a", "typeString": "literal_string \"INVALID_CONTRIBUTION\"" }, "value": "INVALID_CONTRIBUTION" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_19a884fa0b1bb02bcab06edf1577a9b594aebaf029a934895489d96c8a9ec31a", "typeString": "literal_string \"INVALID_CONTRIBUTION\"" } ], "id": 3857, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "10748:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3868, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10748:103:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3869, "nodeType": "ExpressionStatement", "src": "10748:103:5" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3870, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3424, "src": "10865:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 3871, "name": "networkContribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3850, "src": "10881:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10865:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 3882, "nodeType": "Block", "src": "10992:37:5", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3880, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "11013:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 3856, "id": 3881, "nodeType": "Return", "src": "11006:12:5" } ] }, "id": 3883, "nodeType": "IfStatement", "src": "10861:168:5", "trueBody": { "id": 3879, "nodeType": "Block", "src": "10902:84:5", "statements": [ { "expression": { "argumentTypes": null, "id": 3875, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3873, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3424, "src": "10916:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3874, "name": "networkContribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3850, "src": "10931:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10916:34:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3876, "nodeType": "ExpressionStatement", "src": "10916:34:5" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3877, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10971:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3856, "id": 3878, "nodeType": "Return", "src": "10964:11:5" } ] } } ] }, "documentation": null, "id": 3885, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 3853, "modifierName": { "argumentTypes": null, "id": 3852, "name": "onlyMaintainer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1662, "src": "10708:14:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "10708:14:5" } ], "name": "setContribution", "nodeType": "FunctionDefinition", "parameters": { "id": 3851, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3850, "name": "networkContribution", "nodeType": "VariableDeclaration", "scope": 3885, "src": "10672:27:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3849, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10672:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "10671:29:5" }, "returnParameters": { "id": 3856, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3855, "name": "", "nodeType": "VariableDeclaration", "scope": 3885, "src": "10732:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3854, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10732:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "10731:6:5" }, "scope": 3886, "src": "10646:389:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 3887, "src": "1261:9776:5" } ], "src": "810:10228:5" }, "legacyAST": { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRNetwork.sol", "exportedSymbols": { "XBRNetwork": [ 3886 ] }, "id": 3887, "nodeType": "SourceUnit", "nodes": [ { "id": 3363, "literals": [ "solidity", "^", "0.5", ".12" ], "nodeType": "PragmaDirective", "src": "810:24:5" }, { "id": 3364, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "835:33:5" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 3365, "nodeType": "ImportDirective", "scope": 3887, "sourceUnit": 5802, "src": "926:59:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRMaintained.sol", "file": "./XBRMaintained.sol", "id": 3366, "nodeType": "ImportDirective", "scope": 3887, "sourceUnit": 1730, "src": "987:29:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRTypes.sol", "file": "./XBRTypes.sol", "id": 3367, "nodeType": "ImportDirective", "scope": 3887, "sourceUnit": 5426, "src": "1017:24:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRToken.sol", "file": "./XBRToken.sol", "id": 3368, "nodeType": "ImportDirective", "scope": 3887, "sourceUnit": 4328, "src": "1042:24:5", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3369, "name": "XBRMaintained", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1729, "src": "1284:13:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMaintained_$1729", "typeString": "contract XBRMaintained" } }, "id": 3370, "nodeType": "InheritanceSpecifier", "src": "1284:13:5" } ], "contractDependencies": [ 1729 ], "contractKind": "contract", "documentation": "The `XBR Network `__\ncontract is the on-chain anchor of and the entry point to the XBR protocol.", "fullyImplemented": true, "id": 3886, "linearizedBaseContracts": [ 3886, 1729 ], "name": "XBRNetwork", "nodeType": "ContractDefinition", "nodes": [ { "id": 3373, "libraryName": { "contractScope": null, "id": 3371, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5801, "src": "1390:8:5", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$5801", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "1384:27:5", "typeName": { "id": 3372, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1403:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "anonymous": false, "documentation": "Event emitted when a new member registered in the XBR Network.", "id": 3385, "name": "MemberRegistered", "nodeType": "EventDefinition", "parameters": { "id": 3384, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3375, "indexed": true, "name": "member", "nodeType": "VariableDeclaration", "scope": 3385, "src": "1512:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3374, "name": "address", "nodeType": "ElementaryTypeName", "src": "1512:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3377, "indexed": false, "name": "registered", "nodeType": "VariableDeclaration", "scope": 3385, "src": "1536:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3376, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1536:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3379, "indexed": false, "name": "eula", "nodeType": "VariableDeclaration", "scope": 3385, "src": "1553:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3378, "name": "string", "nodeType": "ElementaryTypeName", "src": "1553:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3381, "indexed": false, "name": "profile", "nodeType": "VariableDeclaration", "scope": 3385, "src": "1566:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3380, "name": "string", "nodeType": "ElementaryTypeName", "src": "1566:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3383, "indexed": false, "name": "level", "nodeType": "VariableDeclaration", "scope": 3385, "src": "1582:26:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 3382, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "1582:20:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" } ], "src": "1511:98:5" }, "src": "1488:122:5" }, { "anonymous": false, "documentation": "Event emitted when an existing member is changed (without leaving the XBR Network).", "id": 3397, "name": "MemberChanged", "nodeType": "EventDefinition", "parameters": { "id": 3396, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3387, "indexed": true, "name": "member", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1729:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3386, "name": "address", "nodeType": "ElementaryTypeName", "src": "1729:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3389, "indexed": false, "name": "changed", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1753:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3388, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1753:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3391, "indexed": false, "name": "eula", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1767:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3390, "name": "string", "nodeType": "ElementaryTypeName", "src": "1767:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3393, "indexed": false, "name": "profile", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1780:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3392, "name": "string", "nodeType": "ElementaryTypeName", "src": "1780:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3395, "indexed": false, "name": "level", "nodeType": "VariableDeclaration", "scope": 3397, "src": "1796:26:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 3394, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "1796:20:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" } ], "src": "1728:95:5" }, "src": "1708:116:5" }, { "anonymous": false, "documentation": "Event emitted when a member leaves the XBR Network.", "id": 3401, "name": "MemberRetired", "nodeType": "EventDefinition", "parameters": { "id": 3400, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3399, "indexed": false, "name": "member", "nodeType": "VariableDeclaration", "scope": 3401, "src": "1911:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3398, "name": "address", "nodeType": "ElementaryTypeName", "src": "1911:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1910:16:5" }, "src": "1890:37:5" }, { "anonymous": false, "documentation": "Event emitted when the payable status of a coin is changed.", "id": 3409, "name": "CoinChanged", "nodeType": "EventDefinition", "parameters": { "id": 3408, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3403, "indexed": true, "name": "coin", "nodeType": "VariableDeclaration", "scope": 3409, "src": "2020:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3402, "name": "address", "nodeType": "ElementaryTypeName", "src": "2020:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3405, "indexed": false, "name": "operator", "nodeType": "VariableDeclaration", "scope": 3409, "src": "2042:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3404, "name": "address", "nodeType": "ElementaryTypeName", "src": "2042:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3407, "indexed": false, "name": "isPayable", "nodeType": "VariableDeclaration", "scope": 3409, "src": "2060:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3406, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2060:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "2019:56:5" }, "src": "2001:75:5" }, { "constant": true, "id": 3412, "name": "ANYADR", "nodeType": "VariableDeclaration", "scope": 3886, "src": "2161:75:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3410, "name": "address", "nodeType": "ElementaryTypeName", "src": "2161:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": { "argumentTypes": null, "hexValue": "307846466646664666664646666666464666464666464646464666664646466666666646664646466646", "id": 3411, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2194:42:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "value": "0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF" }, "visibility": "public" }, { "constant": false, "id": 3415, "name": "PRESIGNED_TXN_MAX_AGE", "nodeType": "VariableDeclaration", "scope": 3886, "src": "2347:43:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3413, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2347:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "argumentTypes": null, "hexValue": "31343430", "id": 3414, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2386:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1440_by_1", "typeString": "int_const 1440" }, "value": "1440" }, "visibility": "public" }, { "constant": false, "id": 3417, "name": "verifyingChain", "nodeType": "VariableDeclaration", "scope": 3886, "src": "2511:29:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3416, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2511:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3419, "name": "verifyingContract", "nodeType": "VariableDeclaration", "scope": 3886, "src": "2633:32:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3418, "name": "address", "nodeType": "ElementaryTypeName", "src": "2633:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3422, "name": "eula", "nodeType": "VariableDeclaration", "scope": 3886, "src": "2808:69:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 3420, "name": "string", "nodeType": "ElementaryTypeName", "src": "2808:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "argumentTypes": null, "hexValue": "516d563165654465787453645572525551703974555846385364765665796b616977594c67725848485679554c59", "id": 3421, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2829:48:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_25141b0976dea6cbeacca31da79a9f0479a2ae4e4ca3e2ed26297dc4b3192430", "typeString": "literal_string \"QmV1eeDextSdUrRUQp9tUXF8SdvVeykaiwYLgrXHHVyULY\"" }, "value": "QmV1eeDextSdUrRUQp9tUXF8SdvVeykaiwYLgrXHHVyULY" }, "visibility": "public" }, { "constant": false, "id": 3424, "name": "contribution", "nodeType": "VariableDeclaration", "scope": 3886, "src": "3011:27:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3423, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3011:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3426, "name": "token", "nodeType": "VariableDeclaration", "scope": 3886, "src": "3125:21:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" }, "typeName": { "contractScope": null, "id": 3425, "name": "XBRToken", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4327, "src": "3125:8:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3428, "name": "organization", "nodeType": "VariableDeclaration", "scope": 3886, "src": "3229:27:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3427, "name": "address", "nodeType": "ElementaryTypeName", "src": "3229:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3432, "name": "members", "nodeType": "VariableDeclaration", "scope": 3886, "src": "3321:50:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member)" }, "typeName": { "id": 3431, "keyType": { "id": 3429, "name": "address", "nodeType": "ElementaryTypeName", "src": "3329:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3321:35:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member)" }, "valueType": { "contractScope": null, "id": 3430, "name": "XBRTypes.Member", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4363, "src": "3340:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage_ptr", "typeString": "struct XBRTypes.Member" } } }, "value": null, "visibility": "public" }, { "constant": false, "id": 3438, "name": "coins", "nodeType": "VariableDeclaration", "scope": 3886, "src": "3473:57:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" }, "typeName": { "id": 3437, "keyType": { "id": 3433, "name": "address", "nodeType": "ElementaryTypeName", "src": "3481:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3473:44:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" }, "valueType": { "id": 3436, "keyType": { "id": 3434, "name": "address", "nodeType": "ElementaryTypeName", "src": "3500:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3492:24:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 3435, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3511:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } } }, "value": null, "visibility": "public" }, { "body": { "id": 3525, "nodeType": "Block", "src": "3997:867:5", "statements": [ { "assignments": [ 3446 ], "declarations": [ { "constant": false, "id": 3446, "name": "chainId", "nodeType": "VariableDeclaration", "scope": 3525, "src": "4113:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3445, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4113:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3447, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "4113:15:5" }, { "externalReferences": [ { "chainId": { "declaration": 3446, "isOffset": false, "isSlot": false, "src": "4161:7:5", "valueSize": 1 } } ], "id": 3448, "nodeType": "InlineAssembly", "operations": "{ chainId := chainid() }", "src": "4138:53:5" }, { "expression": { "argumentTypes": null, "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3449, "name": "verifyingChain", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3417, "src": "4200:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3450, "name": "chainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3446, "src": "4217:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4200:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3452, "nodeType": "ExpressionStatement", "src": "4200:24:5" }, { "expression": { "argumentTypes": null, "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3453, "name": "verifyingContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3419, "src": "4234:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3455, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6382, "src": "4262:4:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } ], "id": 3454, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4254:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3456, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4254:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4234:33:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3458, "nodeType": "ExpressionStatement", "src": "4234:33:5" }, { "expression": { "argumentTypes": null, "id": 3463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3459, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3426, "src": "4278:5:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3461, "name": "networkToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3440, "src": "4295:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3460, "name": "XBRToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4327, "src": "4286:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRToken_$4327_$", "typeString": "type(contract XBRToken)" } }, "id": 3462, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4286:22:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "src": "4278:30:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "id": 3464, "nodeType": "ExpressionStatement", "src": "4278:30:5" }, { "expression": { "argumentTypes": null, "id": 3471, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3465, "name": "coins", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3438, "src": "4318:5:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, "id": 3468, "indexExpression": { "argumentTypes": null, "id": 3466, "name": "networkToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3440, "src": "4324:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4318:19:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3469, "indexExpression": { "argumentTypes": null, "id": 3467, "name": "ANYADR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3412, "src": "4338:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4318:27:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 3470, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4348:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "4318:34:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3472, "nodeType": "ExpressionStatement", "src": "4318:34:5" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3474, "name": "networkToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3440, "src": "4379:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3475, "name": "ANYADR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3412, "src": "4393:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "hexValue": "74727565", "id": 3476, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "4401:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3473, "name": "CoinChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3409, "src": "4367:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,address,bool)" } }, "id": 3477, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4367:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3478, "nodeType": "EmitStatement", "src": "4362:44:5" }, { "expression": { "argumentTypes": null, "id": 3487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3479, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3424, "src": "4417:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 3480, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3426, "src": "4432:5:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "id": 3481, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 5833, "src": "4432:17:5", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4432:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "hexValue": "3330", "id": 3483, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4454:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_30_by_1", "typeString": "int_const 30" }, "value": "30" }, "src": "4432:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "hexValue": "313030", "id": 3485, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4459:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "src": "4432:30:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "4417:45:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3488, "nodeType": "ExpressionStatement", "src": "4417:45:5" }, { "expression": { "argumentTypes": null, "id": 3491, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3489, "name": "organization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3428, "src": "4473:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3490, "name": "networkOrganization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3442, "src": "4488:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "4473:34:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3492, "nodeType": "ExpressionStatement", "src": "4473:34:5" }, { "assignments": [ 3494 ], "declarations": [ { "constant": false, "id": 3494, "name": "registered", "nodeType": "VariableDeclaration", "scope": 3525, "src": "4518:18:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3493, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4518:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 3497, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3495, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "4539:5:5", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4539:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "4518:36:5" }, { "expression": { "argumentTypes": null, "id": 3512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3498, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "4671:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3501, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3499, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "4679:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4679:10:5", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "4671:19:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3504, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3494, "src": "4709:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "hexValue": "", "id": 3505, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4721:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "hexValue": "", "id": 3506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4725:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3507, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "4729:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "4729:20:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 3509, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4729:29:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, { "argumentTypes": null, "hexValue": "", "id": 3510, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4760:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "expression": { "argumentTypes": null, "id": 3502, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "4693:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Member", "nodeType": "MemberAccess", "referencedDeclaration": 4363, "src": "4693:15:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Member_$4363_storage_ptr_$", "typeString": "type(struct XBRTypes.Member storage pointer)" } }, "id": 3511, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4693:70:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_memory", "typeString": "struct XBRTypes.Member memory" } }, "src": "4671:92:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3513, "nodeType": "ExpressionStatement", "src": "4671:92:5" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3515, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "4795:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4795:10:5", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 3517, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3494, "src": "4807:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "hexValue": "", "id": 3518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4819:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "hexValue": "", "id": 3519, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4823:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3520, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "4827:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "4827:20:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 3522, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "4827:29:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } ], "id": 3514, "name": "MemberRegistered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3385, "src": "4778:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_enum$_MemberLevel_$4337_$returns$__$", "typeString": "function (address,uint256,string memory,string memory,enum XBRTypes.MemberLevel)" } }, "id": 3523, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4778:79:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3524, "nodeType": "EmitStatement", "src": "4773:84:5" } ] }, "documentation": "Create the XBR network.\n\n /// @param networkToken The token to run this network itself on. Note that XBR data markets can use\n any ERC20 token (enabled in the ``coins`` mapping of this contract) as\n a means of payment in the respective market.\n @param networkOrganization The XBR network organization address.", "id": 3526, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 3443, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3440, "name": "networkToken", "nodeType": "VariableDeclaration", "scope": 3526, "src": "3939:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3439, "name": "address", "nodeType": "ElementaryTypeName", "src": "3939:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3442, "name": "networkOrganization", "nodeType": "VariableDeclaration", "scope": 3526, "src": "3961:27:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3441, "name": "address", "nodeType": "ElementaryTypeName", "src": "3961:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3938:51:5" }, "returnParameters": { "id": 3444, "nodeType": "ParameterList", "parameters": [], "src": "3997:0:5" }, "scope": 3886, "src": "3926:938:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3543, "nodeType": "Block", "src": "5430:90:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3534, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "5456:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5456:10:5", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3536, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "5468:5:5", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5468:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3538, "name": "networkEula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3528, "src": "5482:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 3539, "name": "memberProfile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3530, "src": "5495:13:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "hexValue": "", "id": 3540, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5510:2:5", "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_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "id": 3533, "name": "_registerMember", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3674, "src": "5440:15:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,string memory,string memory,bytes memory)" } }, "id": 3541, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5440:73:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3542, "nodeType": "ExpressionStatement", "src": "5440:73:5" } ] }, "documentation": "Register the sender of this transaction in the XBR network. All XBR stakeholders, namely data\n providers (\"sellers\"), data consumers (\"buyers\") and data market operators, must be registered\n in the XBR network.\n\n /// @param networkEula Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS.\n @param memberProfile Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.", "id": 3544, "implemented": true, "kind": "function", "modifiers": [], "name": "registerMember", "nodeType": "FunctionDefinition", "parameters": { "id": 3531, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3528, "name": "networkEula", "nodeType": "VariableDeclaration", "scope": 3544, "src": "5367:25:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3527, "name": "string", "nodeType": "ElementaryTypeName", "src": "5367:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3530, "name": "memberProfile", "nodeType": "VariableDeclaration", "scope": 3544, "src": "5394:27:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3529, "name": "string", "nodeType": "ElementaryTypeName", "src": "5394:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "5366:56:5" }, "returnParameters": { "id": 3532, "nodeType": "ParameterList", "parameters": [], "src": "5430:0:5" }, "scope": 3886, "src": "5342:178:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3605, "nodeType": "Block", "src": "6586:638:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3560, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3546, "src": "6649:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3563, "name": "verifyingChain", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3417, "src": "6687:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3564, "name": "verifyingContract", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3419, "src": "6703:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3565, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3546, "src": "6734:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3566, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3548, "src": "6742:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3567, "name": "networkEula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3550, "src": "6754:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 3568, "name": "memberProfile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3552, "src": "6767:13:5", "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_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 3561, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "6657:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "EIP712MemberRegister", "nodeType": "MemberAccess", "referencedDeclaration": 4521, "src": "6657:29:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EIP712MemberRegister_$4521_storage_ptr_$", "typeString": "type(struct XBRTypes.EIP712MemberRegister storage pointer)" } }, "id": 3569, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6657:124:5", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712MemberRegister_$4521_memory", "typeString": "struct XBRTypes.EIP712MemberRegister memory" } }, { "argumentTypes": null, "id": 3570, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3554, "src": "6783:9:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_EIP712MemberRegister_$4521_memory", "typeString": "struct XBRTypes.EIP712MemberRegister memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 3558, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "6633:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", "referencedDeclaration": 5109, "src": "6633:15:5", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_address_$_t_struct$_EIP712MemberRegister_$4521_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,struct XBRTypes.EIP712MemberRegister memory,bytes memory) pure returns (bool)" } }, "id": 3571, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6633:160:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4d454d4245525f52454749535445525f5349474e4154555245", "id": 3572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6795:35:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1641308f91d7fa3ded432b1ab2f9cb5c04d26b93c850a7bdba819b95d6f21459", "typeString": "literal_string \"INVALID_MEMBER_REGISTER_SIGNATURE\"" }, "value": "INVALID_MEMBER_REGISTER_SIGNATURE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_1641308f91d7fa3ded432b1ab2f9cb5c04d26b93c850a7bdba819b95d6f21459", "typeString": "literal_string \"INVALID_MEMBER_REGISTER_SIGNATURE\"" } ], "id": 3557, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "6625:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3573, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6625:206:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3574, "nodeType": "ExpressionStatement", "src": "6625:206:5" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3593, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3579, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3576, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3548, "src": "6959:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3577, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "6973:5:5", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6973:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6959:26:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3591, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3580, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "6990:5:5", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6990:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 3582, "name": "PRESIGNED_TXN_MAX_AGE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3415, "src": "7006:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6990:37:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3584, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3548, "src": "7043:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3585, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "7058:5:5", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7058:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 3587, "name": "PRESIGNED_TXN_MAX_AGE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3415, "src": "7073:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7058:36:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 3589, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "7057:38:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "7043:52:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6990:105:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 3592, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "6989:107:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6959:137:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f524547495354455245445f424c4f434b5f4e554d424552", "id": 3594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7098:33:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5a77a8f658683c076ef227088e3a5aad094db6d42966d121deadd22b9916f815", "typeString": "literal_string \"INVALID_REGISTERED_BLOCK_NUMBER\"" }, "value": "INVALID_REGISTERED_BLOCK_NUMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_5a77a8f658683c076ef227088e3a5aad094db6d42966d121deadd22b9916f815", "typeString": "literal_string \"INVALID_REGISTERED_BLOCK_NUMBER\"" } ], "id": 3575, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "6951:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3595, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6951:181:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3596, "nodeType": "ExpressionStatement", "src": "6951:181:5" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3598, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3546, "src": "7159:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3599, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3548, "src": "7167:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3600, "name": "networkEula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3550, "src": "7179:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 3601, "name": "memberProfile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3552, "src": "7192:13:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 3602, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3554, "src": "7207:9:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "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" } ], "id": 3597, "name": "_registerMember", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3674, "src": "7143:15:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,string memory,string memory,bytes memory)" } }, "id": 3603, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7143:74:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3604, "nodeType": "ExpressionStatement", "src": "7143:74:5" } ] }, "documentation": "Register the specified new member in the XBR Network. All XBR stakeholders, namely data\n providers (\"sellers\"), data consumers (\"buyers\") and data market operators, must be registered\n in the XBR network.\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 Address of the registering (new) member.\n @param registered Block number at which the registering member has created the signature.\n @param networkEula Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS.\n @param memberProfile Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.\n @param signature EIP712 signature, signed by the registering member.", "id": 3606, "implemented": true, "kind": "function", "modifiers": [], "name": "registerMemberFor", "nodeType": "FunctionDefinition", "parameters": { "id": 3555, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3546, "name": "member", "nodeType": "VariableDeclaration", "scope": 3606, "src": "6455:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3545, "name": "address", "nodeType": "ElementaryTypeName", "src": "6455:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3548, "name": "registered", "nodeType": "VariableDeclaration", "scope": 3606, "src": "6471:18:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3547, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6471:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3550, "name": "networkEula", "nodeType": "VariableDeclaration", "scope": 3606, "src": "6491:25:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3549, "name": "string", "nodeType": "ElementaryTypeName", "src": "6491:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3552, "name": "memberProfile", "nodeType": "VariableDeclaration", "scope": 3606, "src": "6526:27:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3551, "name": "string", "nodeType": "ElementaryTypeName", "src": "6526:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3554, "name": "signature", "nodeType": "VariableDeclaration", "scope": 3606, "src": "6555:22:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3553, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6555:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "6454:124:5" }, "returnParameters": { "id": 3556, "nodeType": "ParameterList", "parameters": [], "src": "6586:0:5" }, "scope": 3886, "src": "6427:797:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3673, "nodeType": "Block", "src": "7374:624:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 3627, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3621, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "7451:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3623, "indexExpression": { "argumentTypes": null, "id": 3622, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3608, "src": "7459:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7451:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3624, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 4360, "src": "7451:21:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } ], "id": 3620, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7445:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 3625, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7445:28:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 3626, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7477:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "7445:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4d454d4245525f414c52454144595f52454749535445524544", "id": 3628, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7480:27:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_16b40795a0be72253fc8c7ba426fe7f085b1c1f89abdfdf0708b4a3db23ab9a6", "typeString": "literal_string \"MEMBER_ALREADY_REGISTERED\"" }, "value": "MEMBER_ALREADY_REGISTERED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_16b40795a0be72253fc8c7ba426fe7f085b1c1f89abdfdf0708b4a3db23ab9a6", "typeString": "literal_string \"MEMBER_ALREADY_REGISTERED\"" } ], "id": 3619, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7437:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3629, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7437:71:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3630, "nodeType": "ExpressionStatement", "src": "7437:71:5" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 3644, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3635, "name": "networkEula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3612, "src": "7620:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 3633, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6335, "src": "7609:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 3634, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7609:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 3636, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7609:23:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 3632, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6342, "src": "7599:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 3637, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7599:34:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3641, "name": "eula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3422, "src": "7674:4:5", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } ], "expression": { "argumentTypes": null, "id": 3639, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6335, "src": "7663:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 3640, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7663:10:5", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 3642, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7663:16:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 3638, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6342, "src": "7653:9:5", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 3643, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7653:27:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "7599:81:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f45554c41", "id": 3645, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7682:14:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c321721a97c8c08590d5bae46327f00c6daa94ace4174516864cab214e67ef96", "typeString": "literal_string \"INVALID_EULA\"" }, "value": "INVALID_EULA" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c321721a97c8c08590d5bae46327f00c6daa94ace4174516864cab214e67ef96", "typeString": "literal_string \"INVALID_EULA\"" } ], "id": 3631, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7591:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7591:106:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3647, "nodeType": "ExpressionStatement", "src": "7591:106:5" }, { "expression": { "argumentTypes": null, "id": 3661, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3648, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "7739:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3650, "indexExpression": { "argumentTypes": null, "id": 3649, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3608, "src": "7747:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7739:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3653, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3610, "src": "7773:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3654, "name": "networkEula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3612, "src": "7785:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 3655, "name": "profile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3614, "src": "7798:7:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3656, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7807:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "7807:20:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 3658, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7807:27:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, { "argumentTypes": null, "id": 3659, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3616, "src": "7836:9:5", "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_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 3651, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7757:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Member", "nodeType": "MemberAccess", "referencedDeclaration": 4363, "src": "7757:15:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Member_$4363_storage_ptr_$", "typeString": "type(struct XBRTypes.Member storage pointer)" } }, "id": 3660, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7757:89:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_memory", "typeString": "struct XBRTypes.Member memory" } }, "src": "7739:107:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3662, "nodeType": "ExpressionStatement", "src": "7739:107:5" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3664, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3608, "src": "7921:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3665, "name": "registered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3610, "src": "7929:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 3666, "name": "networkEula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3612, "src": "7941:11:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 3667, "name": "profile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3614, "src": "7954:7:5", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3668, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7963:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 3669, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "7963:20:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 3670, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7963:27:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } ], "id": 3663, "name": "MemberRegistered", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3385, "src": "7904:16:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_enum$_MemberLevel_$4337_$returns$__$", "typeString": "function (address,uint256,string memory,string memory,enum XBRTypes.MemberLevel)" } }, "id": 3671, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7904:87:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3672, "nodeType": "EmitStatement", "src": "7899:92:5" } ] }, "documentation": null, "id": 3674, "implemented": true, "kind": "function", "modifiers": [], "name": "_registerMember", "nodeType": "FunctionDefinition", "parameters": { "id": 3617, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3608, "name": "member", "nodeType": "VariableDeclaration", "scope": 3674, "src": "7256:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3607, "name": "address", "nodeType": "ElementaryTypeName", "src": "7256:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3610, "name": "registered", "nodeType": "VariableDeclaration", "scope": 3674, "src": "7272:18:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3609, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7272:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3612, "name": "networkEula", "nodeType": "VariableDeclaration", "scope": 3674, "src": "7292:25:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3611, "name": "string", "nodeType": "ElementaryTypeName", "src": "7292:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3614, "name": "profile", "nodeType": "VariableDeclaration", "scope": 3674, "src": "7319:21:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 3613, "name": "string", "nodeType": "ElementaryTypeName", "src": "7319:6:5", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3616, "name": "signature", "nodeType": "VariableDeclaration", "scope": 3674, "src": "7342:22:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 3615, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7342:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "7255:110:5" }, "returnParameters": { "id": 3618, "nodeType": "ParameterList", "parameters": [], "src": "7374:0:5" }, "scope": 3886, "src": "7230:768:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { "id": 3719, "nodeType": "Block", "src": "8423:274:5", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 3687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3683, "name": "networkToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3676, "src": "8437:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3685, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3426, "src": "8461:5:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } ], "id": 3684, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8453:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3686, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8453:14:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "8437:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 3717, "nodeType": "Block", "src": "8654:37:5", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8675:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 3682, "id": 3716, "nodeType": "Return", "src": "8668:12:5" } ] }, "id": 3718, "nodeType": "IfStatement", "src": "8433:258:5", "trueBody": { "id": 3714, "nodeType": "Block", "src": "8469:179:5", "statements": [ { "expression": { "argumentTypes": null, "id": 3696, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3688, "name": "coins", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3438, "src": "8483:5:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, "id": 3693, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3690, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3426, "src": "8497:5:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } ], "id": 3689, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8489:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3691, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8489:14:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8483:21:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3694, "indexExpression": { "argumentTypes": null, "id": 3692, "name": "ANYADR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3412, "src": "8505:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8483:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3695, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8515:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "8483:37:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3697, "nodeType": "ExpressionStatement", "src": "8483:37:5" }, { "expression": { "argumentTypes": null, "id": 3702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3698, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3426, "src": "8534:5:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3700, "name": "networkToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3676, "src": "8551:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3699, "name": "XBRToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4327, "src": "8542:8:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRToken_$4327_$", "typeString": "type(contract XBRToken)" } }, "id": 3701, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8542:22:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "src": "8534:30:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "id": 3703, "nodeType": "ExpressionStatement", "src": "8534:30:5" }, { "expression": { "argumentTypes": null, "id": 3710, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3704, "name": "coins", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3438, "src": "8578:5:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, "id": 3707, "indexExpression": { "argumentTypes": null, "id": 3705, "name": "networkToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3676, "src": "8584:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8578:19:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3708, "indexExpression": { "argumentTypes": null, "id": 3706, "name": "ANYADR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3412, "src": "8598:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8578:27:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 3709, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8608:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "8578:34:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3711, "nodeType": "ExpressionStatement", "src": "8578:34:5" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3712, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8633:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3682, "id": 3713, "nodeType": "Return", "src": "8626:11:5" } ] } } ] }, "documentation": "Set the XBR network organization address.\n\n /// @param networkToken The token to run this network itself on. Note that XBR data markets can use\n any ERC20 token (enabled in the ``coins`` mapping of this contract) as\n a means of payment in the respective market.", "id": 3720, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 3679, "modifierName": { "argumentTypes": null, "id": 3678, "name": "onlyMaintainer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1662, "src": "8393:14:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "8393:14:5" } ], "name": "setNetworkToken", "nodeType": "FunctionDefinition", "parameters": { "id": 3677, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3676, "name": "networkToken", "nodeType": "VariableDeclaration", "scope": 3720, "src": "8364:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3675, "name": "address", "nodeType": "ElementaryTypeName", "src": "8364:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "8363:22:5" }, "returnParameters": { "id": 3682, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3681, "name": "", "nodeType": "VariableDeclaration", "scope": 3720, "src": "8417:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3680, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8417:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8416:6:5" }, "scope": 3886, "src": "8338:359:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3745, "nodeType": "Block", "src": "8933:193:5", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 3733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3729, "name": "networkOrganization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3722, "src": "8947:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3731, "name": "organization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3428, "src": "8978:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3730, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8970:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 3732, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8970:21:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "8947:44:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 3743, "nodeType": "Block", "src": "9083:37:5", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3741, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "9104:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 3728, "id": 3742, "nodeType": "Return", "src": "9097:12:5" } ] }, "id": 3744, "nodeType": "IfStatement", "src": "8943:177:5", "trueBody": { "id": 3740, "nodeType": "Block", "src": "8993:84:5", "statements": [ { "expression": { "argumentTypes": null, "id": 3736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3734, "name": "organization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3428, "src": "9007:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3735, "name": "networkOrganization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3722, "src": "9022:19:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "9007:34:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3737, "nodeType": "ExpressionStatement", "src": "9007:34:5" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3738, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "9062:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3728, "id": 3739, "nodeType": "Return", "src": "9055:11:5" } ] } } ] }, "documentation": "Set the XBR network organization address.\n\n /// @param networkOrganization The XBR network organization address.", "id": 3746, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 3725, "modifierName": { "argumentTypes": null, "id": 3724, "name": "onlyMaintainer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1662, "src": "8903:14:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "8903:14:5" } ], "name": "setNetworkOrganization", "nodeType": "FunctionDefinition", "parameters": { "id": 3723, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3722, "name": "networkOrganization", "nodeType": "VariableDeclaration", "scope": 3746, "src": "8867:27:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3721, "name": "address", "nodeType": "ElementaryTypeName", "src": "8867:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "8866:29:5" }, "returnParameters": { "id": 3728, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3727, "name": "", "nodeType": "VariableDeclaration", "scope": 3746, "src": "8927:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3726, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8927:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "8926:6:5" }, "scope": 3886, "src": "8834:292:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3805, "nodeType": "Block", "src": "9681:358:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3759, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "9704:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3762, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3760, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "9712:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 3761, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9712:10:5", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9704:19:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3763, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 4360, "src": "9704:25:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } ], "id": 3758, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9699:4:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 3764, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9699:31:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 3765, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9734:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "9699:36:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d454d424552", "id": 3767, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9737:16:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4033f0d2aee40aa8c26dd7a43827b900bd2b7b740bfb635777273e01722db306", "typeString": "literal_string \"NO_SUCH_MEMBER\"" }, "value": "NO_SUCH_MEMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_4033f0d2aee40aa8c26dd7a43827b900bd2b7b740bfb635777273e01722db306", "typeString": "literal_string \"NO_SUCH_MEMBER\"" } ], "id": 3757, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "9691:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3768, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9691:63:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3769, "nodeType": "ExpressionStatement", "src": "9691:63:5" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 3775, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3770, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "9768:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3772, "indexExpression": { "argumentTypes": null, "id": 3771, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "9776:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9768:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3773, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 4360, "src": "9768:21:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 3774, "name": "level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3750, "src": "9793:5:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "9768:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 3803, "nodeType": "Block", "src": "9996:37:5", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3801, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10017:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 3756, "id": 3802, "nodeType": "Return", "src": "10010:12:5" } ] }, "id": 3804, "nodeType": "IfStatement", "src": "9764:269:5", "trueBody": { "id": 3800, "nodeType": "Block", "src": "9800:190:5", "statements": [ { "expression": { "argumentTypes": null, "id": 3781, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3776, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "9814:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3778, "indexExpression": { "argumentTypes": null, "id": 3777, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "9822:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9814:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3779, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 4360, "src": "9814:21:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3780, "name": "level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3750, "src": "9838:5:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "9814:29:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "id": 3782, "nodeType": "ExpressionStatement", "src": "9814:29:5" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3784, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "9876:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3785, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "9884:5:5", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 3786, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9884:15:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3787, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "9901:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3789, "indexExpression": { "argumentTypes": null, "id": 3788, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "9909:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9901:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3790, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "eula", "nodeType": "MemberAccess", "referencedDeclaration": 4356, "src": "9901:20:5", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3791, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3432, "src": "9923:7:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$4363_storage_$", "typeString": "mapping(address => struct XBRTypes.Member storage ref)" } }, "id": 3793, "indexExpression": { "argumentTypes": null, "id": 3792, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3748, "src": "9931:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9923:15:5", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$4363_storage", "typeString": "struct XBRTypes.Member storage ref" } }, "id": 3794, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "profile", "nodeType": "MemberAccess", "referencedDeclaration": 4358, "src": "9923:23:5", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "argumentTypes": null, "id": 3795, "name": "level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3750, "src": "9948:5:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } ], "id": 3783, "name": "MemberChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3397, "src": "9862:13:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_enum$_MemberLevel_$4337_$returns$__$", "typeString": "function (address,uint256,string memory,string memory,enum XBRTypes.MemberLevel)" } }, "id": 3796, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9862:92:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3797, "nodeType": "EmitStatement", "src": "9857:97:5" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3798, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "9975:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3756, "id": 3799, "nodeType": "Return", "src": "9968:11:5" } ] } } ] }, "documentation": "Set (override manually) the member level of a XBR Network member. Being able to do so\n currently serves two purposes:\n\n /// - having a last resort to handle situation where members violated the EULA\n - being able to manually patch things in error/bug cases\n\n /// @param member The address of the XBR network member to override member level.\n @param level The member level to set the member to.", "id": 3806, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 3753, "modifierName": { "argumentTypes": null, "id": 3752, "name": "onlyMaintainer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1662, "src": "9651:14:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "9651:14:5" } ], "name": "setMemberLevel", "nodeType": "FunctionDefinition", "parameters": { "id": 3751, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3748, "name": "member", "nodeType": "VariableDeclaration", "scope": 3806, "src": "9600:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3747, "name": "address", "nodeType": "ElementaryTypeName", "src": "9600:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3750, "name": "level", "nodeType": "VariableDeclaration", "scope": 3806, "src": "9616:26:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 3749, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "9616:20:5", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" } ], "src": "9599:44:5" }, "returnParameters": { "id": 3756, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3755, "name": "", "nodeType": "VariableDeclaration", "scope": 3806, "src": "9675:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3754, "name": "bool", "nodeType": "ElementaryTypeName", "src": "9675:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "9674:6:5" }, "scope": 3886, "src": "9575:464:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3847, "nodeType": "Block", "src": "10401:239:5", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3819, "name": "coins", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3438, "src": "10415:5:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, "id": 3821, "indexExpression": { "argumentTypes": null, "id": 3820, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3808, "src": "10421:4:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10415:11:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3823, "indexExpression": { "argumentTypes": null, "id": 3822, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3810, "src": "10427:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10415:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 3824, "name": "isPayable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3812, "src": "10440:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "10415:34:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 3845, "nodeType": "Block", "src": "10597:37:5", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3843, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10618:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 3818, "id": 3844, "nodeType": "Return", "src": "10611:12:5" } ] }, "id": 3846, "nodeType": "IfStatement", "src": "10411:223:5", "trueBody": { "id": 3842, "nodeType": "Block", "src": "10451:140:5", "statements": [ { "expression": { "argumentTypes": null, "id": 3832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 3826, "name": "coins", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3438, "src": "10465:5:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, "id": 3829, "indexExpression": { "argumentTypes": null, "id": 3827, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3808, "src": "10471:4:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10465:11:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 3830, "indexExpression": { "argumentTypes": null, "id": 3828, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3810, "src": "10477:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10465:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3831, "name": "isPayable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3812, "src": "10489:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "10465:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 3833, "nodeType": "ExpressionStatement", "src": "10465:33:5" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3835, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3808, "src": "10529:4:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3836, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3810, "src": "10535:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 3837, "name": "isPayable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3812, "src": "10545:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 3834, "name": "CoinChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3409, "src": "10517:11:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,address,bool)" } }, "id": 3838, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10517:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3839, "nodeType": "EmitStatement", "src": "10512:43:5" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10576:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3818, "id": 3841, "nodeType": "Return", "src": "10569:11:5" } ] } } ] }, "documentation": "Set ERC20 coins as usable as a means of payment when opening data markets.\n\n /// @param coin The address of the ERC20 coin to change.\n @param isPayable When true, the coin can be specified when opening a new data market.", "id": 3848, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 3815, "modifierName": { "argumentTypes": null, "id": 3814, "name": "onlyMaintainer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1662, "src": "10371:14:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "10371:14:5" } ], "name": "setCoinPayable", "nodeType": "FunctionDefinition", "parameters": { "id": 3813, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3808, "name": "coin", "nodeType": "VariableDeclaration", "scope": 3848, "src": "10316:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3807, "name": "address", "nodeType": "ElementaryTypeName", "src": "10316:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3810, "name": "operator", "nodeType": "VariableDeclaration", "scope": 3848, "src": "10330:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3809, "name": "address", "nodeType": "ElementaryTypeName", "src": "10330:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3812, "name": "isPayable", "nodeType": "VariableDeclaration", "scope": 3848, "src": "10348:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3811, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10348:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "10315:48:5" }, "returnParameters": { "id": 3818, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3817, "name": "", "nodeType": "VariableDeclaration", "scope": 3848, "src": "10395:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3816, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10395:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "10394:6:5" }, "scope": 3886, "src": "10291:349:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 3884, "nodeType": "Block", "src": "10738:297:5", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 3866, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3858, "name": "networkContribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3850, "src": "10756:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 3859, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10779:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "10756:24:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3861, "name": "networkContribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3850, "src": "10784:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 3862, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3426, "src": "10807:5:5", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "id": 3863, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 5833, "src": "10807:17:5", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 3864, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10807:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10784:42:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "10756:70:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f434f4e545249425554494f4e", "id": 3867, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "10828:22:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_19a884fa0b1bb02bcab06edf1577a9b594aebaf029a934895489d96c8a9ec31a", "typeString": "literal_string \"INVALID_CONTRIBUTION\"" }, "value": "INVALID_CONTRIBUTION" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_19a884fa0b1bb02bcab06edf1577a9b594aebaf029a934895489d96c8a9ec31a", "typeString": "literal_string \"INVALID_CONTRIBUTION\"" } ], "id": 3857, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "10748:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 3868, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10748:103:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3869, "nodeType": "ExpressionStatement", "src": "10748:103:5" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 3870, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3424, "src": "10865:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 3871, "name": "networkContribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3850, "src": "10881:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10865:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 3882, "nodeType": "Block", "src": "10992:37:5", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "66616c7365", "id": 3880, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "11013:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 3856, "id": 3881, "nodeType": "Return", "src": "11006:12:5" } ] }, "id": 3883, "nodeType": "IfStatement", "src": "10861:168:5", "trueBody": { "id": 3879, "nodeType": "Block", "src": "10902:84:5", "statements": [ { "expression": { "argumentTypes": null, "id": 3875, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3873, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3424, "src": "10916:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 3874, "name": "networkContribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3850, "src": "10931:19:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10916:34:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 3876, "nodeType": "ExpressionStatement", "src": "10916:34:5" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", "id": 3877, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "10971:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 3856, "id": 3878, "nodeType": "Return", "src": "10964:11:5" } ] } } ] }, "documentation": null, "id": 3885, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 3853, "modifierName": { "argumentTypes": null, "id": 3852, "name": "onlyMaintainer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1662, "src": "10708:14:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "10708:14:5" } ], "name": "setContribution", "nodeType": "FunctionDefinition", "parameters": { "id": 3851, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3850, "name": "networkContribution", "nodeType": "VariableDeclaration", "scope": 3885, "src": "10672:27:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 3849, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10672:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "10671:29:5" }, "returnParameters": { "id": 3856, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3855, "name": "", "nodeType": "VariableDeclaration", "scope": 3885, "src": "10732:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3854, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10732:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "10731:6:5" }, "scope": 3886, "src": "10646:389:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 3887, "src": "1261:9776:5" } ], "src": "810:10228:5" }, "compiler": { "name": "solc", "version": "0.5.16+commit.9c3226ce.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.1.0", "updatedAt": "2020-04-13T15:29:57.193Z", "devdoc": { "methods": { "addMaintainer(address)": { "params": { "account": "The account to grant maintainer rights to." } }, "constructor": { "params": { "networkOrganization": "The XBR network organization address.", "networkToken": "The token to run this network itself on. Note that XBR data markets can use any ERC20 token (enabled in the ``coins`` mapping of this contract) as a means of payment in the respective market." } }, "isMaintainer(address)": { "params": { "account": "The account to check." }, "return": "`true` if the account is maintainer, otherwise `false`." }, "registerMember(string,string)": { "params": { "memberProfile": "Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.", "networkEula": "Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS." } }, "registerMemberFor(address,uint256,string,string,bytes)": { "params": { "member": "Address of the registering (new) member.", "memberProfile": "Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.", "networkEula": "Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS.", "registered": "Block number at which the registering member has created the signature.", "signature": "EIP712 signature, signed by the registering member." } }, "setCoinPayable(address,address,bool)": { "params": { "coin": "The address of the ERC20 coin to change.", "isPayable": "When true, the coin can be specified when opening a new data market." } }, "setMemberLevel(address,uint8)": { "params": { "level": "The member level to set the member to.", "member": "The address of the XBR network member to override member level." } }, "setNetworkOrganization(address)": { "params": { "networkOrganization": "The XBR network organization address." } }, "setNetworkToken(address)": { "params": { "networkToken": "The token to run this network itself on. Note that XBR data markets can use any ERC20 token (enabled in the ``coins`` mapping of this contract) as a means of payment in the respective market." } } } }, "userdoc": { "methods": { "addMaintainer(address)": { "notice": "Add a new maintainer to the list of maintainers." }, "constructor": "Create the XBR network. ", "isMaintainer(address)": { "notice": "Check if the given address is currently a maintainer." }, "registerMember(string,string)": { "notice": "Register the sender of this transaction in the XBR network. All XBR stakeholders, namely data providers (\"sellers\"), data consumers (\"buyers\") and data market operators, must be registered in the XBR network. " }, "registerMemberFor(address,uint256,string,string,bytes)": { "notice": "Register the specified new member in the XBR Network. All XBR stakeholders, namely data providers (\"sellers\"), data consumers (\"buyers\") and data market operators, must be registered in the XBR network. /// 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." }, "setCoinPayable(address,address,bool)": { "notice": "Set ERC20 coins as usable as a means of payment when opening data markets. " }, "setMemberLevel(address,uint8)": { "notice": "Set (override manually) the member level of a XBR Network member. Being able to do so currently serves two purposes: /// - having a last resort to handle situation where members violated the EULA - being able to manually patch things in error/bug cases " }, "setNetworkOrganization(address)": { "notice": "Set the XBR network organization address. " }, "setNetworkToken(address)": { "notice": "Set the XBR network organization address. " } }, "notice": "The `XBR Network `__ contract is the on-chain anchor of and the entry point to the XBR protocol." } }