{ "contractName": "XBRNetwork", "abi": [ { "constant": true, "inputs": [], "name": "organization", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "renounceMaintainer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "account", "type": "address" } ], "name": "addMaintainer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "account", "type": "address" } ], "name": "isMaintainer", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "token", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [ { "name": "token_", "type": "address" }, { "name": "organization_", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "member", "type": "address" }, { "indexed": false, "name": "eula", "type": "string" }, { "indexed": false, "name": "profile", "type": "string" }, { "indexed": false, "name": "level", "type": "uint8" } ], "name": "MemberCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "member", "type": "address" } ], "name": "MemberRetired", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "domainId", "type": "bytes16" }, { "indexed": false, "name": "domainSeq", "type": "uint32" }, { "indexed": false, "name": "status", "type": "uint8" }, { "indexed": false, "name": "owner", "type": "address" }, { "indexed": false, "name": "domainKey", "type": "bytes32" }, { "indexed": false, "name": "license", "type": "string" }, { "indexed": false, "name": "terms", "type": "string" }, { "indexed": false, "name": "meta", "type": "string" } ], "name": "DomainCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "domainId", "type": "bytes16" }, { "indexed": false, "name": "domainSeq", "type": "uint32" }, { "indexed": false, "name": "status", "type": "uint8" }, { "indexed": false, "name": "owner", "type": "address" }, { "indexed": false, "name": "domainKey", "type": "bytes32" }, { "indexed": false, "name": "license", "type": "string" }, { "indexed": false, "name": "terms", "type": "string" }, { "indexed": false, "name": "meta", "type": "string" } ], "name": "DomainUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "domainId", "type": "bytes16" }, { "indexed": false, "name": "status", "type": "uint8" } ], "name": "DomainClosed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "domainId", "type": "bytes16" }, { "indexed": false, "name": "nodeId", "type": "bytes16" }, { "indexed": false, "name": "nodeKey", "type": "bytes32" }, { "indexed": false, "name": "config", "type": "string" } ], "name": "NodePaired", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "domainId", "type": "bytes16" }, { "indexed": false, "name": "nodeId", "type": "bytes16" }, { "indexed": false, "name": "nodeKey", "type": "bytes32" }, { "indexed": false, "name": "config", "type": "string" } ], "name": "NodeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "domainId", "type": "bytes16" }, { "indexed": false, "name": "nodeId", "type": "bytes16" } ], "name": "NodeReleased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "marketId", "type": "bytes16" }, { "indexed": false, "name": "marketSeq", "type": "uint32" }, { "indexed": false, "name": "owner", "type": "address" }, { "indexed": false, "name": "terms", "type": "string" }, { "indexed": false, "name": "meta", "type": "string" }, { "indexed": false, "name": "maker", "type": "address" }, { "indexed": false, "name": "providerSecurity", "type": "uint256" }, { "indexed": false, "name": "consumerSecurity", "type": "uint256" }, { "indexed": false, "name": "marketFee", "type": "uint256" } ], "name": "MarketCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "marketId", "type": "bytes16" }, { "indexed": false, "name": "marketSeq", "type": "uint32" }, { "indexed": false, "name": "owner", "type": "address" }, { "indexed": false, "name": "terms", "type": "string" }, { "indexed": false, "name": "meta", "type": "string" }, { "indexed": false, "name": "maker", "type": "address" }, { "indexed": false, "name": "providerSecurity", "type": "uint256" }, { "indexed": false, "name": "consumerSecurity", "type": "uint256" }, { "indexed": false, "name": "marketFee", "type": "uint256" } ], "name": "MarketUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "marketId", "type": "bytes16" } ], "name": "MarketClosed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "marketId", "type": "bytes16" }, { "indexed": false, "name": "actor", "type": "address" }, { "indexed": false, "name": "actorType", "type": "uint8" }, { "indexed": false, "name": "security", "type": "uint256" } ], "name": "ActorJoined", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "marketId", "type": "bytes16" }, { "indexed": false, "name": "actor", "type": "address" } ], "name": "ActorLeft", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "marketId", "type": "bytes16" }, { "indexed": false, "name": "sender", "type": "address" }, { "indexed": false, "name": "delegate", "type": "address" }, { "indexed": false, "name": "receiver", "type": "address" }, { "indexed": false, "name": "channel", "type": "address" } ], "name": "PaymentChannelCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "marketId", "type": "bytes16" }, { "indexed": false, "name": "sender", "type": "address" }, { "indexed": false, "name": "delegate", "type": "address" }, { "indexed": false, "name": "receiver", "type": "address" }, { "indexed": false, "name": "amount", "type": "uint256" }, { "indexed": false, "name": "timeout", "type": "uint32" } ], "name": "PayingChannelRequestCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "account", "type": "address" } ], "name": "MaintainerAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "account", "type": "address" } ], "name": "MaintainerRemoved", "type": "event" }, { "constant": false, "inputs": [ { "name": "eula", "type": "string" }, { "name": "profile", "type": "string" } ], "name": "register", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "unregister", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "member", "type": "address" } ], "name": "getMemberLevel", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "member", "type": "address" } ], "name": "getMemberEula", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "member", "type": "address" } ], "name": "getMemberProfile", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "member", "type": "address" }, { "name": "level", "type": "uint8" } ], "name": "setMemberLevel", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "domainId", "type": "bytes16" }, { "name": "domainKey", "type": "bytes32" }, { "name": "license", "type": "string" }, { "name": "terms", "type": "string" }, { "name": "meta", "type": "string" } ], "name": "createDomain", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "domainId", "type": "bytes16" } ], "name": "closeDomain", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "domainId", "type": "bytes16" } ], "name": "getDomainStatus", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "domainId", "type": "bytes16" } ], "name": "getDomainOwner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "domainId", "type": "bytes16" } ], "name": "getDomainKey", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "domainId", "type": "bytes16" } ], "name": "getDomainLicense", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "domainId", "type": "bytes16" } ], "name": "getDomainTerms", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "domainId", "type": "bytes16" } ], "name": "getDomainMeta", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "nodeId", "type": "bytes16" }, { "name": "domainId", "type": "bytes16" }, { "name": "nodeType", "type": "uint8" }, { "name": "nodeKey", "type": "bytes32" }, { "name": "config", "type": "string" } ], "name": "pairNode", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "nodeId", "type": "bytes16" } ], "name": "releaseNode", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "nodeKey", "type": "bytes32" } ], "name": "getNodeByKey", "outputs": [ { "name": "", "type": "bytes16" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "nodeId", "type": "bytes16" } ], "name": "getNodeDomain", "outputs": [ { "name": "", "type": "bytes16" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "nodeId", "type": "bytes16" } ], "name": "getNodeType", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "nodeId", "type": "bytes16" } ], "name": "getNodeKey", "outputs": [ { "name": "", "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "nodeId", "type": "bytes16" } ], "name": "getNodeConfig", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "marketId", "type": "bytes16" }, { "name": "terms", "type": "string" }, { "name": "meta", "type": "string" }, { "name": "maker", "type": "address" }, { "name": "providerSecurity", "type": "uint256" }, { "name": "consumerSecurity", "type": "uint256" }, { "name": "marketFee", "type": "uint256" } ], "name": "createMarket", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "maker", "type": "address" } ], "name": "getMarketByMaker", "outputs": [ { "name": "", "type": "bytes16" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" } ], "name": "getMarketOwner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" } ], "name": "getMarketTerms", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" } ], "name": "getMarketMeta", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" } ], "name": "getMarketMaker", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" } ], "name": "getMarketProviderSecurity", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" } ], "name": "getMarketConsumerSecurity", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" } ], "name": "getMarketFee", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "marketId", "type": "bytes16" }, { "name": "terms", "type": "string" }, { "name": "meta", "type": "string" }, { "name": "maker", "type": "address" }, { "name": "providerSecurity", "type": "uint256" }, { "name": "consumerSecurity", "type": "uint256" }, { "name": "marketFee", "type": "uint256" } ], "name": "updateMarket", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" } ], "name": "closeMarket", "outputs": [], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "marketId", "type": "bytes16" }, { "name": "actorType", "type": "uint8" } ], "name": "joinMarket", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" } ], "name": "getAllMarketActors", "outputs": [ { "name": "", "type": "address[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" }, { "name": "actor", "type": "address" } ], "name": "getMarketActorType", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" }, { "name": "actor", "type": "address" } ], "name": "getMarketActorSecurity", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" } ], "name": "leaveMarket", "outputs": [], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "marketId", "type": "bytes16" }, { "name": "consumer", "type": "address" }, { "name": "amount", "type": "uint256" } ], "name": "openPaymentChannel", "outputs": [ { "name": "paymentChannel", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "marketId", "type": "bytes16" } ], "name": "getAllMarketPaymentChannels", "outputs": [ { "name": "", "type": "address[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "marketId", "type": "bytes16" }, { "name": "provider", "type": "address" }, { "name": "amount", "type": "uint256" } ], "name": "requestPayingChannel", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60806040526001805467ffffffff000000001963ffffffff199091168217166401000000001790553480156200003457600080fd5b5060405160408062005127833981018060405260408110156200005657600080fd5b50805160209091015162000073336401000000006200016d810204565b600180547fffffffff0000000000000000000000000000000000000000ffffffffffffffff1668010000000000000000600160a060020a03858116919091029190911790915560028054600160a060020a031916918316919091178155604080516080810182526000606082018181528252825160208082018552918152908201529190820152336000908152600360209081526040909120825180519192620001239284929091019062000252565b5060208281015180516200013e926001850192019062000252565b50604082015160028201805460ff191660018360058111156200015d57fe5b02179055509050505050620002f7565b6200018860008264010000000062004491620001bf82021704565b604051600160a060020a038216907f1390a149489c82e9e2e89927bdb17ad1ea3f0cc314fce06c96369721d3afb8f090600090a250565b600160a060020a0381161515620001d557600080fd5b620001ea82826401000000006200021a810204565b15620001f557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200023257600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029557805160ff1916838001178555620002c5565b82800160010185558215620002c5579182015b82811115620002c5578251825591602001919060010190620002a8565b50620002d3929150620002d7565b5090565b620002f491905b80821115620002d35760008155600101620002de565b90565b614e2080620003076000396000f3fe608060405234801561001057600080fd5b50600436106102825760003560e060020a900480636b453c1f11610160578063af6c86f0116100d2578063dd57366a1161008b578063dd57366a14610f98578063decae33014610fbe578063e79a198f14610ff5578063e8bf533c14610ffd578063fb070fc014611024578063fc0c546a1461105457610282565b8063af6c86f014610e9f578063bc385fcd14610ed6578063c224f17414610efd578063cca28f3914610f24578063d43184d314610f4a578063d4dba11314610f7157610282565b806378e6cb851161012457806378e6cb8514610d8b57806380e00db914610db257806388ebed4a14610dd957806396c9fd9714610e00578063a4ae4a6214610e27578063a855d05214610e6357610282565b80636b453c1f14610b98578063710ccb3814610bbe57806372cd77cf14610d1657806372df143514610d3d57806378bab37c14610d6457610282565b80632b721492116101f9578063559d1738116101bd578063559d173814610a6d57806359269e6714610a945780635fef8a0214610ade5780636322108414610b055780636a3460fa14610b2b5780636b23fc0314610b7157610282565b80632b7214921461086b578063314db06b146108925780633ffbd47f1461089a57806350405fdf146109c757806353388580146109f657610282565b80630cc4e11d1161024b5780630cc4e11d14610668578063186def2b146107045780631cf909dc1461072b5780631ed714de146107515780632096398d1461077857806323bd4d7a1461084757610282565b806221ec191461028757806303e385e2146103f3578063083a85801461043b5780630a6edd06146104755780630bf7580014610641575b600080fd5b6103df600480360360e081101561029d57600080fd5b6001608060020a031982351691908101906040810160208201356401000000008111156102c957600080fd5b8201836020820111156102db57600080fd5b803590602001918460018302840111640100000000831117156102fd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561035057600080fd5b82018360208201111561036257600080fd5b8035906020019184600183028401116401000000008311171561038457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050600160a060020a03833516935050506020810135906040810135906060013561105c565b604080519115158252519081900360200190f35b6104296004803603604081101561040957600080fd5b5080356001608060020a0319169060200135600160a060020a03166117f6565b60408051918252519081900360200190f35b6104586004803603602081101561045157600080fd5b5035611830565b604080516001608060020a03199092168252519081900360200190f35b61063f600480360360a081101561048b57600080fd5b6001608060020a0319823516916020810135918101906060810160408201356401000000008111156104bc57600080fd5b8201836020820111156104ce57600080fd5b803590602001918460018302840111640100000000831117156104f057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561054357600080fd5b82018360208201111561055557600080fd5b8035906020019184600183028401116401000000008311171561057757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156105ca57600080fd5b8201836020820111156105dc57600080fd5b803590602001918460018302840111640100000000831117156105fe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611848945050505050565b005b6104296004803603602081101561065757600080fd5b50356001608060020a031916611cf0565b61068f6004803603602081101561067e57600080fd5b50356001608060020a031916611d0f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156106c95781810151838201526020016106b1565b50505050905090810190601f1680156106f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61063f6004803603602081101561071a57600080fd5b50356001608060020a031916611dc1565b61068f6004803603602081101561074157600080fd5b5035600160a060020a0316611e33565b61063f6004803603602081101561076757600080fd5b50356001608060020a031916611ea7565b61063f600480360360a081101561078e57600080fd5b6001608060020a0319823581169260208101359091169160ff6040830135169160608101359181019060a0810160808201356401000000008111156107d257600080fd5b8201836020820111156107e457600080fd5b8035906020019184600183028401116401000000008311171561080657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611f85945050505050565b61084f6123e1565b60408051600160a060020a039092168252519081900360200190f35b61068f6004803603602081101561088157600080fd5b50356001608060020a0319166123f0565b61063f612468565b61063f600480360360408110156108b057600080fd5b8101906020810181356401000000008111156108cb57600080fd5b8201836020820111156108dd57600080fd5b803590602001918460018302840111640100000000831117156108ff57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561095257600080fd5b82018360208201111561096457600080fd5b8035906020019184600183028401116401000000008311171561098657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612473945050505050565b61063f600480360360408110156109dd57600080fd5b508035600160a060020a0316906020013560ff166127a6565b610a1d60048036036020811015610a0c57600080fd5b50356001608060020a03191661286c565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610a59578181015183820152602001610a41565b505050509050019250505060405180910390f35b61084f60048036036020811015610a8357600080fd5b50356001608060020a0319166128e5565b610aba60048036036020811015610aaa57600080fd5b5035600160a060020a0316612912565b60405180826005811115610aca57fe5b60ff16815260200191505060405180910390f35b61042960048036036020811015610af457600080fd5b50356001608060020a031916612933565b61045860048036036020811015610b1b57600080fd5b5035600160a060020a0316612952565b610b6160048036036040811015610b4157600080fd5b5080356001608060020a0319169060200135600160a060020a0316612973565b60405180826004811115610aca57fe5b61068f60048036036020811015610b8757600080fd5b50356001608060020a0319166129ad565b61063f60048036036020811015610bae57600080fd5b5035600160a060020a0316612a29565b61063f600480360360e0811015610bd457600080fd5b6001608060020a03198235169190810190604081016020820135640100000000811115610c0057600080fd5b820183602082011115610c1257600080fd5b80359060200191846001830284011164010000000083111715610c3457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050640100000000811115610c8757600080fd5b820183602082011115610c9957600080fd5b80359060200191846001830284011164010000000083111715610cbb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050600160a060020a038335169350505060208101359060408101359060600135612a46565b61045860048036036020811015610d2c57600080fd5b50356001608060020a03191661329f565b61068f60048036036020811015610d5357600080fd5b50356001608060020a0319166132c1565b61042960048036036020811015610d7a57600080fd5b50356001608060020a031916613339565b61068f60048036036020811015610da157600080fd5b50356001608060020a031916613358565b61063f60048036036020811015610dc857600080fd5b50356001608060020a0319166133d3565b61084f60048036036020811015610def57600080fd5b50356001608060020a031916613656565b61042960048036036020811015610e1657600080fd5b50356001608060020a031916613684565b61084f60048036036060811015610e3d57600080fd5b506001608060020a031981351690600160a060020a0360208201351690604001356136a3565b61063f60048036036060811015610e7957600080fd5b506001608060020a031981351690600160a060020a03602082013516906040013561393a565b610ec660048036036020811015610eb557600080fd5b50356001608060020a031916613aa3565b60405180826002811115610aca57fe5b61084f60048036036020811015610eec57600080fd5b50356001608060020a031916613aca565b61063f60048036036020811015610f1357600080fd5b50356001608060020a031916613af2565b61068f60048036036020811015610f3a57600080fd5b5035600160a060020a0316613ccb565b610a1d60048036036020811015610f6057600080fd5b50356001608060020a031916613d5e565b61042960048036036020811015610f8757600080fd5b50356001608060020a031916613dd6565b6103df60048036036020811015610fae57600080fd5b5035600160a060020a0316613df5565b610fe560048036036020811015610fd457600080fd5b50356001608060020a031916613e0d565b60405180826003811115610aca57fe5b61063f613e33565b61068f6004803603602081101561101357600080fd5b50356001608060020a031916613f02565b6104296004803603604081101561103a57600080fd5b5080356001608060020a031916906020013560ff16613f7d565b61084f614363565b6001608060020a03198716600090815260076020526040812080546401000000009004600160a060020a031615156110cc576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d66833981519152604482015290519081900360640190fd5b80546401000000009004600160a060020a03163314611123576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d86833981519152604482015290519081900360640190fd5b600160a060020a038616600090815260086020526040902054608060020a026001608060020a0319161561118b5760405160e560020a62461bcd028152600401808060200182810382526026815260200180614d406026913960400191505060405180910390fd5b600083101580156111a757506b0332e8a789bc7ef49e00000083105b15156111fd576040805160e560020a62461bcd02815260206004820152601260248201527f494e56414c49445f4d41524b45545f4645450000000000000000000000000000604482015290519081900360640190fd5b6000600160a060020a0387161580159061122757506003820154600160a060020a03888116911614155b1561127257506001608060020a031989166000908152600760205260409020600301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03881617905560015b600089511180156113b6575081600101604051602001808060200182810382528381815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561130e5780601f106112e35761010080835404028352916020019161130e565b820191906000526020600020905b8154815290600101906020018083116112f157829003601f168201915b50509250505060405160208183030381529060405280519060200120896040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561136b578181015183820152602001611353565b50505050905090810190601f1680156113985780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012014155b156113f1576001608060020a03198a1660009081526007602090815260409091208a516113eb926001909201918c01906144df565b50600190505b6000885111801561152a5750604080516020808201908152600280860180546000196101006001831615020116919091049383018490529290918291606090910190849080156114825780601f1061145757610100808354040283529160200191611482565b820191906000526020600020905b81548152906001019060200180831161146557829003601f168201915b50509250505060405160208183030381529060405280519060200120886040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156114df5781810151838201526020016114c7565b50505050905090810190601f16801561150c5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012014155b15611565576001608060020a03198a166000908152600760209081526040909120895161155f926002909201918b01906144df565b50600190505b6004820154861461159357506001608060020a03198916600090815260076020526040902060040185905560015b600582015485146115c157506001608060020a03198916600090815260076020526040902060050184905560015b600682015484146115ef57506001608060020a03198916600090815260076020526040902060060183905560015b80156117e957896001608060020a0319167fe5e16c8bac0b35f728c96809036d527464a2850cd0ab58970a44d72b107498f68360000160009054906101000a900463ffffffff168460000160049054906101000a9004600160a060020a031685600101866002018760030160009054906101000a9004600160a060020a0316886004015489600501548a60060154604051808963ffffffff1663ffffffff16815260200188600160a060020a0316600160a060020a03168152602001806020018060200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184815260200183810383528981815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561175e5780601f106117335761010080835404028352916020019161175e565b820191906000526020600020905b81548152906001019060200180831161174157829003601f168201915b50508381038252885460026000196101006001841615020190911604808252602090910190899080156117d25780601f106117a7576101008083540402835291602001916117d2565b820191906000526020600020905b8154815290600101906020018083116117b557829003601f168201915b50509a505050505050505050505060405180910390a25b9998505050505050505050565b6001608060020a031982166000908152600760209081526040808320600160a060020a038516845260090190915290206001015492915050565b600090815260066020526040902054608060020a0290565b60013360009081526003602052604090206002015460ff16600581111561186b57fe5b1480611897575060023360009081526003602052604090206002015460ff16600581111561189557fe5b145b15156118ed576040805160e560020a62461bcd02815260206004820152600c60248201527f4e4f545f415f4d454d4245520000000000000000000000000000000000000000604482015290519081900360640190fd5b6001608060020a03198516600090815260046020526040902054650100000000009004600160a060020a03161561196e576040805160e560020a62461bcd02815260206004820152601560248201527f444f4d41494e5f414c52454144595f4558495354530000000000000000000000604482015290519081900360640190fd5b60408051610100810190915260018054640100000000900463ffffffff1682526020820190815260200133600160a060020a0316815260200185815260200184815260200183815260200182815260200160006040519080825280602002602001820160405280156119ea578160200160208202803883390190505b5090526001608060020a0319861660009081526004602090815260409091208251815463ffffffff191663ffffffff90911617808255918301519091829064ff000000001916640100000000836002811115611a4257fe5b021790555060408201518154600160a060020a03909116650100000000000278ffffffffffffffffffffffffffffffffffffffff0000000000199091161781556060820151600182015560808201518051611aa79160028401916020909101906144df565b5060a08201518051611ac39160038401916020909101906144df565b5060c08201518051611adf9160048401916020909101906144df565b5060e08201518051611afb91600584019160209091019061455d565b50506001805460405164010000000090910463ffffffff168082526001608060020a0319891693507fb3e08ef90bd1b5938971d100a5221986c383acaf94adb0c7a008f553b776b98b92909133908990899089908990602081018760ff16815260200186600160a060020a0316600160a060020a03168152602001858152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015611bbd578181015183820152602001611ba5565b50505050905090810190601f168015611bea5780820380516001836020036101000a031916815260200191505b50848103835286518152865160209182019188019080838360005b83811015611c1d578181015183820152602001611c05565b50505050905090810190601f168015611c4a5780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b83811015611c7d578181015183820152602001611c65565b50505050905090810190601f168015611caa5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390a250506001805463ffffffff640100000000808304821684019091160267ffffffff0000000019909116179055505050565b6001608060020a03191660009081526004602052604090206001015490565b6001608060020a031981166000908152600560209081526040918290206002908101805484516001821615610100026000190190911692909204601f81018490048402830184019094528382526060939192909190830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b820191906000526020600020905b815481529060010190602001808311611d9857829003601f168201915b50505050509050919050565b6001608060020a031981166000908152600760205260409020546401000000009004600160a060020a03161515611e30576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d66833981519152604482015290519081900360640190fd5b50565b600160a060020a03811660009081526003602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b6001608060020a031981166000908152600760205260409020546401000000009004600160a060020a03161515611f16576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d66833981519152604482015290519081900360640190fd5b6001608060020a031981166000908152600760205260409020546401000000009004600160a060020a03163314611e30576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d86833981519152604482015290519081900360640190fd5b6001608060020a03198416600090815260046020526040902054650100000000009004600160a060020a03161515612007576040805160e560020a62461bcd02815260206004820152600e60248201527f4e4f5f535543485f444f4d41494e000000000000000000000000000000000000604482015290519081900360640190fd5b6001608060020a03198416600090815260046020526040902054650100000000009004600160a060020a03163314612077576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d86833981519152604482015290519081900360640190fd5b6001608060020a03198516600090815260056020526040902054608060020a900460ff1660038111156120a657fe5b60ff16156120fe576040805160e560020a62461bcd02815260206004820152601360248201527f4e4f44455f414c52454144595f50414952454400000000000000000000000000604482015290519081900360640190fd5b600082815260066020526040902054608060020a026001608060020a03191615612172576040805160e560020a62461bcd02815260206004820152601260248201527f4455504c49434154455f4e4f44455f4b45590000000000000000000000000000604482015290519081900360640190fd5b600183600381111561218057fe5b60ff16148061219c57506003838181111561219757fe5b60ff16145b15156121f2576040805160e560020a62461bcd02815260206004820152601160248201527f494e56414c49445f4e4f44455f54595045000000000000000000000000000000604482015290519081900360640190fd5b608060405190810160405280856001608060020a031916815260200184600381111561221a57fe5b8152602080820185905260409182018490526001608060020a03198881166000908152600583529290922083518154909316608060020a93849004178082559184015190929091839170ff00000000000000000000000000000000199091169083600381111561228657fe5b021790555060408201516001820155606082015180516122b09160028401916020909101906144df565b505050600082815260066020908152604080832080546001608060020a0319908116608060020a8b0490811790925588811680865260048552838620600501805460018181018355918852868820600282040180546001608060020a03929093166010026101000a918202199092169402939093179092558251908a1681528084018790526060928101838152865193820193909352855191947fb3d59b15ab99282c8dd963009b3b6c9d12c2422dcf7ee81f9c67c8c0996cb9ec948b9489948994939192608085019290860191908190849084905b8381101561239e578181015183820152602001612386565b50505050905090810190601f1680156123cb5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a25050505050565b600254600160a060020a031681565b6001608060020a0319811660009081526004602090815260409182902060030180548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b6124713361437e565b565b3360009081526003602052604090206002015460ff16600581111561249457fe5b156124e9576040805160e560020a62461bcd02815260206004820152601960248201527f4d454d4245525f414c52454144595f5245474953544552454400000000000000604482015290519081900360640190fd5b60405160200180806020018281038252602e815260200180614da6602e913960400191505060405160208183030381529060405280519060200120826040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561256557818101518382015260200161254d565b50505050905090810190601f1680156125925780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120141515612604576040805160e560020a62461bcd02815260206004820152600c60248201527f494e56414c49445f45554c410000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805160608101825283815260208082018490526001828401523360009081526003825292909220815180519293919261264292849201906144df565b50602082810151805161265b92600185019201906144df565b50604082015160028201805460ff1916600183600581111561267957fe5b021790555090505033600160a060020a03167ff80f80714d0c23a9fad9abecbe04fa405bb13477a68a69a520886c0bb9853b29838360016040518080602001806020018460058111156126c857fe5b60ff168152602001838103835286818151815260200191508051906020019080838360005b838110156127055781810151838201526020016126ed565b50505050905090810190601f1680156127325780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561276557818101518382015260200161274d565b50505050905090810190601f1680156127925780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a25050565b6127af33613df5565b15156127ba57600080fd5b3360009081526003602052604090206002015460ff1660058111156127db57fe5b1515612831576040805160e560020a62461bcd02815260206004820152600e60248201527f4e4f5f535543485f4d454d424552000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0382166000908152600360205260409020600201805482919060ff1916600183600581111561286357fe5b02179055505050565b6001608060020a03198116600090815260076020818152604092839020909101805483518184028101840190945280845260609392830182828015611db557602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116128bc5750505050509050919050565b6001608060020a0319166000908152600760205260409020546401000000009004600160a060020a031690565b600160a060020a031660009081526003602052604090206002015460ff1690565b6001608060020a03191660009081526007602052604090206004015490565b600160a060020a0316600090815260086020526040902054608060020a0290565b6001608060020a031982166000908152600760209081526040808320600160a060020a038516845260090190915290205460ff1692915050565b6001608060020a03198116600090815260076020908152604091829020600190810180548451600293821615610100026000190190911692909204601f81018490048402830184019094528382526060939192909190830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b612a3233613df5565b1515612a3d57600080fd5b611e30816143c6565b6001546001608060020a03198816600090815260076020526040902054600160a060020a03680100000000000000009092048216916401000000009091041615612ada576040805160e560020a62461bcd02815260206004820152601560248201527f4d41524b45545f414c52454144595f4558495354530000000000000000000000604482015290519081900360640190fd5b600160a060020a0385161515612b3a576040805160e560020a62461bcd02815260206004820152600d60248201527f494e56414c49445f4d414b455200000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038516600090815260086020526040902054608060020a026001608060020a03191615612ba25760405160e560020a62461bcd028152600401808060200182810382526026815260200180614d406026913960400191505060405180910390fd5b60008410158015612c1a575080600160a060020a03166318160ddd6040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612bea57600080fd5b505afa158015612bfe573d6000803e3d6000fd5b505050506040513d6020811015612c1457600080fd5b50518411155b1515612c70576040805160e560020a62461bcd02815260206004820152601960248201527f494e56414c49445f50524f56494445525f534543555249545900000000000000604482015290519081900360640190fd5b60008310158015612ce8575080600160a060020a03166318160ddd6040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612cb857600080fd5b505afa158015612ccc573d6000803e3d6000fd5b505050506040513d6020811015612ce257600080fd5b50518311155b1515612d3e576040805160e560020a62461bcd02815260206004820152601960248201527f494e56414c49445f434f4e53554d45525f534543555249545900000000000000604482015290519081900360640190fd5b60008210158015612dc457506298968081600160a060020a03166318160ddd6040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612d8a57600080fd5b505afa158015612d9e573d6000803e3d6000fd5b505050506040513d6020811015612db457600080fd5b505103670de0b6b3a76400000282105b1515612e1a576040805160e560020a62461bcd02815260206004820152601260248201527f494e56414c49445f4d41524b45545f4645450000000000000000000000000000604482015290519081900360640190fd5b604080516101408101825260015463ffffffff168152336020808301919091528183018a905260608201899052600160a060020a038816608083015260a0820187905260c0820186905260e0820185905282516000808252818301855261010084019190915283518181529182019093529091610120830191905090526001608060020a031989166000908152600760209081526040918290208351815485840151600160a060020a03166401000000000277ffffffffffffffffffffffffffffffffffffffff000000001963ffffffff90931663ffffffff199092169190911791909116178155918301518051612f1892600185019201906144df565b5060608201518051612f349160028401916020909101906144df565b50608082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905560a0820151600482015560c0820151600582015560e082015160068201556101008201518051612fa291600784019160209091019061460f565b506101208201518051612fbf91600884019160209091019061460f565b50506040805180820190915290508060028152600060209182018190526001608060020a03198b1681526007825260408082203383526009019092522081518154829060ff1916600183600481111561301457fe5b02179055506020820151816001015590505060076000896001608060020a0319166001608060020a03191681526020019081526020016000206008018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050876008600087600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a8154816001608060020a030219169083608060020a90040217905550600160009054906101000a900463ffffffff16600101600160006101000a81548163ffffffff021916908363ffffffff160217905550876001608060020a0319167f4bd7c78d90ab88f388bfeb546e0c4420507a56234e8f64c32e3f880f3538ce94600160009054906101000a900463ffffffff16338a8a8a8a8a8a604051808963ffffffff1663ffffffff16815260200188600160a060020a0316600160a060020a03168152602001806020018060200187600160a060020a0316600160a060020a03168152602001868152602001858152602001848152602001838103835289818151815260200191508051906020019080838360005b838110156131f35781810151838201526020016131db565b50505050905090810190601f1680156132205780820380516001836020036101000a031916815260200191505b5083810382528851815288516020918201918a019080838360005b8381101561325357818101518382015260200161323b565b50505050905090810190601f1680156132805780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390a25050505050505050565b6001608060020a031916600090815260056020526040902054608060020a0290565b6001608060020a0319811660009081526004602081815260409283902090910180548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b6001608060020a03191660009081526007602052604090206005015490565b6001608060020a031981166000908152600760209081526040918290206002908101805484516001821615610100026000190190911692909204601f81018490048402830184019094528382526060939192909190830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b60013360009081526003602052604090206002015460ff1660058111156133f657fe5b1480613422575060023360009081526003602052604090206002015460ff16600581111561342057fe5b145b1515613478576040805160e560020a62461bcd02815260206004820152600c60248201527f4e4f545f415f4d454d4245520000000000000000000000000000000000000000604482015290519081900360640190fd5b6001608060020a03198116600090815260046020526040902054650100000000009004600160a060020a031615156134fa576040805160e560020a62461bcd02815260206004820152600e60248201527f4e4f5f535543485f444f4d41494e000000000000000000000000000000000000604482015290519081900360640190fd5b6001608060020a03198116600090815260046020526040902054650100000000009004600160a060020a0316331461356a576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d86833981519152604482015290519081900360640190fd5b60016001608060020a03198216600090815260046020526040902054640100000000900460ff16600281111561359c57fe5b146135f1576040805160e560020a62461bcd02815260206004820152601160248201527f444f4d41494e5f4e4f545f414354495645000000000000000000000000000000604482015290519081900360640190fd5b6001608060020a03198116600081815260046020908152604091829020805464ff00000000191664020000000017905581516002815291517f276aca339c66951bcad57d5ee78858b2ce183c4a230417461c550556c8b9f69e9281900390910190a250565b6001608060020a031916600090815260046020526040902054650100000000009004600160a060020a031690565b6001608060020a03191660009081526005602052604090206001015490565b6001608060020a031983166000908152600760205260408120546401000000009004600160a060020a03161515613712576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d66833981519152604482015290519081900360640190fd5b6000843385600086603c61372461467d565b6001608060020a03199096168652600160a060020a039485166020870152928416604080870191909152919093166060850152608084019290925263ffffffff1660a0830152519081900360c001906000f080158015613788573d6000803e3d6000fd5b50600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03808516602483015260448201889052915193945068010000000000000000909204169160009183916323b872dd9160648082019260209290919082900301818787803b15801561381057600080fd5b505af1158015613824573d6000803e3d6000fd5b505050506040513d602081101561383a57600080fd5b5051905080151561387f5760405160e560020a62461bcd028152600401808060200182810382526021815260200180614dd46021913960400191505060405180910390fd5b6001608060020a0319871660008181526007602081815260408084209283018054600181018255908552828520018054600160a060020a03808b1673ffffffffffffffffffffffffffffffffffffffff19909216821790925594869052925481513381528c8516938101939093526401000000009004909216818301526060810192909252517fab16e035d6a70660787e6c73a898a50b8fdc5e3fb07b087455e64af81a6bb25d9181900360800190a2509095945050505050565b6001608060020a031983166000908152600760205260409020546401000000009004600160a060020a031615156139a9576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d66833981519152604482015290519081900360640190fd5b6001608060020a03198316600090815260076020526040902060030154600160a060020a03161515613a25576040805160e560020a62461bcd02815260206004820152601660248201527f4e4f5f4143544956455f4d41524b45545f4d414b455200000000000000000000604482015290519081900360640190fd5b6001608060020a03198316600081815260076020908152604091829020600301548251600160a060020a03918216815290861691810191909152338183015260608101849052600a608082015290517f1c3be017379c486bade742062ae83c3a0a25974e898e26fd98a221d0c53d9dca9181900360a00190a2505050565b6001608060020a031916600090815260046020526040902054640100000000900460ff1690565b6001608060020a031916600090815260076020526040902060030154600160a060020a031690565b6001608060020a03198116600090815260056020526040902054608060020a900460ff166003811115613b2157fe5b60ff161515613b7a576040805160e560020a62461bcd02815260206004820152600c60248201527f4e4f5f535543485f4e4f44450000000000000000000000000000000000000000604482015290519081900360640190fd5b6001608060020a0319808216600090815260056020908152604080832054608060020a029093168252600490522054650100000000009004600160a060020a03163314613bff576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d86833981519152604482015290519081900360640190fd5b6001608060020a031981166000818152600560208181526040808420805460018201805470ffffffffffffffffffffffffffffffffff19831684559087905583518086019485905287815297909652939092529351608060020a90920293613c6c926002909201916144df565b5060008181526006602090815260409182902080546001608060020a0319908116909155825186821681529251908516927f22c6b34a83af23cbec20674e179fd0e690b13a36e294868475fb35a10c26811392908290030190a2505050565b60606003600083600160a060020a0316600160a060020a031681526020019081526020016000206001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611db55780601f10611d8a57610100808354040283529160200191611db5565b6001608060020a03198116600090815260076020908152604091829020600801805483518184028101840190945280845260609392830182828015611db557602002820191906000526020600020908154600160a060020a031681526001909101906020018083116128bc5750505050509050919050565b6001608060020a03191660009081526007602052604090206006015490565b6000613e07818363ffffffff61440e16565b92915050565b6001608060020a031916600090815260056020526040902054608060020a900460ff1690565b3360009081526003602052604090206002015460ff166005811115613e5457fe5b1515613eaa576040805160e560020a62461bcd02815260206004820152600e60248201527f4e4f5f535543485f4d454d424552000000000000000000000000000000000000604482015290519081900360640190fd5b336000908152600360208190526040909120600201805460ff191660018302179055506040805133815290517fa59e3b52cc428f9ef295563b34bd6af71489d571edf9d7f38ba0e977d0abc6cf9181900360200190a1565b6001608060020a031981166000908152600460209081526040918290206002908101805484516001821615610100026000190190911692909204601f81018490048402830184019094528382526060939192909190830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b6001608060020a031982166000908152600760205260408120546401000000009004600160a060020a03161515613fec576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d66833981519152604482015290519081900360640190fd5b6001608060020a03198316600090815260076020908152604080832033845260090190915290205460ff16600481111561402257fe5b60ff161561407a576040805160e560020a62461bcd02815260206004820152601460248201527f4143544f525f414c52454144595f4a4f494e4544000000000000000000000000604482015290519081900360640190fd5b600282600481111561408857fe5b60ff1614806140a5575060038260048111156140a057fe5b60ff16145b806140bd5750600482818111156140b857fe5b60ff16145b15156140c857600080fd5b600060038360048111156140d857fe5b60ff16141561410457506001608060020a03198316600090815260076020526040902060040154614141565b6004838181111561411157fe5b60ff16141561413d57506001608060020a03198316600090815260076020526040902060050154614141565b5060005b600154604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101849052905168010000000000000000909204600160a060020a03169160009183916323b872dd9160648082019260209290919082900301818787803b1580156141c357600080fd5b505af11580156141d7573d6000803e3d6000fd5b505050506040513d60208110156141ed57600080fd5b50519050801515614248576040805160e560020a62461bcd02815260206004820181905260248201527f4a4f494e5f4d41524b45545f5452414e534645525f46524f4d5f4641494c4544604482015290519081900360640190fd5b604080519081016040528086600481111561425f57fe5b815260209081018590526001608060020a0319881660009081526007825260408082203383526009019092522081518154829060ff191660018360048111156142a457fe5b02179055506020918201516001918201556001608060020a03198816600081815260078452604080822060080180549485018155825290849020909201805473ffffffffffffffffffffffffffffffffffffffff191633908117909155915182815290927fc3b1ce444aaba0433920dfc940f56a5a9d00d97a0300340b4c79e237078a7c0c92918991889190810183600481111561433e57fe5b60ff168152602001828152602001935050505060405180910390a25090949350505050565b600154680100000000000000009004600160a060020a031681565b61438f60008263ffffffff61444516565b604051600160a060020a038216907fa7b36d52bea726c3aa90d876d0e52a1089a347b3e3408a03f08eae32f96fdbb490600090a250565b6143d760008263ffffffff61449116565b604051600160a060020a038216907f1390a149489c82e9e2e89927bdb17ad1ea3f0cc314fce06c96369721d3afb8f090600090a250565b6000600160a060020a038216151561442557600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a038116151561445a57600080fd5b614464828261440e565b151561446f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03811615156144a657600080fd5b6144b0828261440e565b156144ba57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061452057805160ff191683800117855561454d565b8280016001018555821561454d579182015b8281111561454d578251825591602001919060010190614532565b5061455992915061468d565b5090565b828054828255906000526020600020906001016002900481019282156146035791602002820160005b838211156145ce57835183826101000a8154816001608060020a030219169083608060020a900402179055509260200192601001602081600f01049283019260010302614586565b80156146015782816101000a8154906001608060020a030219169055601001602081600f010492830192600103026145ce565b505b506145599291506146aa565b828054828255906000526020600020908101928215614671579160200282015b82811115614671578251825473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390911617825560209092019160019091019061462f565b506145599291506146ce565b6040516106408061470083390190565b6146a791905b808211156145595760008155600101614693565b90565b6146a791905b808211156145595780546001608060020a03191681556001016146b0565b6146a791905b8082111561455957805473ffffffffffffffffffffffffffffffffffffffff191681556001016146d456fe608060405234801561001057600080fd5b5060405160c080610640833981018060405260c081101561003057600080fd5b508051602082015160408301516060840151608085015160a09095015160008054610100608860020a0319166101007001000000000000000000000000000000009097049690960295909517855560018054600160a060020a0319908116600160a060020a03968716179091556002805482169486169490941790935560038054909316939091169290921790556004929092556007805463ffffffff191663ffffffff909316929092179091554360055561054e9081906100f290396000f3fe608060405234801561001057600080fd5b50600436106100bb576000357c01000000000000000000000000000000000000000000000000000000009004806370dea79a1161008357806370dea79a146101625780639d3718951461016c5780639ef27b00146101b0578063aa8c217c146101b8578063c89e4361146101c0576100bb565b80632ef2d55e146100c057806338930203146100e157806366d003ac146100fb57806367e404ce1461012c5780636ed71ede14610134575b600080fd5b6100c86101c8565b6040805163ffffffff9092168252519081900360200190f35b6100e96101d4565b60408051918252519081900360200190f35b6101036101da565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101036101f6565b61013c610212565b604080516fffffffffffffffffffffffffffffffff199092168252519081900360200190f35b61016a610230565b005b61016a600480360360c081101561018257600080fd5b5080359060ff6020820135169060408101359060608101359063ffffffff6080820135169060a001356102f4565b6100e96104b0565b6100e96104b6565b6101036104bc565b60075463ffffffff1690565b60055490565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b60005461010090047001000000000000000000000000000000000290565b60065415610288576040805160e560020a62461bcd02815260206004820152601660248201527f4348414e4e454c5f414c52454144595f434c4f53454400000000000000000000604482015290519081900360640190fd5b6007546005544263ffffffff9092160111156102ee576040805160e560020a62461bcd02815260206004820152600f60248201527f6368616e6e656c2074696d656f75740000000000000000000000000000000000604482015290519081900360640190fd5b43600655565b60008060018888888860405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610354573d6000803e3d6000fd5b5050604051601f19015160015490935073ffffffffffffffffffffffffffffffffffffffff808516911614801591506103a8575060035473ffffffffffffffffffffffffffffffffffffffff838116911614155b156103fd576040805160e560020a62461bcd02815260206004820152601160248201527f696e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b50604080516c0100000000000000000000000030026020808301919091527c010000000000000000000000000000000000000000000000000000000063ffffffff8716026034830152603880830186905283518084039091018152605890920190925280519101208781146104a65760405160e560020a62461bcd02815260040180806020018281038252604a8152602001806104d9604a913960600191505060405180910390fd5b5050505050505050565b60065490565b60045490565b60025473ffffffffffffffffffffffffffffffffffffffff169056fe696e76616c6964207369676e617475726520287369676e61747572652069732076616c69642062757420646f65736e2774206d617463682074686520646174612070726f766964656429a165627a7a7230582066279392851f52c4e99185bb0bd2d49787212a69da27e07155ba6a0d2ea6f1f300294d414b45525f414c52454144595f574f524b494e475f464f525f4f544845525f4d41524b45544e4f5f535543485f4d41524b45540000000000000000000000000000000000004e4f545f415554484f52495a4544000000000000000000000000000000000000516d553747697a6272653137783656325652315132474a456a7a366d38533162586d427456785332766d766238314f50454e5f4348414e4e454c5f5452414e534645525f46524f4d5f4641494c4544a165627a7a72305820c839fe225bf18a7f8c5f807b01926a1040e3b99a7ac3e061ab99d71f984dc4a00029", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102825760003560e060020a900480636b453c1f11610160578063af6c86f0116100d2578063dd57366a1161008b578063dd57366a14610f98578063decae33014610fbe578063e79a198f14610ff5578063e8bf533c14610ffd578063fb070fc014611024578063fc0c546a1461105457610282565b8063af6c86f014610e9f578063bc385fcd14610ed6578063c224f17414610efd578063cca28f3914610f24578063d43184d314610f4a578063d4dba11314610f7157610282565b806378e6cb851161012457806378e6cb8514610d8b57806380e00db914610db257806388ebed4a14610dd957806396c9fd9714610e00578063a4ae4a6214610e27578063a855d05214610e6357610282565b80636b453c1f14610b98578063710ccb3814610bbe57806372cd77cf14610d1657806372df143514610d3d57806378bab37c14610d6457610282565b80632b721492116101f9578063559d1738116101bd578063559d173814610a6d57806359269e6714610a945780635fef8a0214610ade5780636322108414610b055780636a3460fa14610b2b5780636b23fc0314610b7157610282565b80632b7214921461086b578063314db06b146108925780633ffbd47f1461089a57806350405fdf146109c757806353388580146109f657610282565b80630cc4e11d1161024b5780630cc4e11d14610668578063186def2b146107045780631cf909dc1461072b5780631ed714de146107515780632096398d1461077857806323bd4d7a1461084757610282565b806221ec191461028757806303e385e2146103f3578063083a85801461043b5780630a6edd06146104755780630bf7580014610641575b600080fd5b6103df600480360360e081101561029d57600080fd5b6001608060020a031982351691908101906040810160208201356401000000008111156102c957600080fd5b8201836020820111156102db57600080fd5b803590602001918460018302840111640100000000831117156102fd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561035057600080fd5b82018360208201111561036257600080fd5b8035906020019184600183028401116401000000008311171561038457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050600160a060020a03833516935050506020810135906040810135906060013561105c565b604080519115158252519081900360200190f35b6104296004803603604081101561040957600080fd5b5080356001608060020a0319169060200135600160a060020a03166117f6565b60408051918252519081900360200190f35b6104586004803603602081101561045157600080fd5b5035611830565b604080516001608060020a03199092168252519081900360200190f35b61063f600480360360a081101561048b57600080fd5b6001608060020a0319823516916020810135918101906060810160408201356401000000008111156104bc57600080fd5b8201836020820111156104ce57600080fd5b803590602001918460018302840111640100000000831117156104f057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561054357600080fd5b82018360208201111561055557600080fd5b8035906020019184600183028401116401000000008311171561057757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156105ca57600080fd5b8201836020820111156105dc57600080fd5b803590602001918460018302840111640100000000831117156105fe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611848945050505050565b005b6104296004803603602081101561065757600080fd5b50356001608060020a031916611cf0565b61068f6004803603602081101561067e57600080fd5b50356001608060020a031916611d0f565b6040805160208082528351818301528351919283929083019185019080838360005b838110156106c95781810151838201526020016106b1565b50505050905090810190601f1680156106f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61063f6004803603602081101561071a57600080fd5b50356001608060020a031916611dc1565b61068f6004803603602081101561074157600080fd5b5035600160a060020a0316611e33565b61063f6004803603602081101561076757600080fd5b50356001608060020a031916611ea7565b61063f600480360360a081101561078e57600080fd5b6001608060020a0319823581169260208101359091169160ff6040830135169160608101359181019060a0810160808201356401000000008111156107d257600080fd5b8201836020820111156107e457600080fd5b8035906020019184600183028401116401000000008311171561080657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611f85945050505050565b61084f6123e1565b60408051600160a060020a039092168252519081900360200190f35b61068f6004803603602081101561088157600080fd5b50356001608060020a0319166123f0565b61063f612468565b61063f600480360360408110156108b057600080fd5b8101906020810181356401000000008111156108cb57600080fd5b8201836020820111156108dd57600080fd5b803590602001918460018302840111640100000000831117156108ff57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561095257600080fd5b82018360208201111561096457600080fd5b8035906020019184600183028401116401000000008311171561098657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612473945050505050565b61063f600480360360408110156109dd57600080fd5b508035600160a060020a0316906020013560ff166127a6565b610a1d60048036036020811015610a0c57600080fd5b50356001608060020a03191661286c565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610a59578181015183820152602001610a41565b505050509050019250505060405180910390f35b61084f60048036036020811015610a8357600080fd5b50356001608060020a0319166128e5565b610aba60048036036020811015610aaa57600080fd5b5035600160a060020a0316612912565b60405180826005811115610aca57fe5b60ff16815260200191505060405180910390f35b61042960048036036020811015610af457600080fd5b50356001608060020a031916612933565b61045860048036036020811015610b1b57600080fd5b5035600160a060020a0316612952565b610b6160048036036040811015610b4157600080fd5b5080356001608060020a0319169060200135600160a060020a0316612973565b60405180826004811115610aca57fe5b61068f60048036036020811015610b8757600080fd5b50356001608060020a0319166129ad565b61063f60048036036020811015610bae57600080fd5b5035600160a060020a0316612a29565b61063f600480360360e0811015610bd457600080fd5b6001608060020a03198235169190810190604081016020820135640100000000811115610c0057600080fd5b820183602082011115610c1257600080fd5b80359060200191846001830284011164010000000083111715610c3457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050640100000000811115610c8757600080fd5b820183602082011115610c9957600080fd5b80359060200191846001830284011164010000000083111715610cbb57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050600160a060020a038335169350505060208101359060408101359060600135612a46565b61045860048036036020811015610d2c57600080fd5b50356001608060020a03191661329f565b61068f60048036036020811015610d5357600080fd5b50356001608060020a0319166132c1565b61042960048036036020811015610d7a57600080fd5b50356001608060020a031916613339565b61068f60048036036020811015610da157600080fd5b50356001608060020a031916613358565b61063f60048036036020811015610dc857600080fd5b50356001608060020a0319166133d3565b61084f60048036036020811015610def57600080fd5b50356001608060020a031916613656565b61042960048036036020811015610e1657600080fd5b50356001608060020a031916613684565b61084f60048036036060811015610e3d57600080fd5b506001608060020a031981351690600160a060020a0360208201351690604001356136a3565b61063f60048036036060811015610e7957600080fd5b506001608060020a031981351690600160a060020a03602082013516906040013561393a565b610ec660048036036020811015610eb557600080fd5b50356001608060020a031916613aa3565b60405180826002811115610aca57fe5b61084f60048036036020811015610eec57600080fd5b50356001608060020a031916613aca565b61063f60048036036020811015610f1357600080fd5b50356001608060020a031916613af2565b61068f60048036036020811015610f3a57600080fd5b5035600160a060020a0316613ccb565b610a1d60048036036020811015610f6057600080fd5b50356001608060020a031916613d5e565b61042960048036036020811015610f8757600080fd5b50356001608060020a031916613dd6565b6103df60048036036020811015610fae57600080fd5b5035600160a060020a0316613df5565b610fe560048036036020811015610fd457600080fd5b50356001608060020a031916613e0d565b60405180826003811115610aca57fe5b61063f613e33565b61068f6004803603602081101561101357600080fd5b50356001608060020a031916613f02565b6104296004803603604081101561103a57600080fd5b5080356001608060020a031916906020013560ff16613f7d565b61084f614363565b6001608060020a03198716600090815260076020526040812080546401000000009004600160a060020a031615156110cc576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d66833981519152604482015290519081900360640190fd5b80546401000000009004600160a060020a03163314611123576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d86833981519152604482015290519081900360640190fd5b600160a060020a038616600090815260086020526040902054608060020a026001608060020a0319161561118b5760405160e560020a62461bcd028152600401808060200182810382526026815260200180614d406026913960400191505060405180910390fd5b600083101580156111a757506b0332e8a789bc7ef49e00000083105b15156111fd576040805160e560020a62461bcd02815260206004820152601260248201527f494e56414c49445f4d41524b45545f4645450000000000000000000000000000604482015290519081900360640190fd5b6000600160a060020a0387161580159061122757506003820154600160a060020a03888116911614155b1561127257506001608060020a031989166000908152600760205260409020600301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03881617905560015b600089511180156113b6575081600101604051602001808060200182810382528381815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561130e5780601f106112e35761010080835404028352916020019161130e565b820191906000526020600020905b8154815290600101906020018083116112f157829003601f168201915b50509250505060405160208183030381529060405280519060200120896040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561136b578181015183820152602001611353565b50505050905090810190601f1680156113985780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012014155b156113f1576001608060020a03198a1660009081526007602090815260409091208a516113eb926001909201918c01906144df565b50600190505b6000885111801561152a5750604080516020808201908152600280860180546000196101006001831615020116919091049383018490529290918291606090910190849080156114825780601f1061145757610100808354040283529160200191611482565b820191906000526020600020905b81548152906001019060200180831161146557829003601f168201915b50509250505060405160208183030381529060405280519060200120886040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156114df5781810151838201526020016114c7565b50505050905090810190601f16801561150c5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012014155b15611565576001608060020a03198a166000908152600760209081526040909120895161155f926002909201918b01906144df565b50600190505b6004820154861461159357506001608060020a03198916600090815260076020526040902060040185905560015b600582015485146115c157506001608060020a03198916600090815260076020526040902060050184905560015b600682015484146115ef57506001608060020a03198916600090815260076020526040902060060183905560015b80156117e957896001608060020a0319167fe5e16c8bac0b35f728c96809036d527464a2850cd0ab58970a44d72b107498f68360000160009054906101000a900463ffffffff168460000160049054906101000a9004600160a060020a031685600101866002018760030160009054906101000a9004600160a060020a0316886004015489600501548a60060154604051808963ffffffff1663ffffffff16815260200188600160a060020a0316600160a060020a03168152602001806020018060200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184815260200183810383528981815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561175e5780601f106117335761010080835404028352916020019161175e565b820191906000526020600020905b81548152906001019060200180831161174157829003601f168201915b50508381038252885460026000196101006001841615020190911604808252602090910190899080156117d25780601f106117a7576101008083540402835291602001916117d2565b820191906000526020600020905b8154815290600101906020018083116117b557829003601f168201915b50509a505050505050505050505060405180910390a25b9998505050505050505050565b6001608060020a031982166000908152600760209081526040808320600160a060020a038516845260090190915290206001015492915050565b600090815260066020526040902054608060020a0290565b60013360009081526003602052604090206002015460ff16600581111561186b57fe5b1480611897575060023360009081526003602052604090206002015460ff16600581111561189557fe5b145b15156118ed576040805160e560020a62461bcd02815260206004820152600c60248201527f4e4f545f415f4d454d4245520000000000000000000000000000000000000000604482015290519081900360640190fd5b6001608060020a03198516600090815260046020526040902054650100000000009004600160a060020a03161561196e576040805160e560020a62461bcd02815260206004820152601560248201527f444f4d41494e5f414c52454144595f4558495354530000000000000000000000604482015290519081900360640190fd5b60408051610100810190915260018054640100000000900463ffffffff1682526020820190815260200133600160a060020a0316815260200185815260200184815260200183815260200182815260200160006040519080825280602002602001820160405280156119ea578160200160208202803883390190505b5090526001608060020a0319861660009081526004602090815260409091208251815463ffffffff191663ffffffff90911617808255918301519091829064ff000000001916640100000000836002811115611a4257fe5b021790555060408201518154600160a060020a03909116650100000000000278ffffffffffffffffffffffffffffffffffffffff0000000000199091161781556060820151600182015560808201518051611aa79160028401916020909101906144df565b5060a08201518051611ac39160038401916020909101906144df565b5060c08201518051611adf9160048401916020909101906144df565b5060e08201518051611afb91600584019160209091019061455d565b50506001805460405164010000000090910463ffffffff168082526001608060020a0319891693507fb3e08ef90bd1b5938971d100a5221986c383acaf94adb0c7a008f553b776b98b92909133908990899089908990602081018760ff16815260200186600160a060020a0316600160a060020a03168152602001858152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015611bbd578181015183820152602001611ba5565b50505050905090810190601f168015611bea5780820380516001836020036101000a031916815260200191505b50848103835286518152865160209182019188019080838360005b83811015611c1d578181015183820152602001611c05565b50505050905090810190601f168015611c4a5780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b83811015611c7d578181015183820152602001611c65565b50505050905090810190601f168015611caa5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390a250506001805463ffffffff640100000000808304821684019091160267ffffffff0000000019909116179055505050565b6001608060020a03191660009081526004602052604090206001015490565b6001608060020a031981166000908152600560209081526040918290206002908101805484516001821615610100026000190190911692909204601f81018490048402830184019094528382526060939192909190830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b820191906000526020600020905b815481529060010190602001808311611d9857829003601f168201915b50505050509050919050565b6001608060020a031981166000908152600760205260409020546401000000009004600160a060020a03161515611e30576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d66833981519152604482015290519081900360640190fd5b50565b600160a060020a03811660009081526003602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b6001608060020a031981166000908152600760205260409020546401000000009004600160a060020a03161515611f16576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d66833981519152604482015290519081900360640190fd5b6001608060020a031981166000908152600760205260409020546401000000009004600160a060020a03163314611e30576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d86833981519152604482015290519081900360640190fd5b6001608060020a03198416600090815260046020526040902054650100000000009004600160a060020a03161515612007576040805160e560020a62461bcd02815260206004820152600e60248201527f4e4f5f535543485f444f4d41494e000000000000000000000000000000000000604482015290519081900360640190fd5b6001608060020a03198416600090815260046020526040902054650100000000009004600160a060020a03163314612077576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d86833981519152604482015290519081900360640190fd5b6001608060020a03198516600090815260056020526040902054608060020a900460ff1660038111156120a657fe5b60ff16156120fe576040805160e560020a62461bcd02815260206004820152601360248201527f4e4f44455f414c52454144595f50414952454400000000000000000000000000604482015290519081900360640190fd5b600082815260066020526040902054608060020a026001608060020a03191615612172576040805160e560020a62461bcd02815260206004820152601260248201527f4455504c49434154455f4e4f44455f4b45590000000000000000000000000000604482015290519081900360640190fd5b600183600381111561218057fe5b60ff16148061219c57506003838181111561219757fe5b60ff16145b15156121f2576040805160e560020a62461bcd02815260206004820152601160248201527f494e56414c49445f4e4f44455f54595045000000000000000000000000000000604482015290519081900360640190fd5b608060405190810160405280856001608060020a031916815260200184600381111561221a57fe5b8152602080820185905260409182018490526001608060020a03198881166000908152600583529290922083518154909316608060020a93849004178082559184015190929091839170ff00000000000000000000000000000000199091169083600381111561228657fe5b021790555060408201516001820155606082015180516122b09160028401916020909101906144df565b505050600082815260066020908152604080832080546001608060020a0319908116608060020a8b0490811790925588811680865260048552838620600501805460018181018355918852868820600282040180546001608060020a03929093166010026101000a918202199092169402939093179092558251908a1681528084018790526060928101838152865193820193909352855191947fb3d59b15ab99282c8dd963009b3b6c9d12c2422dcf7ee81f9c67c8c0996cb9ec948b9489948994939192608085019290860191908190849084905b8381101561239e578181015183820152602001612386565b50505050905090810190601f1680156123cb5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a25050505050565b600254600160a060020a031681565b6001608060020a0319811660009081526004602090815260409182902060030180548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b6124713361437e565b565b3360009081526003602052604090206002015460ff16600581111561249457fe5b156124e9576040805160e560020a62461bcd02815260206004820152601960248201527f4d454d4245525f414c52454144595f5245474953544552454400000000000000604482015290519081900360640190fd5b60405160200180806020018281038252602e815260200180614da6602e913960400191505060405160208183030381529060405280519060200120826040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561256557818101518382015260200161254d565b50505050905090810190601f1680156125925780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120141515612604576040805160e560020a62461bcd02815260206004820152600c60248201527f494e56414c49445f45554c410000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805160608101825283815260208082018490526001828401523360009081526003825292909220815180519293919261264292849201906144df565b50602082810151805161265b92600185019201906144df565b50604082015160028201805460ff1916600183600581111561267957fe5b021790555090505033600160a060020a03167ff80f80714d0c23a9fad9abecbe04fa405bb13477a68a69a520886c0bb9853b29838360016040518080602001806020018460058111156126c857fe5b60ff168152602001838103835286818151815260200191508051906020019080838360005b838110156127055781810151838201526020016126ed565b50505050905090810190601f1680156127325780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561276557818101518382015260200161274d565b50505050905090810190601f1680156127925780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a25050565b6127af33613df5565b15156127ba57600080fd5b3360009081526003602052604090206002015460ff1660058111156127db57fe5b1515612831576040805160e560020a62461bcd02815260206004820152600e60248201527f4e4f5f535543485f4d454d424552000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0382166000908152600360205260409020600201805482919060ff1916600183600581111561286357fe5b02179055505050565b6001608060020a03198116600090815260076020818152604092839020909101805483518184028101840190945280845260609392830182828015611db557602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116128bc5750505050509050919050565b6001608060020a0319166000908152600760205260409020546401000000009004600160a060020a031690565b600160a060020a031660009081526003602052604090206002015460ff1690565b6001608060020a03191660009081526007602052604090206004015490565b600160a060020a0316600090815260086020526040902054608060020a0290565b6001608060020a031982166000908152600760209081526040808320600160a060020a038516845260090190915290205460ff1692915050565b6001608060020a03198116600090815260076020908152604091829020600190810180548451600293821615610100026000190190911692909204601f81018490048402830184019094528382526060939192909190830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b612a3233613df5565b1515612a3d57600080fd5b611e30816143c6565b6001546001608060020a03198816600090815260076020526040902054600160a060020a03680100000000000000009092048216916401000000009091041615612ada576040805160e560020a62461bcd02815260206004820152601560248201527f4d41524b45545f414c52454144595f4558495354530000000000000000000000604482015290519081900360640190fd5b600160a060020a0385161515612b3a576040805160e560020a62461bcd02815260206004820152600d60248201527f494e56414c49445f4d414b455200000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038516600090815260086020526040902054608060020a026001608060020a03191615612ba25760405160e560020a62461bcd028152600401808060200182810382526026815260200180614d406026913960400191505060405180910390fd5b60008410158015612c1a575080600160a060020a03166318160ddd6040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612bea57600080fd5b505afa158015612bfe573d6000803e3d6000fd5b505050506040513d6020811015612c1457600080fd5b50518411155b1515612c70576040805160e560020a62461bcd02815260206004820152601960248201527f494e56414c49445f50524f56494445525f534543555249545900000000000000604482015290519081900360640190fd5b60008310158015612ce8575080600160a060020a03166318160ddd6040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612cb857600080fd5b505afa158015612ccc573d6000803e3d6000fd5b505050506040513d6020811015612ce257600080fd5b50518311155b1515612d3e576040805160e560020a62461bcd02815260206004820152601960248201527f494e56414c49445f434f4e53554d45525f534543555249545900000000000000604482015290519081900360640190fd5b60008210158015612dc457506298968081600160a060020a03166318160ddd6040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612d8a57600080fd5b505afa158015612d9e573d6000803e3d6000fd5b505050506040513d6020811015612db457600080fd5b505103670de0b6b3a76400000282105b1515612e1a576040805160e560020a62461bcd02815260206004820152601260248201527f494e56414c49445f4d41524b45545f4645450000000000000000000000000000604482015290519081900360640190fd5b604080516101408101825260015463ffffffff168152336020808301919091528183018a905260608201899052600160a060020a038816608083015260a0820187905260c0820186905260e0820185905282516000808252818301855261010084019190915283518181529182019093529091610120830191905090526001608060020a031989166000908152600760209081526040918290208351815485840151600160a060020a03166401000000000277ffffffffffffffffffffffffffffffffffffffff000000001963ffffffff90931663ffffffff199092169190911791909116178155918301518051612f1892600185019201906144df565b5060608201518051612f349160028401916020909101906144df565b50608082015160038201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905560a0820151600482015560c0820151600582015560e082015160068201556101008201518051612fa291600784019160209091019061460f565b506101208201518051612fbf91600884019160209091019061460f565b50506040805180820190915290508060028152600060209182018190526001608060020a03198b1681526007825260408082203383526009019092522081518154829060ff1916600183600481111561301457fe5b02179055506020820151816001015590505060076000896001608060020a0319166001608060020a03191681526020019081526020016000206008018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050876008600087600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a8154816001608060020a030219169083608060020a90040217905550600160009054906101000a900463ffffffff16600101600160006101000a81548163ffffffff021916908363ffffffff160217905550876001608060020a0319167f4bd7c78d90ab88f388bfeb546e0c4420507a56234e8f64c32e3f880f3538ce94600160009054906101000a900463ffffffff16338a8a8a8a8a8a604051808963ffffffff1663ffffffff16815260200188600160a060020a0316600160a060020a03168152602001806020018060200187600160a060020a0316600160a060020a03168152602001868152602001858152602001848152602001838103835289818151815260200191508051906020019080838360005b838110156131f35781810151838201526020016131db565b50505050905090810190601f1680156132205780820380516001836020036101000a031916815260200191505b5083810382528851815288516020918201918a019080838360005b8381101561325357818101518382015260200161323b565b50505050905090810190601f1680156132805780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390a25050505050505050565b6001608060020a031916600090815260056020526040902054608060020a0290565b6001608060020a0319811660009081526004602081815260409283902090910180548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b6001608060020a03191660009081526007602052604090206005015490565b6001608060020a031981166000908152600760209081526040918290206002908101805484516001821615610100026000190190911692909204601f81018490048402830184019094528382526060939192909190830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b60013360009081526003602052604090206002015460ff1660058111156133f657fe5b1480613422575060023360009081526003602052604090206002015460ff16600581111561342057fe5b145b1515613478576040805160e560020a62461bcd02815260206004820152600c60248201527f4e4f545f415f4d454d4245520000000000000000000000000000000000000000604482015290519081900360640190fd5b6001608060020a03198116600090815260046020526040902054650100000000009004600160a060020a031615156134fa576040805160e560020a62461bcd02815260206004820152600e60248201527f4e4f5f535543485f444f4d41494e000000000000000000000000000000000000604482015290519081900360640190fd5b6001608060020a03198116600090815260046020526040902054650100000000009004600160a060020a0316331461356a576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d86833981519152604482015290519081900360640190fd5b60016001608060020a03198216600090815260046020526040902054640100000000900460ff16600281111561359c57fe5b146135f1576040805160e560020a62461bcd02815260206004820152601160248201527f444f4d41494e5f4e4f545f414354495645000000000000000000000000000000604482015290519081900360640190fd5b6001608060020a03198116600081815260046020908152604091829020805464ff00000000191664020000000017905581516002815291517f276aca339c66951bcad57d5ee78858b2ce183c4a230417461c550556c8b9f69e9281900390910190a250565b6001608060020a031916600090815260046020526040902054650100000000009004600160a060020a031690565b6001608060020a03191660009081526005602052604090206001015490565b6001608060020a031983166000908152600760205260408120546401000000009004600160a060020a03161515613712576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d66833981519152604482015290519081900360640190fd5b6000843385600086603c61372461467d565b6001608060020a03199096168652600160a060020a039485166020870152928416604080870191909152919093166060850152608084019290925263ffffffff1660a0830152519081900360c001906000f080158015613788573d6000803e3d6000fd5b50600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03808516602483015260448201889052915193945068010000000000000000909204169160009183916323b872dd9160648082019260209290919082900301818787803b15801561381057600080fd5b505af1158015613824573d6000803e3d6000fd5b505050506040513d602081101561383a57600080fd5b5051905080151561387f5760405160e560020a62461bcd028152600401808060200182810382526021815260200180614dd46021913960400191505060405180910390fd5b6001608060020a0319871660008181526007602081815260408084209283018054600181018255908552828520018054600160a060020a03808b1673ffffffffffffffffffffffffffffffffffffffff19909216821790925594869052925481513381528c8516938101939093526401000000009004909216818301526060810192909252517fab16e035d6a70660787e6c73a898a50b8fdc5e3fb07b087455e64af81a6bb25d9181900360800190a2509095945050505050565b6001608060020a031983166000908152600760205260409020546401000000009004600160a060020a031615156139a9576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d66833981519152604482015290519081900360640190fd5b6001608060020a03198316600090815260076020526040902060030154600160a060020a03161515613a25576040805160e560020a62461bcd02815260206004820152601660248201527f4e4f5f4143544956455f4d41524b45545f4d414b455200000000000000000000604482015290519081900360640190fd5b6001608060020a03198316600081815260076020908152604091829020600301548251600160a060020a03918216815290861691810191909152338183015260608101849052600a608082015290517f1c3be017379c486bade742062ae83c3a0a25974e898e26fd98a221d0c53d9dca9181900360a00190a2505050565b6001608060020a031916600090815260046020526040902054640100000000900460ff1690565b6001608060020a031916600090815260076020526040902060030154600160a060020a031690565b6001608060020a03198116600090815260056020526040902054608060020a900460ff166003811115613b2157fe5b60ff161515613b7a576040805160e560020a62461bcd02815260206004820152600c60248201527f4e4f5f535543485f4e4f44450000000000000000000000000000000000000000604482015290519081900360640190fd5b6001608060020a0319808216600090815260056020908152604080832054608060020a029093168252600490522054650100000000009004600160a060020a03163314613bff576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d86833981519152604482015290519081900360640190fd5b6001608060020a031981166000818152600560208181526040808420805460018201805470ffffffffffffffffffffffffffffffffff19831684559087905583518086019485905287815297909652939092529351608060020a90920293613c6c926002909201916144df565b5060008181526006602090815260409182902080546001608060020a0319908116909155825186821681529251908516927f22c6b34a83af23cbec20674e179fd0e690b13a36e294868475fb35a10c26811392908290030190a2505050565b60606003600083600160a060020a0316600160a060020a031681526020019081526020016000206001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611db55780601f10611d8a57610100808354040283529160200191611db5565b6001608060020a03198116600090815260076020908152604091829020600801805483518184028101840190945280845260609392830182828015611db557602002820191906000526020600020908154600160a060020a031681526001909101906020018083116128bc5750505050509050919050565b6001608060020a03191660009081526007602052604090206006015490565b6000613e07818363ffffffff61440e16565b92915050565b6001608060020a031916600090815260056020526040902054608060020a900460ff1690565b3360009081526003602052604090206002015460ff166005811115613e5457fe5b1515613eaa576040805160e560020a62461bcd02815260206004820152600e60248201527f4e4f5f535543485f4d454d424552000000000000000000000000000000000000604482015290519081900360640190fd5b336000908152600360208190526040909120600201805460ff191660018302179055506040805133815290517fa59e3b52cc428f9ef295563b34bd6af71489d571edf9d7f38ba0e977d0abc6cf9181900360200190a1565b6001608060020a031981166000908152600460209081526040918290206002908101805484516001821615610100026000190190911692909204601f81018490048402830184019094528382526060939192909190830182828015611db55780601f10611d8a57610100808354040283529160200191611db5565b6001608060020a031982166000908152600760205260408120546401000000009004600160a060020a03161515613fec576040805160e560020a62461bcd02815260206004820152600e6024820152600080516020614d66833981519152604482015290519081900360640190fd5b6001608060020a03198316600090815260076020908152604080832033845260090190915290205460ff16600481111561402257fe5b60ff161561407a576040805160e560020a62461bcd02815260206004820152601460248201527f4143544f525f414c52454144595f4a4f494e4544000000000000000000000000604482015290519081900360640190fd5b600282600481111561408857fe5b60ff1614806140a5575060038260048111156140a057fe5b60ff16145b806140bd5750600482818111156140b857fe5b60ff16145b15156140c857600080fd5b600060038360048111156140d857fe5b60ff16141561410457506001608060020a03198316600090815260076020526040902060040154614141565b6004838181111561411157fe5b60ff16141561413d57506001608060020a03198316600090815260076020526040902060050154614141565b5060005b600154604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101849052905168010000000000000000909204600160a060020a03169160009183916323b872dd9160648082019260209290919082900301818787803b1580156141c357600080fd5b505af11580156141d7573d6000803e3d6000fd5b505050506040513d60208110156141ed57600080fd5b50519050801515614248576040805160e560020a62461bcd02815260206004820181905260248201527f4a4f494e5f4d41524b45545f5452414e534645525f46524f4d5f4641494c4544604482015290519081900360640190fd5b604080519081016040528086600481111561425f57fe5b815260209081018590526001608060020a0319881660009081526007825260408082203383526009019092522081518154829060ff191660018360048111156142a457fe5b02179055506020918201516001918201556001608060020a03198816600081815260078452604080822060080180549485018155825290849020909201805473ffffffffffffffffffffffffffffffffffffffff191633908117909155915182815290927fc3b1ce444aaba0433920dfc940f56a5a9d00d97a0300340b4c79e237078a7c0c92918991889190810183600481111561433e57fe5b60ff168152602001828152602001935050505060405180910390a25090949350505050565b600154680100000000000000009004600160a060020a031681565b61438f60008263ffffffff61444516565b604051600160a060020a038216907fa7b36d52bea726c3aa90d876d0e52a1089a347b3e3408a03f08eae32f96fdbb490600090a250565b6143d760008263ffffffff61449116565b604051600160a060020a038216907f1390a149489c82e9e2e89927bdb17ad1ea3f0cc314fce06c96369721d3afb8f090600090a250565b6000600160a060020a038216151561442557600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a038116151561445a57600080fd5b614464828261440e565b151561446f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b600160a060020a03811615156144a657600080fd5b6144b0828261440e565b156144ba57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061452057805160ff191683800117855561454d565b8280016001018555821561454d579182015b8281111561454d578251825591602001919060010190614532565b5061455992915061468d565b5090565b828054828255906000526020600020906001016002900481019282156146035791602002820160005b838211156145ce57835183826101000a8154816001608060020a030219169083608060020a900402179055509260200192601001602081600f01049283019260010302614586565b80156146015782816101000a8154906001608060020a030219169055601001602081600f010492830192600103026145ce565b505b506145599291506146aa565b828054828255906000526020600020908101928215614671579160200282015b82811115614671578251825473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390911617825560209092019160019091019061462f565b506145599291506146ce565b6040516106408061470083390190565b6146a791905b808211156145595760008155600101614693565b90565b6146a791905b808211156145595780546001608060020a03191681556001016146b0565b6146a791905b8082111561455957805473ffffffffffffffffffffffffffffffffffffffff191681556001016146d456fe608060405234801561001057600080fd5b5060405160c080610640833981018060405260c081101561003057600080fd5b508051602082015160408301516060840151608085015160a09095015160008054610100608860020a0319166101007001000000000000000000000000000000009097049690960295909517855560018054600160a060020a0319908116600160a060020a03968716179091556002805482169486169490941790935560038054909316939091169290921790556004929092556007805463ffffffff191663ffffffff909316929092179091554360055561054e9081906100f290396000f3fe608060405234801561001057600080fd5b50600436106100bb576000357c01000000000000000000000000000000000000000000000000000000009004806370dea79a1161008357806370dea79a146101625780639d3718951461016c5780639ef27b00146101b0578063aa8c217c146101b8578063c89e4361146101c0576100bb565b80632ef2d55e146100c057806338930203146100e157806366d003ac146100fb57806367e404ce1461012c5780636ed71ede14610134575b600080fd5b6100c86101c8565b6040805163ffffffff9092168252519081900360200190f35b6100e96101d4565b60408051918252519081900360200190f35b6101036101da565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101036101f6565b61013c610212565b604080516fffffffffffffffffffffffffffffffff199092168252519081900360200190f35b61016a610230565b005b61016a600480360360c081101561018257600080fd5b5080359060ff6020820135169060408101359060608101359063ffffffff6080820135169060a001356102f4565b6100e96104b0565b6100e96104b6565b6101036104bc565b60075463ffffffff1690565b60055490565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b60005461010090047001000000000000000000000000000000000290565b60065415610288576040805160e560020a62461bcd02815260206004820152601660248201527f4348414e4e454c5f414c52454144595f434c4f53454400000000000000000000604482015290519081900360640190fd5b6007546005544263ffffffff9092160111156102ee576040805160e560020a62461bcd02815260206004820152600f60248201527f6368616e6e656c2074696d656f75740000000000000000000000000000000000604482015290519081900360640190fd5b43600655565b60008060018888888860405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610354573d6000803e3d6000fd5b5050604051601f19015160015490935073ffffffffffffffffffffffffffffffffffffffff808516911614801591506103a8575060035473ffffffffffffffffffffffffffffffffffffffff838116911614155b156103fd576040805160e560020a62461bcd02815260206004820152601160248201527f696e76616c6964207369676e6174757265000000000000000000000000000000604482015290519081900360640190fd5b50604080516c0100000000000000000000000030026020808301919091527c010000000000000000000000000000000000000000000000000000000063ffffffff8716026034830152603880830186905283518084039091018152605890920190925280519101208781146104a65760405160e560020a62461bcd02815260040180806020018281038252604a8152602001806104d9604a913960600191505060405180910390fd5b5050505050505050565b60065490565b60045490565b60025473ffffffffffffffffffffffffffffffffffffffff169056fe696e76616c6964207369676e617475726520287369676e61747572652069732076616c69642062757420646f65736e2774206d617463682074686520646174612070726f766964656429a165627a7a7230582066279392851f52c4e99185bb0bd2d49787212a69da27e07155ba6a0d2ea6f1f300294d414b45525f414c52454144595f574f524b494e475f464f525f4f544845525f4d41524b45544e4f5f535543485f4d41524b45540000000000000000000000000000000000004e4f545f415554484f52495a4544000000000000000000000000000000000000516d553747697a6272653137783656325652315132474a456a7a366d38533162586d427456785332766d766238314f50454e5f4348414e4e454c5f5452414e534645525f46524f4d5f4641494c4544a165627a7a72305820c839fe225bf18a7f8c5f807b01926a1040e3b99a7ac3e061ab99d71f984dc4a00029", "sourceMap": "1116:32760:2:-;;;6641:1;6614:28;;-1:-1:-1;;;;6614:28:2;;;;;6768;;;;;7818:197;5:2:-1;;;;30:1;27;20:12;5:2;7818:197:2;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7818:197:2;;;;;;;1837:26:1;1852:10;1837:14;;;;:26;:::i;:::-;7887:5:2;:14;;;;;-1:-1:-1;;;;;7887:14:2;;;;;;;;;;;;;;7911:12;:28;;-1:-1:-1;;;;;;7911:28:2;;;;;;;;;;7972:36;;;;;;;;-1:-1:-1;7972:36:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7972:36:2;;;;;;7958:10;7950:19;;;;:7;:19;;;;;;;;:58;;;;:19;;:58;;:19;;:58;;;;;:::i;:::-;-1:-1:-1;7950:58:2;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7950:58:2;;;;;;;;;-1:-1:-1;;7950:58:2;;;;;;;;;;;;;;;;;;;7818:197;;1116:32760;;2778:131:1;2839:24;:11;2855:7;2839:15;;;;;;:24;:::i;:::-;2878;;-1:-1:-1;;;;;2878:24:1;;;;;;;;2778:131;:::o;259:181:6:-;-1:-1:-1;;;;;335:21:6;;;;327:30;;;;;;376:18;380:4;386:7;376:3;;;;:18;:::i;:::-;375:19;367:28;;;;;;-1:-1:-1;;;;;406:20:6;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;406:27:6;429:4;406:27;;;259:181::o;786:162::-;858:4;-1:-1:-1;;;;;882:21:6;;;;874:30;;;;;;-1:-1:-1;;;;;;921:20:6;:11;:20;;;;;;;;;;;;;;;786:162::o;1116:32760:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:32760:2;;;-1:-1:-1;1116:32760:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "1116:32760:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1116:32760:2;;;;;;;;-1:-1:-1;;;1116:32760:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25149:2014;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;25149:2014:2;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;25149:2014:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;25149:2014:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;25149:2014:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;25149:2014:2;;;;;;;;-1:-1:-1;25149:2014:2;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;25149:2014:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;25149:2014:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;25149:2014:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;25149:2014:2;;-1:-1:-1;;;;;;;25149:2014:2;;;;-1:-1:-1;;;25149:2014:2;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;30157:160;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30157:160:2;;-1:-1:-1;;;;;;30157:160:2;;;;;-1:-1:-1;;;;;30157:160:2;;:::i;:::-;;;;;;;;;;;;;;;;17299:112;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17299:112:2;;:::i;:::-;;;;-1:-1:-1;;;;;;17299:112:2;;;;;;;;;;;;;;11682:728;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;11682:728:2;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;11682:728:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11682:728:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;11682:728:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;11682:728:2;;;;;;;;-1:-1:-1;11682:728:2;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;11682:728:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11682:728:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;11682:728:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;11682:728:2;;;;;;;;-1:-1:-1;11682:728:2;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;11682:728:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11682:728:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;11682:728:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;11682:728:2;;-1:-1:-1;11682:728:2;;-1:-1:-1;;;;;11682:728:2:i;:::-;;14048:121;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14048:121:2;-1:-1:-1;;;;;;14048:121:2;;:::i;18466:119::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18466:119:2;-1:-1:-1;;;;;;18466:119:2;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18466:119:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30586:150;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30586:150:2;-1:-1:-1;;;;;;30586:150:2;;:::i;9986:120::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9986:120:2;-1:-1:-1;;;;;9986:120:2;;:::i;27318:224::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;27318:224:2;-1:-1:-1;;;;;;27318:224:2;;:::i;15602:785::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;15602:785:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;15602:785:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15602:785:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;15602:785:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;15602:785:2;;-1:-1:-1;15602:785:2;;-1:-1:-1;;;;;15602:785:2:i;6993:27::-;;;:::i;:::-;;;;-1:-1:-1;;;;;6993:27:2;;;;;;;;;;;;;;14673:125;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14673:125:2;-1:-1:-1;;;;;;14673:125:2;;:::i;2688:84:1:-;;;:::i;8606:463:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8606:463:2;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8606:463:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8606:463:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8606:463:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;8606:463:2;;;;;;;;-1:-1:-1;8606:463:2;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;8606:463:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8606:463:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8606:463:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;8606:463:2;;-1:-1:-1;8606:463:2;;-1:-1:-1;;;;;8606:463:2:i;10922:202::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10922:202:2;;-1:-1:-1;;;;;10922:202:2;;;;;;;;:::i;32267:144::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32267:144:2;-1:-1:-1;;;;;;32267:144:2;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;32267:144:2;;;;;;;;;;;;;;;;;21710:120;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21710:120:2;-1:-1:-1;;;;;;21710:120:2;;:::i;9631:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9631:120:2;-1:-1:-1;;;;;9631:120:2;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23041:142;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23041:142:2;-1:-1:-1;;;;;;23041:142:2;;:::i;21413:117::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21413:117:2;-1:-1:-1;;;;;21413:117:2;;:::i;29704:159::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29704:159:2;;-1:-1:-1;;;;;;29704:159:2;;;;;-1:-1:-1;;;;;29704:159:2;;:::i;:::-;;;;;;;;;;;;22014:126;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22014:126:2;-1:-1:-1;;;;;;22014:126:2;;:::i;2527:103:1:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2527:103:1;-1:-1:-1;;;;;2527:103:1;;:::i;19882:1348:2:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;19882:1348:2;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;19882:1348:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19882:1348:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19882:1348:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;19882:1348:2;;;;;;;;-1:-1:-1;19882:1348:2;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;19882:1348:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;19882:1348:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;19882:1348:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;19882:1348:2;;-1:-1:-1;;;;;;;19882:1348:2;;;;-1:-1:-1;;;19882:1348:2;;;;;;;;;;;;;;:::i;17601:113::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17601:113:2;-1:-1:-1;;;;;;17601:113:2;;:::i;14996:123::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14996:123:2;-1:-1:-1;;;;;;14996:123:2;;:::i;23396:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23396:142:2;-1:-1:-1;;;;;;23396:142:2;;:::i;22333:124::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22333:124:2;-1:-1:-1;;;;;;22333:124:2;;:::i;12634:638::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12634:638:2;-1:-1:-1;;;;;;12634:638:2;;:::i;13742:119::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13742:119:2;-1:-1:-1;;;;;;13742:119:2;;:::i;18176:107::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18176:107:2;-1:-1:-1;;;;;;18176:107:2;;:::i;31109:932::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;31109:932:2;;;;-1:-1:-1;;;;;31109:932:2;;;;;;;;;;:::i;33394:480::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;33394:480:2;;;;-1:-1:-1;;;;;33394:480:2;;;;;;;;;;:::i;13442:126::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13442:126:2;-1:-1:-1;;;;;;13442:126:2;;:::i;:::-;;;;;;;;;;;;22708:120;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22708:120:2;-1:-1:-1;;;;;;22708:120:2;;:::i;16567:558::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16567:558:2;-1:-1:-1;;;;;;16567:558:2;;:::i;10345:126::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10345:126:2;-1:-1:-1;;;;;10345:126:2;;:::i;29287:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29287:142:2;-1:-1:-1;;;;;;29287:142:2;;:::i;23723:122::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23723:122:2;-1:-1:-1;;;;;;23723:122:2;;:::i;2262:115:1:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2262:115:1;-1:-1:-1;;;;;2262:115:1;;:::i;17879:114:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17879:114:2;-1:-1:-1;;;;;;17879:114:2;;:::i;:::-;;;;;;;;;;;;9121:291;;;:::i;14362:129::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14362:129:2;-1:-1:-1;;;;;;14362:129:2;;:::i;27819:1266::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;27819:1266:2;;-1:-1:-1;;;;;;27819:1266:2;;;;;;;;:::i;6892:20::-;;;:::i;25149:2014::-;-1:-1:-1;;;;;;25381:17:2;;25340:4;25381:17;;;:7;:17;;;;;25417:12;;;;;-1:-1:-1;;;;;25417:12:2;:26;;25409:53;;;;;-1:-1:-1;;;;;25409:53:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25409:53:2;;;;;;;;;;;;;;;25480:12;;;;;-1:-1:-1;;;;;25480:12:2;25496:10;25480:26;25472:53;;;;;-1:-1:-1;;;;;25472:53:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;25472:53:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;25543:21:2;;25576:1;25543:21;;;:14;:21;;;;;;-1:-1:-1;;;25543:21:2;-1:-1:-1;;;;;;25543:35:2;;25535:86;;;;-1:-1:-1;;;;;25535:86:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25652:1;25639:9;:14;;:54;;;;;25669:24;25657:9;:36;25639:54;25631:85;;;;;;;-1:-1:-1;;;;;25631:85:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;25727:15;-1:-1:-1;;;;;25835:19:2;;;;;;:44;;-1:-1:-1;25867:12:2;;;;-1:-1:-1;;;;;25858:21:2;;;25867:12;;25858:21;;25835:44;25831:137;;;-1:-1:-1;;;;;;;25895:17:2;;;;;;:7;:17;;;;;:23;;:31;;-1:-1:-1;;25895:31:2;-1:-1:-1;;;;;25895:31:2;;;;;-1:-1:-1;25831:137:2;26003:1;25987:5;25981:19;:23;:94;;;;;26061:6;:12;;26050:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;26050:24:2;;;26040:35;;;;;;26029:5;26018:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;26018:17:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;26018:17:2;;;26008:28;;;;;;:67;;25981:94;25977:187;;;-1:-1:-1;;;;;;26091:17:2;;;;;;:7;:17;;;;;;;;:31;;;;:23;;;;;:31;;;;:::i;:::-;;26149:4;26136:17;;25977:187;26198:1;26183:4;26177:18;:22;:91;;;;-1:-1:-1;26244:23:2;;;;;;;;;;26255:11;;;;26244:23;;-1:-1:-1;;26244:23:2;;;;;;;;;;;;;;;;;;26255:11;26244:23;;;;;;;;;26255:11;;26244:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;26244:23:2;;;26234:34;;;;;;26224:4;26213:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;26213:16:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;26213:16:2;;;26203:27;;;;;;:65;;26177:91;26173:182;;;-1:-1:-1;;;;;;26284:17:2;;;;;;:7;:17;;;;;;;;:29;;;;:22;;;;;:29;;;;:::i;:::-;;26340:4;26327:17;;26173:182;26449:23;;;;26429:43;;26425:158;;-1:-1:-1;;;;;;;26488:17:2;;;;;;:7;:17;;;;;:34;;:53;;;26568:4;26425:158;26616:23;;;;26596:43;;26592:158;;-1:-1:-1;;;;;;;26655:17:2;;;;;;:7;:17;;;;;:34;;:53;;;26735:4;26592:158;26776:16;;;;26763:29;;26759:130;;-1:-1:-1;;;;;;;26808:17:2;;;;;;:7;:17;;;;;:27;;:39;;;26874:4;26759:130;26903:10;26899:230;;;26948:8;-1:-1:-1;;;;;26934:184:2;;;26958:6;:16;;;;;;;;;;;;26976:6;:12;;;;;;;;;;-1:-1:-1;;;;;26976:12:2;26990:6;:12;;27004:6;:11;;27017:6;:12;;;;;;;;;;-1:-1:-1;;;;;27017:12:2;27051:6;:23;;;27076:6;:23;;;27101:6;:16;;;26934:184;;;;;;;;;;;;;-1:-1:-1;;;;;26934:184:2;-1:-1:-1;;;;;26934:184:2;;;;;;;;;;;;-1:-1:-1;;;;;26934:184:2;-1:-1:-1;;;;;26934:184:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;26934:184:2;;;;;;;;-1:-1:-1;;26934:184:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26899:230;27146:10;25149:2014;-1:-1:-1;;;;;;;;;25149:2014:2:o;30157:160::-;-1:-1:-1;;;;;;30270:17:2;;30244:7;30270:17;;;:7;:17;;;;;;;;-1:-1:-1;;;;;30270:31:2;;;;:24;;:31;;;;;:40;;;30157:160;;;;:::o;17299:112::-;17359:7;17385:19;;;:10;:19;;;;;;-1:-1:-1;;;17385:19:2;;17299:112::o;11682:728::-;11869:18;11848:10;11840:19;;;;:7;:19;;;;;:25;;;;;:47;;;;;;;;;:116;;;-1:-1:-1;11936:20:2;11915:10;11907:19;;;;:7;:19;;;;;:25;;;;;:49;;;;;;;;;11840:116;11832:141;;;;;;;-1:-1:-1;;;;;11832:141:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11992:17:2;;12027:1;11992:17;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;11992:23:2;:37;11984:71;;;;;-1:-1:-1;;;;;11984:71:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;12086:137;;;;;;;;;12093:9;;;;;;;;12086:137;;;;;;;;;;12125:10;-1:-1:-1;;;;;12086:137:2;;;;;12137:9;12086:137;;;;12184:7;12086:137;;;;12193:5;12086:137;;;;12200:4;12086:137;;;;12220:1;12206:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12206:16:2;-1:-1:-1;12086:137:2;;-1:-1:-1;;;;;;12066:17:2;;;;;;:7;:17;;;;;;;;:157;;;;-1:-1:-1;;12066:157:2;;;;;;;;;;;;;:17;;;;-1:-1:-1;;12066:157:2;;;;;;;;;;;;;;;-1:-1:-1;12066:157:2;;;;;;-1:-1:-1;;;;;12066:157:2;;;;;-1:-1:-1;;12066:157:2;;;;;;;;;;-1:-1:-1;12066:157:2;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;12066:157:2;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;12066:157:2;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;12066:157:2;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;12263:9:2;;;12239:128;;12263:9;;;;;;12239:128;;;-1:-1:-1;;;;;;12239:128:2;;;-1:-1:-1;12239:128:2;;12263:9;;12295:10;;12307:9;;12346:7;;12355:5;;12362:4;;12239:128;;;12263:9;12239:128;;;;;;;-1:-1:-1;;;;;12239:128:2;-1:-1:-1;;;;;12239:128:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12239:128:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12239:128:2;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12239:128:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12239:128:2;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12239:128:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12390:9:2;;;;;;;;;;:13;;12378:25;;;;-1:-1:-1;;12378:25:2;;;;;;-1:-1:-1;;;11682:728:2:o;14048:121::-;-1:-1:-1;;;;;;14135:17:2;14109:7;14135:17;;;:7;:17;;;;;:27;;;;14048:121::o;18466:119::-;-1:-1:-1;;;;;;18558:13:2;;;;;;:5;:13;;;;;;;;;:20;;;;18551:27;;;;;;;;;;-1:-1:-1;;18551:27:2;;;;;;;;;;;;;;;;;;;;;;;;;;18526:13;;18551:27;;18558:20;;18551:27;;;18558:20;18551:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18466:119;;;:::o;30586:150::-;-1:-1:-1;;;;;;30656:17:2;;30691:1;30656:17;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;30656:23:2;:37;;30648:64;;;;;-1:-1:-1;;;;;30648:64:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;30648:64:2;;;;;;;;;;;;;;;30586:150;:::o;9986:120::-;-1:-1:-1;;;;;10079:15:2;;;;;;:7;:15;;;;;;;;;10072:27;;;;;;-1:-1:-1;;10072:27:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10047:13;;10072:27;;;10079:15;10072:27;;;;;;;;;;;;;;;;;;;;;;;;27318:224;-1:-1:-1;;;;;;27388:17:2;;27423:1;27388:17;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;27388:23:2;:37;;27380:64;;;;;-1:-1:-1;;;;;27380:64:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;27380:64:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27462:17:2;;;;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;27462:23:2;27489:10;27462:37;27454:64;;;;;-1:-1:-1;;;;;27454:64:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;27454:64:2;;;;;;;;;;;;;;15602:785;-1:-1:-1;;;;;;15747:17:2;;15782:1;15747:17;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;15747:23:2;:37;;15739:64;;;;;-1:-1:-1;;;;;15739:64:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15821:17:2;;;;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;15821:23:2;15848:10;15821:37;15813:64;;;;;-1:-1:-1;;;;;15813:64:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15813:64:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15901:13:2;;;;;;:5;:13;;;;;:22;-1:-1:-1;;;15901:22:2;;;;15895:29;;;;;;;;:34;;;15887:66;;;;;-1:-1:-1;;;;;15887:66:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;16002:1;15971:19;;;:10;:19;;;;;;-1:-1:-1;;;15971:19:2;-1:-1:-1;;;;;;15971:33:2;;15963:64;;;;;-1:-1:-1;;;;;15963:64:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;16070:15;16051:8;16045:15;;;;;;;;:41;;;:100;;;-1:-1:-1;16131:13:2;16112:8;16106:15;;;;;;;;:39;;;16045:100;16037:130;;;;;;;-1:-1:-1;;;;;16037:130:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;16194:41;;;;;;;;;16199:8;-1:-1:-1;;;;;16194:41:2;;;;;;16209:8;16194:41;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16178:13:2;;;-1:-1:-1;16178:13:2;;;:5;:13;;;;;;:57;;;;;;;-1:-1:-1;;;16178:57:2;;;;;;;;;;;;:13;;:57;;:13;;-1:-1:-1;;16178:57:2;;;;;;;;;;;;;;;;;-1:-1:-1;16178:57:2;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;16245:19:2;;;;:10;:19;;;;;;;;:28;;-1:-1:-1;;;;;;16245:28:2;;;-1:-1:-1;;;16245:28:2;;;;;;;;16283:17;;;;;;:7;:17;;;;;:23;;27:10:-1;;-1:-1;23:18;;;45:23;;16283:36:2;;;;;;;;;;;;-1:-1:-1;;;;;16283:36:2;;;;;;16245:28;16283:36;;;;;;;;;;;;;;;;;16335:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16283:17;;16335:45;;16245:28;;:19;;16335:45;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;16335:45:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15602:785;;;;;:::o;6993:27::-;;;-1:-1:-1;;;;;6993:27:2;;:::o;14673:125::-;-1:-1:-1;;;;;;14768:17:2;;;;;;:7;:17;;;;;;;;;:23;;14761:30;;;;;;-1:-1:-1;;14761:30:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14736:13;;14761:30;;;14768:23;14761:30;;;;;;;;;;;;;;;;;;;;;;;;2688:84:1;2736:29;2754:10;2736:17;:29::i;:::-;2688:84::o;8606:463:2:-;8706:10;8698:19;;;;:7;:19;;;;;:25;;;;;8693:31;;;;;;;;:36;8685:74;;;;;-1:-1:-1;;;;;8685:74:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;8834:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8834:60:2;;;8824:71;;;;;;8798:4;8787:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8787:16:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8787:16:2;;;8777:27;;;;;;:118;8769:143;;;;;;;-1:-1:-1;;;;;8769:143:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;8945:41;;;;;;;;;;;;;;;;;;8967:18;8945:41;;;;8931:10;-1:-1:-1;8923:19:2;;;:7;:19;;;;;;:63;;;;8945:41;;8923:19;;:63;;:19;;:63;;;:::i;:::-;-1:-1:-1;8923:63:2;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8923:63:2;;;;;;;;;-1:-1:-1;;8923:63:2;;;;;;;;;;;;;;;;;;;9016:10;-1:-1:-1;;;;;9002:60:2;;9028:4;9034:7;9043:18;9002:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9002:60:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9002:60:2;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9002:60:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8606:463;;:::o;10922:202::-;2014:24:1;2027:10;2014:12;:24::i;:::-;2006:33;;;;;;;;11035:10:2;11027:19;;;;:7;:19;;;;;:25;;;;;11022:31;;;;;;;;:36;;11014:63;;;;;-1:-1:-1;;;;;11014:63:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11088:15:2;;;;;;:7;:15;;;;;:21;;:29;;11112:5;;11088:21;-1:-1:-1;;11088:29:2;;11112:5;11088:29;;;;;;;;;;;;;10922:202;;:::o;32267:144::-;-1:-1:-1;;;;;;32378:17:2;;;;;;:7;:17;;;;;;;;;:26;;;32371:33;;;;;;;;;;;;;;;;;32343:16;;32371:33;;;32378:26;32371:33;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32371:33:2;;;;;;;;;;;;;;;;;;;;;;32267:144;;;:::o;21710:120::-;-1:-1:-1;;;;;;21800:17:2;21774:7;21800:17;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;21800:23:2;;21710:120::o;9631:::-;-1:-1:-1;;;;;9723:15:2;9693:11;9723:15;;;:7;:15;;;;;:21;;;;;;9631:120::o;23041:142::-;-1:-1:-1;;;;;;23142:17:2;23116:7;23142:17;;;:7;:17;;;;;:34;;;;23041:142::o;21413:117::-;-1:-1:-1;;;;;21502:21:2;21476:7;21502:21;;;:14;:21;;;;;;-1:-1:-1;;;21502:21:2;;21413:117::o;29704:159::-;-1:-1:-1;;;;;;29815:17:2;;29787:9;29815:17;;;:7;:17;;;;;;;;-1:-1:-1;;;;;29815:31:2;;;;:24;;:31;;;;;:41;;;29704:159;;;;:::o;22014:126::-;-1:-1:-1;;;;;;22110:17:2;;;;;;:7;:17;;;;;;;;;:23;;;;22103:30;;;;;;;;;;;-1:-1:-1;;22103:30:2;;;;;;;;;;;;;;;;;;;;;;;;;;22078:13;;22103:30;;22110:23;;22103:30;;;22110:23;22103:30;;;;;;;;;;;;;;;;;;;;;;;;2527:103:1;2014:24;2027:10;2014:12;:24::i;:::-;2006:33;;;;;;;;2600:23;2615:7;2600:14;:23::i;19882:1348:2:-;20103:5;;-1:-1:-1;;;;;;20128:17:2;;20076:15;20128:17;;;:7;:17;;;;;:23;-1:-1:-1;;;;;20103:5:2;;;;;;;20128:23;;;;;:37;20120:71;;;;;-1:-1:-1;;;;;20120:71:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20209:19:2;;;;20201:45;;;;;-1:-1:-1;;;;;20201:45:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20264:21:2;;20297:1;20264:21;;;:14;:21;;;;;;-1:-1:-1;;;20264:21:2;-1:-1:-1;;;;;;20264:35:2;;20256:86;;;;-1:-1:-1;;;;;20256:86:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20380:1;20360:16;:21;;:65;;;;;20405:6;-1:-1:-1;;;;;20405:18:2;;:20;;;;;-1:-1:-1;;;20405:20:2;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20405:20:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20405:20:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20405:20:2;20385:40;;;20360:65;20352:103;;;;;;;-1:-1:-1;;;;;20352:103:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;20493:1;20473:16;:21;;:65;;;;;20518:6;-1:-1:-1;;;;;20518:18:2;;:20;;;;;-1:-1:-1;;;20518:20:2;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20518:20:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20518:20:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20518:20:2;20498:40;;;20473:65;20465:103;;;;;;;-1:-1:-1;;;;;20465:103:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;20599:1;20586:9;:14;;:69;;;;;20640:5;20617:6;-1:-1:-1;;;;;20617:18:2;;:20;;;;;-1:-1:-1;;;20617:20:2;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20617:20:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20617:20:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20617:20:2;:28;20649:6;20616:39;20604:51;;20586:69;20578:100;;;;;;;-1:-1:-1;;;;;20578:100:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;20709:144;;;;;;;;20716:9;;;;20709:144;;20727:10;20709:144;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20709:144:2;;;;;;;;;;;;;;;;;;;;;;;;20818:16;;-1:-1:-1;20818:16:2;;;;;;;;20716:9;20709:144;;;;;;20836:16;;;;;;;;;;;20709:144;;;;;;20836:16;-1:-1:-1;20709:144:2;;-1:-1:-1;;;;;;20689:17:2;;;;;;:7;:17;;;;;;;;;:164;;;;;;;;-1:-1:-1;;;;;20689:164:2;;;-1:-1:-1;;20689:164:2;;;;-1:-1:-1;;20689:164:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;20689:164:2;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;20689:164:2;;;;;;;;;-1:-1:-1;;20689:164:2;-1:-1:-1;;;;;20689:164:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;20689:164:2;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;20903:26:2;;;;;;;;;;-1:-1:-1;20903:26:2;20909:16;20903:26;;20927:1;20903:26;;;;;;;-1:-1:-1;;;;;;20864:17:2;;;;:7;:17;;;;;;20889:10;20864:36;;:24;;:36;;;;:65;;;;:36;;-1:-1:-1;;20864:65:2;;;;;;;;;;;;;;;;;;;;;;;;;;;20939:7;:17;20947:8;-1:-1:-1;;;;;20939:17:2;;-1:-1:-1;;;;;20939:17:2;;;;;;;;;;;;;:32;;20977:5;20939:44;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;20939:44:2;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20939:44:2;;;;;-1:-1:-1;;;;;20939:44:2;;;;;;;21018:8;20994:14;:21;21009:5;-1:-1:-1;;;;;20994:21:2;-1:-1:-1;;;;;20994:21:2;;;;;;;;;;;;;:32;;;;;-1:-1:-1;;;;;20994:32:2;;;;;-1:-1:-1;;;20994:32:2;;;;;;;21049:9;;;;;;;;;;;21061:1;21049:13;21037:9;;:25;;;;;;;;;;;;;;;;;;21092:8;-1:-1:-1;;;;;21078:145:2;;;21102:9;;;;;;;;;;;21113:10;21125:5;21132:4;21138:5;21177:16;21195;21213:9;21078:145;;;;;;;;;;;;;-1:-1:-1;;;;;21078:145:2;-1:-1:-1;;;;;21078:145:2;;;;;;;;;;;;-1:-1:-1;;;;;21078:145:2;-1:-1:-1;;;;;21078:145:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;21078:145:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21078:145:2;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;21078:145:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19882:1348;;;;;;;;:::o;17601:113::-;-1:-1:-1;;;;;;17687:13:2;17661:7;17687:13;;;:5;:13;;;;;:20;-1:-1:-1;;;17687:20:2;;17601:113::o;14996:123::-;-1:-1:-1;;;;;;15090:17:2;;;;;;:7;:17;;;;;;;;;:22;;;15083:29;;;;;;-1:-1:-1;;15083:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15058:13;;15083:29;;;15090:22;15083:29;;;;;;;;;;;;;;;;;;;;;;;;23396:142;-1:-1:-1;;;;;;23497:17:2;23471:7;23497:17;;;:7;:17;;;;;:34;;;;23396:142::o;22333:124::-;-1:-1:-1;;;;;;22428:17:2;;;;;;:7;:17;;;;;;;;;:22;;;;22421:29;;;;;;;;;;-1:-1:-1;;22421:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;22396:13;;22421:29;;22428:22;;22421:29;;;22428:22;22421:29;;;;;;;;;;;;;;;;;;;;;;;;12634:638;12728:18;12707:10;12699:19;;;;:7;:19;;;;;:25;;;;;:47;;;;;;;;;:116;;;-1:-1:-1;12795:20:2;12774:10;12766:19;;;;:7;:19;;;;;:25;;;;;:49;;;;;;;;;12699:116;12691:141;;;;;;;-1:-1:-1;;;;;12691:141:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12850:17:2;;12885:1;12850:17;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;12850:23:2;:37;;12842:64;;;;;-1:-1:-1;;;;;12842:64:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12924:17:2;;;;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;12924:23:2;12951:10;12924:37;12916:64;;;;;-1:-1:-1;;;;;12916:64:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12916:64:2;;;;;;;;;;;;;;;13026:19;-1:-1:-1;;;;;;12998:17:2;;;;;;:7;:17;;;;;:24;;;;;;:47;;;;;;;;;12990:77;;;;;-1:-1:-1;;;;;12990:77:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13160:17:2;;;;;;:7;:17;;;;;;;;;:46;;-1:-1:-1;;13160:46:2;;;;;13222:43;;13187:19;13222:43;;;;;;;;;;;;;;12634:638;:::o;13742:119::-;-1:-1:-1;;;;;;13831:17:2;13805:7;13831:17;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;13831:23:2;;13742:119::o;18176:107::-;-1:-1:-1;;;;;;18259:13:2;18233:7;18259:13;;;:5;:13;;;;;:17;;;;18176:107::o;31109:932::-;-1:-1:-1;;;;;;31257:17:2;;31214:22;31257:17;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;31257:23:2;:37;;31249:64;;;;;-1:-1:-1;;;;;31249:64:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;31249:64:2;;;;;;;;;;;;;;;31437:25;31487:8;31497:10;31509:8;31527:1;31531:6;31539:2;31465:77;;:::i;:::-;-1:-1:-1;;;;;;31465:77:2;;;;;-1:-1:-1;;;;;31465:77:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31465:77:2;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;31580:5:2;;31611:57;;;;;;31631:10;31611:57;;;;-1:-1:-1;;;;;31611:57:2;;;;;;;;;;;;;;;31437:105;;-1:-1:-1;31580:5:2;;;;;;31553:15;;31580:5;;31611:19;;:57;;;;;;;;;;;;;;;31553:15;31580:5;31611:57;;;5:2:-1;;;;30:1;27;20:12;5:2;31611:57:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31611:57:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31611:57:2;;-1:-1:-1;31678:53:2;;;;;;;-1:-1:-1;;;;;31678:53:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;31742:17:2;;;;;;:7;:17;;;;;;;;:26;;;27:10:-1;;39:1;23:18;;45:23;;31742:49:2;;;;;;;;;-1:-1:-1;;;;;31742:49:2;;;-1:-1:-1;;31742:49:2;;;;;;;;31958:17;;;;:23;;31904:96;;31936:10;31904:96;;;;;;;;;;;;31958:23;;;;;;31904:96;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32026:7:2;;31109:932;-1:-1:-1;;;;;31109:932:2:o;33394:480::-;-1:-1:-1;;;;;;33503:17:2;;33538:1;33503:17;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;33503:23:2;:37;;33495:64;;;;;-1:-1:-1;;;;;33495:64:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;33495:64:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;;33577:17:2;;33612:1;33577:17;;;:7;:17;;;;;:23;;;-1:-1:-1;;;;;33577:23:2;:37;;33569:72;;;;;-1:-1:-1;;;;;33569:72:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;33771:96:2;;33809:17;;;;:7;:17;;;;;;;;;:23;;;33771:96;;-1:-1:-1;;;;;33809:23:2;;;33771:96;;;;;;;;;;;;33844:10;33771:96;;;;;;;;;;33864:2;33771:96;;;;;;;;;;;;;;;33394:480;;;:::o;13442:126::-;-1:-1:-1;;;;;;13537:17:2;13506:12;13537:17;;;:7;:17;;;;;:24;;;;;;;13442:126::o;22708:120::-;-1:-1:-1;;;;;;22798:17:2;22772:7;22798:17;;;:7;:17;;;;;:23;;;-1:-1:-1;;;;;22798:23:2;;22708:120::o;16567:558::-;-1:-1:-1;;;;;;16636:13:2;;;;;;:5;:13;;;;;:22;-1:-1:-1;;;16636:22:2;;;;16630:29;;;;;;;;:34;;;;16622:59;;;;;-1:-1:-1;;;;;16622:59:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16707:13:2;;;16699:29;16707:13;;;:5;:13;;;;;;;;:20;-1:-1:-1;;;16707:20:2;16699:29;;;;;:7;:29;;;:35;;;;-1:-1:-1;;;;;16699:35:2;16738:10;16699:49;16691:76;;;;;-1:-1:-1;;;;;16691:76:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16691:76:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16797:13:2;;16778:16;16797:13;;;:5;:13;;;;;;;;:20;;;16845:17;;;;-1:-1:-1;;16916:38:2;;;;16964:30;;;;17004:25;;;;;;;;;;;;:13;;;;;;;;:25;;-1:-1:-1;;;16797:20:2;;;;17004:25;;:20;;;;;:25;:::i;:::-;-1:-1:-1;17070:1:2;17040:19;;;:10;:19;;;;;;;;;:32;;-1:-1:-1;;;;;;17040:32:2;;;;;;17088:30;;;;;;;;;;;;;;;;;;;;;;16567:558;;;:::o;10345:126::-;10409:13;10441:7;:15;10449:6;-1:-1:-1;;;;;10441:15:2;-1:-1:-1;;;;;10441:15:2;;;;;;;;;;;;:23;;10434:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29287:142;-1:-1:-1;;;;;;29390:17:2;;;;;;:7;:17;;;;;;;;;:32;;29383:39;;;;;;;;;;;;;;;;;29355:16;;29383:39;;;29390:32;29383:39;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29383:39:2;;;;;;;;;;;;;;;;;;;;;;29287:142;;;:::o;23723:122::-;-1:-1:-1;;;;;;23811:17:2;23785:7;23811:17;;;:7;:17;;;;;:27;;;;23723:122::o;2262:115:1:-;2323:4;2346:24;2323:4;2362:7;2346:24;:15;:24;:::i;:::-;2339:31;2262:115;-1:-1:-1;;2262:115:1:o;17879:114:2:-;-1:-1:-1;;;;;;17964:13:2;17937:8;17964:13;;;:5;:13;;;;;:22;-1:-1:-1;;;17964:22:2;;;;;17879:114::o;9121:291::-;9182:10;9174:19;;;;:7;:19;;;;;:25;;;;;9169:31;;;;;;;;:36;;9161:63;;;;;-1:-1:-1;;;;;9161:63:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;9325:10;9317:19;;;;9345;9317;;;;;;;;:25;;:47;;-1:-1:-1;;9317:47:2;;9345:19;9317:47;;;;-1:-1:-1;9380:25:2;;;9394:10;9380:25;;;;;;;;;;;;;9121:291::o;14362:129::-;-1:-1:-1;;;;;;14459:17:2;;;;;;:7;:17;;;;;;;;;:25;;;;14452:32;;;;;;;;;;-1:-1:-1;;14452:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;14427:13;;14452:32;;14459:25;;14452:32;;;14459:25;14452:32;;;;;;;;;;;;;;;;;;;;;;;;27819:1266;-1:-1:-1;;;;;;27922:17:2;;27895:7;27922:17;;;:7;:17;;;;;:23;;;;-1:-1:-1;;;;;27922:23:2;:37;;27914:64;;;;;-1:-1:-1;;;;;27914:64:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;27914:64:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;;28002:17:2;;;;;;:7;:17;;;;;;;;28027:10;28002:36;;:24;;:36;;;;;:46;;;27996:53;;;;;;;;:58;;;27988:91;;;;;-1:-1:-1;;;;;27988:91:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;28123:16;28103:9;28097:16;;;;;;;;:43;;;:104;;;-1:-1:-1;28182:18:2;28162:9;28156:16;;;;;;;;:45;;;28097:104;:153;;;-1:-1:-1;28231:18:2;28211:9;28205:16;;;;;;;;:45;;;28097:153;28089:162;;;;;;;;28262:16;28318:18;28298:9;28292:16;;;;;;;;:45;;;28288:291;;;-1:-1:-1;;;;;;;28364:17:2;;;;;;:7;:17;;;;;:34;;;28288:291;;;28445:18;28425:9;28419:16;;;;;;;;:45;;;28415:164;;;-1:-1:-1;;;;;;;28491:17:2;;;;;;:7;:17;;;;;:34;;;28415:164;;;-1:-1:-1;28567:1:2;28415:164;28616:5;;28647:56;;;;;;28667:10;28647:56;;;;28687:4;28647:56;;;;;;;;;;;;28616:5;;;;-1:-1:-1;;;;;28616:5:2;;-1:-1:-1;;28616:5:2;;28647:19;;:56;;;;;;;;;;;;;;;-1:-1:-1;28616:5:2;28647:56;;;5:2:-1;;;;30:1;27;20:12;5:2;28647:56:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28647:56:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28647:56:2;;-1:-1:-1;28713:52:2;;;;;;;;-1:-1:-1;;;;;28713:52:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28815:26;;;;;;;;;28821:9;28815:26;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;28776:17:2;;-1:-1:-1;28776:17:2;;;:7;:17;;;;;;28801:10;28776:36;;:24;;:36;;;;:65;;;;:36;;-1:-1:-1;;28776:65:2;;;;;;;;;;;;;;;-1:-1:-1;28776:65:2;;;;;;;;;;-1:-1:-1;;;;;;28851:17:2;;;;;;:7;:17;;;;;;:32;;27:10:-1;;23:18;;;45:23;;28851:49:2;;;;;;;;;;;-1:-1:-1;;28851:49:2;28889:10;28851:49;;;;;;28998:54;;;;;28851:17;;28998:54;;28889:10;29032:9;;29043:8;;28998:54;;;29032:9;28998:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29070:8:2;;27819:1266;-1:-1:-1;;;;27819:1266:2:o;6892:20::-;;;;;;-1:-1:-1;;;;;6892:20:2;;:::o;2915:139:1:-;2979:27;:11;2998:7;2979:27;:18;:27;:::i;:::-;3021:26;;-1:-1:-1;;;;;3021:26:1;;;;;;;;2915:139;:::o;2778:131::-;2839:24;:11;2855:7;2839:24;:15;:24;:::i;:::-;2878;;-1:-1:-1;;;;;2878:24:1;;;;;;;;2778:131;:::o;786:162:6:-;858:4;-1:-1:-1;;;;;882:21:6;;;;874:30;;;;;;-1:-1:-1;;;;;;921:20:6;:11;:20;;;;;;;;;;;;;;;786:162::o;514:184::-;-1:-1:-1;;;;;593:21:6;;;;585:30;;;;;;633:18;637:4;643:7;633:3;:18::i;:::-;625:27;;;;;;;;-1:-1:-1;;;;;663:20:6;686:5;663:20;;;;;;;;;;;:28;;-1:-1:-1;;663:28:6;;;514:184::o;259:181::-;-1:-1:-1;;;;;335:21:6;;;;327:30;;;;;;376:18;380:4;386:7;376:3;:18::i;:::-;375:19;367:28;;;;;;-1:-1:-1;;;;;406:20:6;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;406:27:6;429:4;406:27;;;259:181::o;1116:32760:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:32760:2;;;-1:-1:-1;1116:32760:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:32760:2;;;;;-1:-1:-1;;;1116:32760:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1116:32760:2;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1116:32760:2;;;-1:-1:-1;1116:32760:2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1116:32760:2;-1:-1:-1;;;;;1116:32760:2;;;;;;;;;;;-1:-1:-1;1116:32760:2;;;;;;;-1:-1:-1;1116:32760:2;;;-1:-1:-1;1116:32760:2;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;1116:32760:2;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1116:32760:2;;;;;;", "source": "///////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (C) 2018 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.2;\n\n// https://openzeppelin.org/api/docs/math_SafeMath.html\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"./XBRToken.sol\";\nimport \"./XBRMaintained.sol\";\nimport \"./XBRPaymentChannel.sol\";\n\n\n/**\n * @title XBR Network main smart contract.\n * @author The XBR Project\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 // //////// enums\n\n /// XBR Network membership levels\n enum MemberLevel { NULL, ACTIVE, VERIFIED, RETIRED, PENALTY, BLOCKED }\n\n /// XBR Market Actor types\n enum ActorType { NULL, NETWORK, MARKET, PROVIDER, CONSUMER }\n\n /// XBR Domain status values\n enum DomainStatus { NULL, ACTIVE, CLOSED }\n\n /// XBR Carrier Node types\n enum NodeType { NULL, MASTER, CORE, EDGE }\n\n // //////// container types\n\n /// Container type for holding XBR Network membership information.\n struct Member {\n string eula;\n string profile;\n MemberLevel level;\n }\n\n /// Container type for holding XBR Domain information.\n struct Domain {\n /// Domain sequence.\n uint32 domainSeq;\n\n /// Domain status\n DomainStatus status;\n\n /// Domain owner.\n address owner;\n\n /// Domain signing key (Ed25519 public key).\n bytes32 domainKey;\n\n /// Software stack license file on IPFS (required).\n string license;\n\n /// Optional domain terms on IPFS.\n string terms;\n\n /// Optional domain metadata on IPFS.\n string meta;\n\n /// Nodes within the domain.\n bytes16[] nodes;\n }\n\n /// Container type for holding XBR Domain Nodes information.\n struct Node {\n bytes16 domain;\n\n /// Type of node.\n NodeType nodeType;\n\n /// Node key (Ed25519 public key).\n bytes32 key;\n\n /// Optional (encrypted) node configuration on IPFS.\n string config;\n }\n\n /// Container type for holding XBR Market information.\n struct Market {\n uint32 marketSeq;\n address owner;\n string terms;\n string meta;\n address maker;\n uint256 providerSecurity;\n uint256 consumerSecurity;\n uint256 marketFee;\n address[] channels;\n address[] actorAddresses;\n mapping(address => Actor) actors;\n }\n\n /// Container type for holding XBR Market Actors information.\n struct Actor {\n ActorType actorType;\n uint256 security;\n }\n\n /// Container type for holding paying channel request information. FIXME: make this event-based (to save gas).\n struct PayingChannelRequest {\n bytes16 marketId;\n address sender;\n address delegate;\n address recipient;\n uint256 amount;\n uint32 timeout;\n }\n\n // //////// events for MEMBERS\n\n /// Event emitted when a new member joined the XBR Network.\n event MemberCreated (address indexed member, string eula, string profile, MemberLevel level);\n\n /// Event emitted when a member leaves the XBR Network.\n event MemberRetired (address member);\n\n // //////// events for DOMAINS\n\n /// Event emitted when a new domain was created.\n event DomainCreated (bytes16 indexed domainId, uint32 domainSeq, DomainStatus status, address owner,\n bytes32 domainKey, string license, string terms, string meta);\n\n /// Event emitted when a domain was updated.\n event DomainUpdated (bytes16 indexed domainId, uint32 domainSeq, DomainStatus status, address owner,\n bytes32 domainKey, string license, string terms, string meta);\n\n /// Event emitted when a domain was closed.\n event DomainClosed (bytes16 indexed domainId, DomainStatus status);\n\n /// Event emitted when a new node was paired with the domain.\n event NodePaired (bytes16 indexed domainId, bytes16 nodeId, bytes32 nodeKey, string config);\n\n /// Event emitted when a node was updated.\n event NodeUpdated (bytes16 indexed domainId, bytes16 nodeId, bytes32 nodeKey, string config);\n\n /// Event emitted when a node was released from a domain.\n event NodeReleased (bytes16 indexed domainId, bytes16 nodeId);\n\n // //////// events for MARKETS\n\n /// Event emitted when a new market was created.\n event MarketCreated (bytes16 indexed marketId, uint32 marketSeq, address owner, string terms, string meta,\n address maker, uint256 providerSecurity, uint256 consumerSecurity, uint256 marketFee);\n\n /// Event emitted when a market was updated.\n event MarketUpdated (bytes16 indexed marketId, uint32 marketSeq, address owner, string terms, string meta,\n address maker, uint256 providerSecurity, uint256 consumerSecurity, uint256 marketFee);\n\n /// Event emitted when a market was closed.\n event MarketClosed (bytes16 indexed marketId);\n\n /// Event emitted when a new actor joined a market.\n event ActorJoined (bytes16 indexed marketId, address actor, ActorType actorType, uint256 security);\n\n /// Event emitted when an actor has left a market.\n event ActorLeft (bytes16 indexed marketId, address actor);\n\n /// Event emitted when a new payment channel was created in a market.\n event PaymentChannelCreated (bytes16 indexed marketId, address sender, address delegate,\n address receiver, address channel);\n\n /// Event emitted when a new request for a paying channel was created in a market.\n event PayingChannelRequestCreated (bytes16 indexed marketId, address sender, address delegate,\n address receiver, uint256 amount, uint32 timeout);\n\n // Note: closing event of payment channels are emitted from XBRPaymentChannel (not from here)\n\n // Created markets are sequence numbered using this counter (to allow deterministic collison-free IDs for markets)\n uint32 private marketSeq = 1;\n\n // Created domains are sequence numbered using this counter (to allow deterministic collison-free IDs for domains)\n uint32 private domainSeq = 1;\n\n /// Address of the XBR Network ERC20 token (XBR for the CrossbarFX technology stack)\n address 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 => Member) private members;\n\n /// Current XBR Domains (\"domain directory\")\n mapping(bytes16 => Domain) private domains;\n\n /// Current XBR Nodes (\"node directory\");\n mapping(bytes16 => Node) private nodes;\n\n /// Index: node public key => (market ID, node ID)\n mapping(bytes32 => bytes16) private nodesByKey;\n\n /// Current XBR Markets (\"market directory\")\n mapping(bytes16 => Market) private markets;\n\n /// Index: maker address => market ID\n mapping(address => bytes16) private marketsByMaker;\n\n /**\n * Create a new network.\n *\n * @param token_ The token to run this network on.\n * @param organization_ The network technology provider and ecosystem sponsor.\n */\n constructor (address token_, address organization_) public {\n token = token_;\n organization = organization_;\n\n members[msg.sender] = Member(\"\", \"\", MemberLevel.VERIFIED);\n }\n\n /**\n * Join the XBR Network. All XBR stakeholders, namely XBR Data Providers,\n * XBR Data Consumers, XBR Data Markets and XBR Data Clouds, must register\n * with the XBR Network on the global blockchain by calling this function.\n *\n * @param eula The IPFS Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS.\n * Currently, this must be equal to \"QmU7Gizbre17x6V2VR1Q2GJEjz6m8S1bXmBtVxS2vmvb81\"\n * @param profile Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.\n */\n function register (string memory eula, string memory profile) public {\n require(uint(members[msg.sender].level) == 0, \"MEMBER_ALREADY_REGISTERED\");\n require(keccak256(abi.encode(eula)) ==\n keccak256(abi.encode(\"QmU7Gizbre17x6V2VR1Q2GJEjz6m8S1bXmBtVxS2vmvb81\")), \"INVALID_EULA\");\n\n members[msg.sender] = Member(eula, profile, MemberLevel.ACTIVE);\n\n emit MemberCreated(msg.sender, eula, profile, MemberLevel.ACTIVE);\n }\n\n /**\n * Leave the XBR Network.\n */\n function unregister () public {\n require(uint(members[msg.sender].level) != 0, \"NO_SUCH_MEMBER\");\n\n // FIXME: check that the member has no active objects associated anymore\n\n members[msg.sender].level = MemberLevel.RETIRED;\n\n emit MemberRetired(msg.sender);\n }\n\n /**\n * Returns XBR Network member level given an address.\n *\n * @param member The address to lookup the XBR Network member level for.\n * @return The current member level of the member.\n */\n function getMemberLevel (address member) public view returns (MemberLevel) {\n return members[member].level;\n }\n\n /**\n * Returns XBR Network member EULA given an address.\n *\n * @param member The address to lookup the XBR Network member EULA for.\n * @return IPFS Multihash pointing to XBR Network EULA file on IPFS.\n */\n function getMemberEula (address member) public view returns (string memory) {\n return members[member].eula;\n }\n\n /**\n * Returns XBR Network member profile given an address.\n *\n * @param member The address to lookup the XBR Network member profile for.\n * @return IPFS Multihash pointing to member profile file on IPFS.\n */\n function getMemberProfile (address member) public view returns (string memory) {\n return members[member].profile;\n }\n\n /**\n * Manually override 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 */\n function setMemberLevel (address member, MemberLevel level) public onlyMaintainer {\n require(uint(members[msg.sender].level) != 0, \"NO_SUCH_MEMBER\");\n\n members[member].level = level;\n }\n\n /**\n * Create a new XBR domain. Then sender to the transaction must be XBR network member\n * and automatically becomes owner of the new domain.\n *\n * @param domainId The ID of the domain to create. Must be globally unique (not yet existing).\n * @param domainKey The domain signing key. A Ed25519 (https://ed25519.cr.yp.to/) public key.\n * @param license The license for the software stack running the domain. IPFS Multihash\n * pointing to a JSON/YAML file signed by the project release key.\n */\n function createDomain (bytes16 domainId, bytes32 domainKey, string memory license,\n string memory terms, string memory meta) public {\n\n require(members[msg.sender].level == MemberLevel.ACTIVE ||\n members[msg.sender].level == MemberLevel.VERIFIED, \"NOT_A_MEMBER\");\n\n require(domains[domainId].owner == address(0), \"DOMAIN_ALREADY_EXISTS\");\n\n domains[domainId] = Domain(domainSeq, DomainStatus.ACTIVE, msg.sender, domainKey,\n license, terms, meta, new bytes16[](0));\n\n emit DomainCreated(domainId, domainSeq, DomainStatus.ACTIVE, msg.sender, domainKey,\n license, terms, meta);\n\n domainSeq = domainSeq + 1;\n }\n\n /**\n * Close an existing XBR domain. The sender must be owner of the domain, and the domain\n * must not have any nodes paired (anymore).\n *\n * @param domainId The ID of the domain to close.\n */\n function closeDomain (bytes16 domainId) public {\n require(members[msg.sender].level == MemberLevel.ACTIVE ||\n members[msg.sender].level == MemberLevel.VERIFIED, \"NOT_A_MEMBER\");\n require(domains[domainId].owner != address(0), \"NO_SUCH_DOMAIN\");\n require(domains[domainId].owner == msg.sender, \"NOT_AUTHORIZED\");\n require(domains[domainId].status == DomainStatus.ACTIVE, \"DOMAIN_NOT_ACTIVE\");\n\n // FIXME: check that the domain has no active objects associated anymore\n\n domains[domainId].status = DomainStatus.CLOSED;\n\n emit DomainClosed(domainId, DomainStatus.CLOSED);\n }\n\n /**\n * Returns domain status.\n *\n * @param domainId The ID of the domain to lookup status.\n * @return The current status of the domain.\n */\n function getDomainStatus(bytes16 domainId) public view returns (DomainStatus) {\n return domains[domainId].status;\n }\n\n /**\n * Returns domain owner.\n *\n * @param domainId The ID of the domain to lookup owner.\n * @return The address of the owner of the domain.\n */\n function getDomainOwner(bytes16 domainId) public view returns (address) {\n return domains[domainId].owner;\n }\n\n /**\n * Returns domain (signing) key.\n *\n * @param domainId The ID of the domain to lookup key.\n * @return The Ed25519 public signing key for the domain.\n */\n function getDomainKey(bytes16 domainId) public view returns (bytes32) {\n return domains[domainId].domainKey;\n }\n\n /**\n * Returns domain license.\n *\n * @param domainId The ID of the domain to lookup license.\n * @return IPFS Multihash pointer to domain license file on IPFS.\n */\n function getDomainLicense(bytes16 domainId) public view returns (string memory) {\n return domains[domainId].license;\n }\n\n /**\n * Returns domain terms.\n *\n * @param domainId The ID of the domain to lookup terms.\n * @return IPFS Multihash pointer to domain terms on IPFS.\n */\n function getDomainTerms(bytes16 domainId) public view returns (string memory) {\n return domains[domainId].terms;\n }\n\n /**\n * Returns domain meta data.\n *\n * @param domainId The ID of the domain to lookup meta data.\n * @return IPFS Multihash pointer to domain metadata file on IPFS.\n */\n function getDomainMeta(bytes16 domainId) public view returns (string memory) {\n return domains[domainId].meta;\n }\n\n /**\n * Pair a node with an existing XBR Domain. The sender must be owner of the domain.\n *\n * @param nodeId The ID of the node to pair. Must be globally unique (not yet existing).\n * @param domainId The ID of the domain to pair the node with.\n * @param nodeType The type of node to pair the node under.\n * @param nodeKey The Ed25519 public node key.\n * @param config Optional IPFS Multihash pointing to node configuration stored on IPFS\n */\n function pairNode (bytes16 nodeId, bytes16 domainId, NodeType nodeType, bytes32 nodeKey,\n string memory config) public {\n\n require(domains[domainId].owner != address(0), \"NO_SUCH_DOMAIN\");\n require(domains[domainId].owner == msg.sender, \"NOT_AUTHORIZED\");\n require(uint8(nodes[nodeId].nodeType) == 0, \"NODE_ALREADY_PAIRED\");\n require(nodesByKey[nodeKey] == bytes16(0), \"DUPLICATE_NODE_KEY\");\n require(uint8(nodeType) == uint8(NodeType.MASTER) ||\n uint8(nodeType) == uint8(NodeType.EDGE), \"INVALID_NODE_TYPE\");\n\n nodes[nodeId] = Node(domainId, nodeType, nodeKey, config);\n nodesByKey[nodeKey] = nodeId;\n domains[domainId].nodes.push(nodeId);\n\n emit NodePaired(domainId, nodeId, nodeKey, config);\n }\n\n /**\n * Release a node currently paired with an XBR domain. The sender must be owner of the domain.\n *\n * @param nodeId The ID of the node to release.\n */\n function releaseNode (bytes16 nodeId) public {\n require(uint8(nodes[nodeId].nodeType) != 0, \"NO_SUCH_NODE\");\n require(domains[nodes[nodeId].domain].owner == msg.sender, \"NOT_AUTHORIZED\");\n\n bytes16 domainId = nodes[nodeId].domain;\n bytes32 nodeKey = nodes[nodeId].key;\n\n nodes[nodeId].domain = bytes16(0);\n nodes[nodeId].nodeType = NodeType.NULL;\n nodes[nodeId].key = bytes32(0);\n nodes[nodeId].config = \"\";\n\n nodesByKey[nodeKey] = bytes16(0);\n\n emit NodeReleased(domainId, nodeId);\n }\n\n /**\n * Lookup node ID by node public key.\n *\n * @param nodeKey The node public key to lookup\n * @return The Ed25519 public key of the node.\n */\n function getNodeByKey(bytes32 nodeKey) public view returns (bytes16) {\n return nodesByKey[nodeKey];\n }\n\n /**\n * Returns domain for a node.\n *\n * @param nodeId The ID of the node to lookup the domain for.\n * @return The domain the node is currently paired with.\n */\n function getNodeDomain(bytes16 nodeId) public view returns (bytes16) {\n return nodes[nodeId].domain;\n }\n\n /**\n * Returns node type for a node.\n *\n * @param nodeId The ID of the node to lookup the node type for.\n * @return The node type.\n */\n function getNodeType(bytes16 nodeId) public view returns (NodeType) {\n return nodes[nodeId].nodeType;\n }\n\n /**\n * Returns node public key for a node.\n *\n * @param nodeId The ID of the node to lookup the node public key for.\n * @return The node public key.\n */\n function getNodeKey(bytes16 nodeId) public view returns (bytes32) {\n return nodes[nodeId].key;\n }\n\n /**\n * Returns config for a node.\n *\n * @param nodeId The ID of the node to lookup the config for.\n * @return IPFS Multihash pointer to node config.\n */\n function getNodeConfig(bytes16 nodeId) public view returns (string memory) {\n return nodes[nodeId].config;\n }\n\n /**\n * Create a new XBR market. The sender of the transaction must be XBR network member\n * and automatically becomes owner of the new market.\n *\n * @param marketId The ID of the market to create. Must be unique (not yet existing).\n * @param terms The XBR market terms set by the market owner. IPFS Multihash pointing\n * to a ZIP archive file with market documents.\n * @param meta The XBR market metadata published by the market owner. IPFS Multihash pointing\n * to a RDF/Turtle file with market metadata.\n * @param maker The address of the XBR market maker that will run this market. The delegate of the market owner.\n * @param providerSecurity The amount of XBR tokens a XBR provider joining the market must deposit.\n * @param consumerSecurity The amount of XBR tokens a XBR consumer joining the market must deposit.\n * @param marketFee The fee taken by the market (beneficiary is the market owner). The fee is a percentage of\n * the revenue of the XBR Provider that receives XBR Token paid for transactions.\n * The fee must be between 0% (inclusive) and 99% (inclusive), and is expressed as\n * a fraction of the total supply of XBR tokens.\n */\n function createMarket (bytes16 marketId, string memory terms, string memory meta, address maker,\n uint256 providerSecurity, uint256 consumerSecurity, uint256 marketFee) public {\n\n XBRToken _token = XBRToken(token);\n\n require(markets[marketId].owner == address(0), \"MARKET_ALREADY_EXISTS\");\n require(maker != address(0), \"INVALID_MAKER\");\n require(marketsByMaker[maker] == bytes16(0), \"MAKER_ALREADY_WORKING_FOR_OTHER_MARKET\");\n require(providerSecurity >= 0 && providerSecurity <= _token.totalSupply(), \"INVALID_PROVIDER_SECURITY\");\n require(consumerSecurity >= 0 && consumerSecurity <= _token.totalSupply(), \"INVALID_CONSUMER_SECURITY\");\n require(marketFee >= 0 && marketFee < (_token.totalSupply() - 10**7) * 10**18, \"INVALID_MARKET_FEE\");\n\n markets[marketId] = Market(marketSeq, msg.sender, terms, meta, maker, providerSecurity,\n consumerSecurity, marketFee, new address[](0), new address[](0));\n\n markets[marketId].actors[msg.sender] = Actor(ActorType.MARKET, 0);\n markets[marketId].actorAddresses.push(maker);\n\n marketsByMaker[maker] = marketId;\n\n marketSeq = marketSeq + 1;\n\n emit MarketCreated(marketId, marketSeq, msg.sender, terms, meta, maker,\n providerSecurity, consumerSecurity, marketFee);\n }\n\n /**\n * Lookup market ID by market maker address.\n *\n * @param maker The market maker address to lookup market for\n * @return ID of the market maker.\n */\n function getMarketByMaker (address maker) public view returns (bytes16) {\n return marketsByMaker[maker];\n }\n\n /**\n * Returns owner for a market.\n *\n * @param marketId The ID of the market to lookup owner for.\n * @return Address of the owner of the market.\n */\n function getMarketOwner (bytes16 marketId) public view returns (address) {\n return markets[marketId].owner;\n }\n\n /**\n * Returns terms for a market.\n *\n * @param marketId The ID of the market to lookup terms for.\n * @return IPFS Multihash pointer to market terms.\n */\n function getMarketTerms (bytes16 marketId) public view returns (string memory) {\n return markets[marketId].terms;\n }\n\n /**\n * Returns metadata for a market.\n *\n * @param marketId The ID of the market to lookup metadata for.\n * @return IPFS Multihash pointer to market metadata.\n */\n function getMarketMeta (bytes16 marketId) public view returns (string memory) {\n return markets[marketId].meta;\n }\n\n /**\n * Returns market maker for a market.\n *\n * @param marketId The ID of the market to lookup the market maker address for.\n * @return The address of the (offchain) market maker delegate responsible for this market.\n */\n function getMarketMaker (bytes16 marketId) public view returns (address) {\n return markets[marketId].maker;\n }\n\n /**\n * Returns provider security for a market.\n *\n * @param marketId The ID of the market to lookup provider security for.\n * @return The provider security defined in the market.\n */\n function getMarketProviderSecurity (bytes16 marketId) public view returns (uint256) {\n return markets[marketId].providerSecurity;\n }\n\n /**\n * Returns consumer security for a market.\n *\n * @param marketId The ID of the market to lookup consumer security for.\n * @return The consumer security defined in the market.\n */\n function getMarketConsumerSecurity (bytes16 marketId) public view returns (uint256) {\n return markets[marketId].consumerSecurity;\n }\n\n /**\n * Returns market fee for a market.\n *\n * @param marketId The ID of the market to lookup market fee for.\n * @return The fee defined in the market.\n */\n function getMarketFee (bytes16 marketId) public view returns (uint256) {\n return markets[marketId].marketFee;\n }\n\n /**\n * Update market information, like market terms, metadata or maker address.\n *\n * @param marketId The ID of the market to update.\n * @param terms When terms should be updated, provide a string of non-zero length with\n * an IPFS Multihash pointing to the new ZIP file with market terms.\n * @param meta When metadata should be updated, provide a string of non-zero length with\n * an IPFS Multihash pointing to the new RDF/Turtle file with market metadata.\n * @param maker When maker should be updated, provide a non-zero address.\n * @param providerSecurity Provider security to set that will apply for new members (providers) joining\n * the market. It will NOT apply to current market members.\n * @param consumerSecurity Consumer security to set that will apply for new members (consumers) joining\n * the market. It will NOT apply to current market members.\n * @param marketFee New market fee to set. The new market fee will apply to all new payment channels\n * opened. It will NOT apply to already opened (or closed) payment channels.\n * @return Flag indicating weather the market information was actually updated or left unchanged.\n */\n function updateMarket(bytes16 marketId, string memory terms, string memory meta, address maker,\n uint256 providerSecurity, uint256 consumerSecurity, uint256 marketFee) public returns (bool) {\n\n Market storage market = markets[marketId];\n\n require(market.owner != address(0), \"NO_SUCH_MARKET\");\n require(market.owner == msg.sender, \"NOT_AUTHORIZED\");\n require(marketsByMaker[maker] == bytes16(0), \"MAKER_ALREADY_WORKING_FOR_OTHER_MARKET\");\n require(marketFee >= 0 && marketFee < (10**9 - 10**7) * 10**18, \"INVALID_MARKET_FEE\");\n\n bool wasChanged = false;\n\n // for these knobs, only update when non-zero values provided\n if (maker != address(0) && maker != market.maker) {\n markets[marketId].maker = maker;\n wasChanged = true;\n }\n if (bytes(terms).length > 0 && keccak256(abi.encode(terms)) != keccak256(abi.encode(market.terms))) {\n markets[marketId].terms = terms;\n wasChanged = true;\n }\n if (bytes(meta).length > 0 && keccak256(abi.encode(meta)) != keccak256(abi.encode(market.meta))) {\n markets[marketId].meta = meta;\n wasChanged = true;\n }\n\n // for these knobs, we allow updating to zero value\n if (providerSecurity != market.providerSecurity) {\n markets[marketId].providerSecurity = providerSecurity;\n wasChanged = true;\n }\n if (consumerSecurity != market.consumerSecurity) {\n markets[marketId].consumerSecurity = consumerSecurity;\n wasChanged = true;\n }\n if (marketFee != market.marketFee) {\n markets[marketId].marketFee = marketFee;\n wasChanged = true;\n }\n\n if (wasChanged) {\n emit MarketUpdated(marketId, market.marketSeq, market.owner, market.terms, market.meta, market.maker,\n market.providerSecurity, market.consumerSecurity, market.marketFee);\n }\n\n return wasChanged;\n }\n\n /**\n * Close a market. A closed market will not accept new memberships.\n *\n * @param marketId The ID of the market to close.\n */\n function closeMarket (bytes16 marketId) public view {\n require(markets[marketId].owner != address(0), \"NO_SUCH_MARKET\");\n require(markets[marketId].owner == msg.sender, \"NOT_AUTHORIZED\");\n // FIXME\n }\n\n /**\n * Join the given XBR market as the specified type of actor, which must be PROVIDER or CONSUMER.\n *\n * @param marketId The ID of the XBR data market to join.\n * @param actorType The type of actor under which to join: PROVIDER or CONSUMER.\n */\n function joinMarket (bytes16 marketId, ActorType actorType) public returns (uint256) {\n require(markets[marketId].owner != address(0), \"NO_SUCH_MARKET\");\n require(uint8(markets[marketId].actors[msg.sender].actorType) == 0, \"ACTOR_ALREADY_JOINED\");\n require(uint8(actorType) == uint8(ActorType.MARKET) ||\n uint8(actorType) == uint8(ActorType.PROVIDER) || uint8(actorType) == uint8(ActorType.CONSUMER));\n\n uint256 security;\n if (uint8(actorType) == uint8(ActorType.PROVIDER)) {\n security = markets[marketId].providerSecurity;\n } else if (uint8(actorType) == uint8(ActorType.CONSUMER)) {\n security = markets[marketId].consumerSecurity;\n } else {\n security = 0;\n }\n\n XBRToken _token = XBRToken(token);\n bool success = _token.transferFrom(msg.sender, address(this), security);\n require(success, \"JOIN_MARKET_TRANSFER_FROM_FAILED\");\n\n markets[marketId].actors[msg.sender] = Actor(actorType, security);\n markets[marketId].actorAddresses.push(msg.sender);\n\n // bytes16 marketId, address actor, ActorType actorType, uint256 security\n emit ActorJoined(marketId, msg.sender, actorType, security);\n\n return security;\n }\n\n /**\n * Returns all actors in a given market.\n *\n * @param marketId The ID of the market to lookup actors.\n * @return List of addresses of market actors in the market.\n */\n function getAllMarketActors (bytes16 marketId) public view returns (address[] memory) {\n return markets[marketId].actorAddresses;\n }\n\n /**\n * Returns the type of an actor within a market.\n *\n * @param marketId The ID of the market to lookup actor type.\n * @param actor The address of the actor to lookup.\n * @return The type under which the actor is joined in the market.\n */\n function getMarketActorType (bytes16 marketId, address actor) public view returns (ActorType) {\n return markets[marketId].actors[actor].actorType;\n }\n\n /**\n * Returns the current security deposit of an actor within a market.\n *\n * @param marketId The ID of the market to lookup actor type.\n * @param actor The address of the actor to lookup.\n * @return The security deposit of the actor in the given market.\n */\n function getMarketActorSecurity (bytes16 marketId, address actor) public view returns (uint256) {\n return markets[marketId].actors[actor].security;\n }\n\n /**\n * As a market actor (participant) currently member of a market, leave that market.\n * A market can only be left when all payment channels of the sender are closed (or expired).\n *\n * @param marketId The ID of the market to leave.\n */\n function leaveMarket (bytes16 marketId) public view {\n require(markets[marketId].owner != address(0), \"NO_SUCH_MARKET\");\n // FIXME\n }\n\n /**\n * Open a new payment channel and deposit an amount of XBR token into a market.\n *\n * @param marketId The ID of the market to open a payment channel within.\n * @param consumer The address of the (offchain) consumer delegate allowed to consumer the channel.\n * @param amount Amount of XBR Token to deposit into the payment channel.\n */\n function openPaymentChannel (bytes16 marketId, address consumer, uint256 amount) public returns\n (address paymentChannel) {\n\n require(markets[marketId].owner != address(0), \"NO_SUCH_MARKET\");\n\n // bytes16 marketId, address sender, address delegate, address recipient, uint256 amount, uint32 timeout\n XBRPaymentChannel channel = new XBRPaymentChannel(marketId, msg.sender, consumer, address(0), amount, 60);\n\n XBRToken _token = XBRToken(token);\n bool success = _token.transferFrom(msg.sender, address(channel), amount);\n require(success, \"OPEN_CHANNEL_TRANSFER_FROM_FAILED\");\n\n markets[marketId].channels.push(address(channel));\n\n // bytes16 marketId, address sender, address delegate, address receiver, address channel\n emit PaymentChannelCreated(marketId, msg.sender, consumer, markets[marketId].owner, address(channel));\n\n return address(channel);\n }\n\n /**\n * Lookup all payment channels for a XBR Market.\n *\n * @param marketId The XBR Market to get payment channels for.\n * @return List of contract addresses of payment channels in the market.\n */\n function getAllMarketPaymentChannels(bytes16 marketId) public view returns (address[] memory) {\n return markets[marketId].channels;\n }\n\n /**\n * As a data provider, request a new payment channel to get paid by the market maker. Given sufficient\n * security amount (deposited by the data provider when joining the marker) to cover the request amount,\n * the market maker will open a payment (state) channel to allow the market maker buying data keys in\n * microtransactions, and offchain. The creation of the payment channel is asynchronously: the market maker\n * is watching the global blockchain filtering for events relevant to the market managed by the maker.\n * When a request to open a payment channel is recognized by the market maker, it will check the provider\n * for sufficient security deposit covering the requested amount, and if all is fine, create a new payment\n * channel and store the contract address for the channel request ID, so the data provider can retrieve it.\n *\n * @param marketId The ID of the market to request a paying channel within.\n */\n function requestPayingChannel (bytes16 marketId, address provider, uint256 amount) public {\n\n require(markets[marketId].owner != address(0), \"NO_SUCH_MARKET\");\n require(markets[marketId].maker != address(0), \"NO_ACTIVE_MARKET_MAKER\");\n\n // bytes16 marketId, address sender, address delegate, address receiver, uint256 amount, uint32 timeout);\n emit PayingChannelRequestCreated(marketId, markets[marketId].maker, provider, msg.sender, amount, 10);\n }\n}\n", "sourcePath": "/home/oberstet/scm/xbr/xbr-protocol/contracts/XBRNetwork.sol", "ast": { "absolutePath": "/home/oberstet/scm/xbr/xbr-protocol/contracts/XBRNetwork.sol", "exportedSymbols": { "XBRNetwork": [ 2111 ] }, "id": 2112, "nodeType": "SourceUnit", "nodes": [ { "id": 161, "literals": [ "solidity", "^", "0.5", ".2" ], "nodeType": "PragmaDirective", "src": "805:23:2" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 162, "nodeType": "ImportDirective", "scope": 2112, "sourceUnit": 2765, "src": "886:59:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/oberstet/scm/xbr/xbr-protocol/contracts/XBRToken.sol", "file": "./XBRToken.sol", "id": 163, "nodeType": "ImportDirective", "scope": 2112, "sourceUnit": 2462, "src": "947:24:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/oberstet/scm/xbr/xbr-protocol/contracts/XBRMaintained.sol", "file": "./XBRMaintained.sol", "id": 164, "nodeType": "ImportDirective", "scope": 2112, "sourceUnit": 160, "src": "972:29:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/oberstet/scm/xbr/xbr-protocol/contracts/XBRPaymentChannel.sol", "file": "./XBRPaymentChannel.sol", "id": 165, "nodeType": "ImportDirective", "scope": 2112, "sourceUnit": 2429, "src": "1002:33:2", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 166, "name": "XBRMaintained", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 159, "src": "1139:13:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMaintained_$159", "typeString": "contract XBRMaintained" } }, "id": 167, "nodeType": "InheritanceSpecifier", "src": "1139:13:2" } ], "contractDependencies": [ 159, 2428 ], "contractKind": "contract", "documentation": "@title XBR Network main smart contract.\n@author The XBR Project", "fullyImplemented": true, "id": 2111, "linearizedBaseContracts": [ 2111, 159 ], "name": "XBRNetwork", "nodeType": "ContractDefinition", "nodes": [ { "id": 170, "libraryName": { "contractScope": null, "id": 168, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2764, "src": "1245:8:2", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$2764", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "1239:27:2", "typeName": { "id": 169, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1258:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "canonicalName": "XBRNetwork.MemberLevel", "id": 177, "members": [ { "id": 171, "name": "NULL", "nodeType": "EnumValue", "src": "1352:4:2" }, { "id": 172, "name": "ACTIVE", "nodeType": "EnumValue", "src": "1358:6:2" }, { "id": 173, "name": "VERIFIED", "nodeType": "EnumValue", "src": "1366:8:2" }, { "id": 174, "name": "RETIRED", "nodeType": "EnumValue", "src": "1376:7:2" }, { "id": 175, "name": "PENALTY", "nodeType": "EnumValue", "src": "1385:7:2" }, { "id": 176, "name": "BLOCKED", "nodeType": "EnumValue", "src": "1394:7:2" } ], "name": "MemberLevel", "nodeType": "EnumDefinition", "src": "1333:70:2" }, { "canonicalName": "XBRNetwork.ActorType", "id": 183, "members": [ { "id": 178, "name": "NULL", "nodeType": "EnumValue", "src": "1457:4:2" }, { "id": 179, "name": "NETWORK", "nodeType": "EnumValue", "src": "1463:7:2" }, { "id": 180, "name": "MARKET", "nodeType": "EnumValue", "src": "1472:6:2" }, { "id": 181, "name": "PROVIDER", "nodeType": "EnumValue", "src": "1480:8:2" }, { "id": 182, "name": "CONSUMER", "nodeType": "EnumValue", "src": "1490:8:2" } ], "name": "ActorType", "nodeType": "EnumDefinition", "src": "1440:60:2" }, { "canonicalName": "XBRNetwork.DomainStatus", "id": 187, "members": [ { "id": 184, "name": "NULL", "nodeType": "EnumValue", "src": "1559:4:2" }, { "id": 185, "name": "ACTIVE", "nodeType": "EnumValue", "src": "1565:6:2" }, { "id": 186, "name": "CLOSED", "nodeType": "EnumValue", "src": "1573:6:2" } ], "name": "DomainStatus", "nodeType": "EnumDefinition", "src": "1539:42:2" }, { "canonicalName": "XBRNetwork.NodeType", "id": 192, "members": [ { "id": 188, "name": "NULL", "nodeType": "EnumValue", "src": "1634:4:2" }, { "id": 189, "name": "MASTER", "nodeType": "EnumValue", "src": "1640:6:2" }, { "id": 190, "name": "CORE", "nodeType": "EnumValue", "src": "1648:4:2" }, { "id": 191, "name": "EDGE", "nodeType": "EnumValue", "src": "1654:4:2" } ], "name": "NodeType", "nodeType": "EnumDefinition", "src": "1618:42:2" }, { "canonicalName": "XBRNetwork.Member", "id": 199, "members": [ { "constant": false, "id": 194, "name": "eula", "nodeType": "VariableDeclaration", "scope": 199, "src": "1794:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 193, "name": "string", "nodeType": "ElementaryTypeName", "src": "1794:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 196, "name": "profile", "nodeType": "VariableDeclaration", "scope": 199, "src": "1815:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 195, "name": "string", "nodeType": "ElementaryTypeName", "src": "1815:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 198, "name": "level", "nodeType": "VariableDeclaration", "scope": 199, "src": "1839:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "typeName": { "contractScope": null, "id": 197, "name": "MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 177, "src": "1839:11:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "value": null, "visibility": "internal" } ], "name": "Member", "nodeType": "StructDefinition", "scope": 2111, "src": "1770:93:2", "visibility": "public" }, { "canonicalName": "XBRNetwork.Domain", "id": 217, "members": [ { "constant": false, "id": 201, "name": "domainSeq", "nodeType": "VariableDeclaration", "scope": 217, "src": "1981:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 200, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "1981:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 203, "name": "status", "nodeType": "VariableDeclaration", "scope": 217, "src": "2034:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, "typeName": { "contractScope": null, "id": 202, "name": "DomainStatus", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 187, "src": "2034:12:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 205, "name": "owner", "nodeType": "VariableDeclaration", "scope": 217, "src": "2090:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 204, "name": "address", "nodeType": "ElementaryTypeName", "src": "2090:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 207, "name": "domainKey", "nodeType": "VariableDeclaration", "scope": 217, "src": "2167:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 206, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2167:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 209, "name": "license", "nodeType": "VariableDeclaration", "scope": 217, "src": "2255:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 208, "name": "string", "nodeType": "ElementaryTypeName", "src": "2255:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 211, "name": "terms", "nodeType": "VariableDeclaration", "scope": 217, "src": "2323:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 210, "name": "string", "nodeType": "ElementaryTypeName", "src": "2323:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 213, "name": "meta", "nodeType": "VariableDeclaration", "scope": 217, "src": "2392:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 212, "name": "string", "nodeType": "ElementaryTypeName", "src": "2392:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 216, "name": "nodes", "nodeType": "VariableDeclaration", "scope": 217, "src": "2451:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage_ptr", "typeString": "bytes16[]" }, "typeName": { "baseType": { "id": 214, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2451:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 215, "length": null, "nodeType": "ArrayTypeName", "src": "2451:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage_ptr", "typeString": "bytes16[]" } }, "value": null, "visibility": "internal" } ], "name": "Domain", "nodeType": "StructDefinition", "scope": 2111, "src": "1928:545:2", "visibility": "public" }, { "canonicalName": "XBRNetwork.Node", "id": 226, "members": [ { "constant": false, "id": 219, "name": "domain", "nodeType": "VariableDeclaration", "scope": 226, "src": "2566:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 218, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2566:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 221, "name": "nodeType", "nodeType": "VariableDeclaration", "scope": 226, "src": "2617:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" }, "typeName": { "contractScope": null, "id": 220, "name": "NodeType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 192, "src": "2617:8:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 223, "name": "key", "nodeType": "VariableDeclaration", "scope": 226, "src": "2688:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 222, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2688:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 225, "name": "config", "nodeType": "VariableDeclaration", "scope": 226, "src": "2771:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 224, "name": "string", "nodeType": "ElementaryTypeName", "src": "2771:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "name": "Node", "nodeType": "StructDefinition", "scope": 2111, "src": "2544:247:2", "visibility": "public" }, { "canonicalName": "XBRNetwork.Market", "id": 253, "members": [ { "constant": false, "id": 228, "name": "marketSeq", "nodeType": "VariableDeclaration", "scope": 253, "src": "2880:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 227, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "2880:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 230, "name": "owner", "nodeType": "VariableDeclaration", "scope": 253, "src": "2906:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 229, "name": "address", "nodeType": "ElementaryTypeName", "src": "2906:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 232, "name": "terms", "nodeType": "VariableDeclaration", "scope": 253, "src": "2929:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 231, "name": "string", "nodeType": "ElementaryTypeName", "src": "2929:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 234, "name": "meta", "nodeType": "VariableDeclaration", "scope": 253, "src": "2951:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 233, "name": "string", "nodeType": "ElementaryTypeName", "src": "2951:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 236, "name": "maker", "nodeType": "VariableDeclaration", "scope": 253, "src": "2972:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 235, "name": "address", "nodeType": "ElementaryTypeName", "src": "2972:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 238, "name": "providerSecurity", "nodeType": "VariableDeclaration", "scope": 253, "src": "2995:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 237, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2995:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 240, "name": "consumerSecurity", "nodeType": "VariableDeclaration", "scope": 253, "src": "3029:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 239, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3029:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 242, "name": "marketFee", "nodeType": "VariableDeclaration", "scope": 253, "src": "3063:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 241, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3063:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 245, "name": "channels", "nodeType": "VariableDeclaration", "scope": 253, "src": "3090:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 243, "name": "address", "nodeType": "ElementaryTypeName", "src": "3090:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 244, "length": null, "nodeType": "ArrayTypeName", "src": "3090:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 248, "name": "actorAddresses", "nodeType": "VariableDeclaration", "scope": 253, "src": "3118:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 246, "name": "address", "nodeType": "ElementaryTypeName", "src": "3118:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 247, "length": null, "nodeType": "ArrayTypeName", "src": "3118:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 252, "name": "actors", "nodeType": "VariableDeclaration", "scope": 253, "src": "3152:32:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor)" }, "typeName": { "id": 251, "keyType": { "id": 249, "name": "address", "nodeType": "ElementaryTypeName", "src": "3160:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3152:25:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor)" }, "valueType": { "contractScope": null, "id": 250, "name": "Actor", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 258, "src": "3171:5:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage_ptr", "typeString": "struct XBRNetwork.Actor" } } }, "value": null, "visibility": "internal" } ], "name": "Market", "nodeType": "StructDefinition", "scope": 2111, "src": "2856:335:2", "visibility": "public" }, { "canonicalName": "XBRNetwork.Actor", "id": 258, "members": [ { "constant": false, "id": 255, "name": "actorType", "nodeType": "VariableDeclaration", "scope": 258, "src": "3286:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, "typeName": { "contractScope": null, "id": 254, "name": "ActorType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 183, "src": "3286:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 257, "name": "security", "nodeType": "VariableDeclaration", "scope": 258, "src": "3315:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 256, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3315:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "name": "Actor", "nodeType": "StructDefinition", "scope": 2111, "src": "3263:75:2", "visibility": "public" }, { "canonicalName": "XBRNetwork.PayingChannelRequest", "id": 271, "members": [ { "constant": false, "id": 260, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 271, "src": "3497:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 259, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "3497:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 262, "name": "sender", "nodeType": "VariableDeclaration", "scope": 271, "src": "3523:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 261, "name": "address", "nodeType": "ElementaryTypeName", "src": "3523:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 264, "name": "delegate", "nodeType": "VariableDeclaration", "scope": 271, "src": "3547:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 263, "name": "address", "nodeType": "ElementaryTypeName", "src": "3547:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 266, "name": "recipient", "nodeType": "VariableDeclaration", "scope": 271, "src": "3573:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 265, "name": "address", "nodeType": "ElementaryTypeName", "src": "3573:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 268, "name": "amount", "nodeType": "VariableDeclaration", "scope": 271, "src": "3600:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 267, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3600:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 270, "name": "timeout", "nodeType": "VariableDeclaration", "scope": 271, "src": "3624:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 269, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "3624:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" } ], "name": "PayingChannelRequest", "nodeType": "StructDefinition", "scope": 2111, "src": "3459:186:2", "visibility": "public" }, { "anonymous": false, "documentation": "Event emitted when a new member joined the XBR Network.", "id": 281, "name": "MemberCreated", "nodeType": "EventDefinition", "parameters": { "id": 280, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 273, "indexed": true, "name": "member", "nodeType": "VariableDeclaration", "scope": 281, "src": "3772:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 272, "name": "address", "nodeType": "ElementaryTypeName", "src": "3772:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 275, "indexed": false, "name": "eula", "nodeType": "VariableDeclaration", "scope": 281, "src": "3796:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 274, "name": "string", "nodeType": "ElementaryTypeName", "src": "3796:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 277, "indexed": false, "name": "profile", "nodeType": "VariableDeclaration", "scope": 281, "src": "3809:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 276, "name": "string", "nodeType": "ElementaryTypeName", "src": "3809:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 279, "indexed": false, "name": "level", "nodeType": "VariableDeclaration", "scope": 281, "src": "3825:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "typeName": { "contractScope": null, "id": 278, "name": "MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 177, "src": "3825:11:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "value": null, "visibility": "internal" } ], "src": "3771:72:2" }, "src": "3751:93:2" }, { "anonymous": false, "documentation": "Event emitted when a member leaves the XBR Network.", "id": 285, "name": "MemberRetired", "nodeType": "EventDefinition", "parameters": { "id": 284, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 283, "indexed": false, "name": "member", "nodeType": "VariableDeclaration", "scope": 285, "src": "3931:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 282, "name": "address", "nodeType": "ElementaryTypeName", "src": "3931:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3930:16:2" }, "src": "3910:37:2" }, { "anonymous": false, "documentation": "Event emitted when a new domain was created.", "id": 303, "name": "DomainCreated", "nodeType": "EventDefinition", "parameters": { "id": 302, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 287, "indexed": true, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 303, "src": "4063:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 286, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4063:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 289, "indexed": false, "name": "domainSeq", "nodeType": "VariableDeclaration", "scope": 303, "src": "4089:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 288, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "4089:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 291, "indexed": false, "name": "status", "nodeType": "VariableDeclaration", "scope": 303, "src": "4107:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, "typeName": { "contractScope": null, "id": 290, "name": "DomainStatus", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 187, "src": "4107:12:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 293, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", "scope": 303, "src": "4128:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 292, "name": "address", "nodeType": "ElementaryTypeName", "src": "4128:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 295, "indexed": false, "name": "domainKey", "nodeType": "VariableDeclaration", "scope": 303, "src": "4151:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 294, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4151:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 297, "indexed": false, "name": "license", "nodeType": "VariableDeclaration", "scope": 303, "src": "4170:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 296, "name": "string", "nodeType": "ElementaryTypeName", "src": "4170:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 299, "indexed": false, "name": "terms", "nodeType": "VariableDeclaration", "scope": 303, "src": "4186:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 298, "name": "string", "nodeType": "ElementaryTypeName", "src": "4186:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 301, "indexed": false, "name": "meta", "nodeType": "VariableDeclaration", "scope": 303, "src": "4200:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 300, "name": "string", "nodeType": "ElementaryTypeName", "src": "4200:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "4062:150:2" }, "src": "4042:171:2" }, { "anonymous": false, "documentation": "Event emitted when a domain was updated.", "id": 321, "name": "DomainUpdated", "nodeType": "EventDefinition", "parameters": { "id": 320, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 305, "indexed": true, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 321, "src": "4289:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 304, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4289:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 307, "indexed": false, "name": "domainSeq", "nodeType": "VariableDeclaration", "scope": 321, "src": "4315:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 306, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "4315:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 309, "indexed": false, "name": "status", "nodeType": "VariableDeclaration", "scope": 321, "src": "4333:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, "typeName": { "contractScope": null, "id": 308, "name": "DomainStatus", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 187, "src": "4333:12:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 311, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", "scope": 321, "src": "4354:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 310, "name": "address", "nodeType": "ElementaryTypeName", "src": "4354:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 313, "indexed": false, "name": "domainKey", "nodeType": "VariableDeclaration", "scope": 321, "src": "4377:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 312, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4377:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 315, "indexed": false, "name": "license", "nodeType": "VariableDeclaration", "scope": 321, "src": "4396:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 314, "name": "string", "nodeType": "ElementaryTypeName", "src": "4396:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 317, "indexed": false, "name": "terms", "nodeType": "VariableDeclaration", "scope": 321, "src": "4412:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 316, "name": "string", "nodeType": "ElementaryTypeName", "src": "4412:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 319, "indexed": false, "name": "meta", "nodeType": "VariableDeclaration", "scope": 321, "src": "4426:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 318, "name": "string", "nodeType": "ElementaryTypeName", "src": "4426:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "4288:150:2" }, "src": "4268:171:2" }, { "anonymous": false, "documentation": "Event emitted when a domain was closed.", "id": 327, "name": "DomainClosed", "nodeType": "EventDefinition", "parameters": { "id": 326, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 323, "indexed": true, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 327, "src": "4513:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 322, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4513:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 325, "indexed": false, "name": "status", "nodeType": "VariableDeclaration", "scope": 327, "src": "4539:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, "typeName": { "contractScope": null, "id": 324, "name": "DomainStatus", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 187, "src": "4539:12:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "value": null, "visibility": "internal" } ], "src": "4512:47:2" }, "src": "4493:67:2" }, { "anonymous": false, "documentation": "Event emitted when a new node was paired with the domain.", "id": 337, "name": "NodePaired", "nodeType": "EventDefinition", "parameters": { "id": 336, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 329, "indexed": true, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 337, "src": "4650:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 328, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4650:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 331, "indexed": false, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 337, "src": "4676:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 330, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4676:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 333, "indexed": false, "name": "nodeKey", "nodeType": "VariableDeclaration", "scope": 337, "src": "4692:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 332, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4692:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 335, "indexed": false, "name": "config", "nodeType": "VariableDeclaration", "scope": 337, "src": "4709:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 334, "name": "string", "nodeType": "ElementaryTypeName", "src": "4709:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "4649:74:2" }, "src": "4632:92:2" }, { "anonymous": false, "documentation": "Event emitted when a node was updated.", "id": 347, "name": "NodeUpdated", "nodeType": "EventDefinition", "parameters": { "id": 346, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 339, "indexed": true, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 347, "src": "4796:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 338, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4796:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 341, "indexed": false, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 347, "src": "4822:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 340, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4822:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 343, "indexed": false, "name": "nodeKey", "nodeType": "VariableDeclaration", "scope": 347, "src": "4838:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 342, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4838:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 345, "indexed": false, "name": "config", "nodeType": "VariableDeclaration", "scope": 347, "src": "4855:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 344, "name": "string", "nodeType": "ElementaryTypeName", "src": "4855:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "4795:74:2" }, "src": "4777:93:2" }, { "anonymous": false, "documentation": "Event emitted when a node was released from a domain.", "id": 353, "name": "NodeReleased", "nodeType": "EventDefinition", "parameters": { "id": 352, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 349, "indexed": true, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 353, "src": "4958:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 348, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4958:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 351, "indexed": false, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 353, "src": "4984:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 350, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4984:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "4957:42:2" }, "src": "4938:62:2" }, { "anonymous": false, "documentation": "Event emitted when a new market was created.", "id": 373, "name": "MarketCreated", "nodeType": "EventDefinition", "parameters": { "id": 372, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 355, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 373, "src": "5116:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 354, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5116:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 357, "indexed": false, "name": "marketSeq", "nodeType": "VariableDeclaration", "scope": 373, "src": "5142:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 356, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "5142:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 359, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", "scope": 373, "src": "5160:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 358, "name": "address", "nodeType": "ElementaryTypeName", "src": "5160:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 361, "indexed": false, "name": "terms", "nodeType": "VariableDeclaration", "scope": 373, "src": "5175:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 360, "name": "string", "nodeType": "ElementaryTypeName", "src": "5175:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 363, "indexed": false, "name": "meta", "nodeType": "VariableDeclaration", "scope": 373, "src": "5189:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 362, "name": "string", "nodeType": "ElementaryTypeName", "src": "5189:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 365, "indexed": false, "name": "maker", "nodeType": "VariableDeclaration", "scope": 373, "src": "5210:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 364, "name": "address", "nodeType": "ElementaryTypeName", "src": "5210:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 367, "indexed": false, "name": "providerSecurity", "nodeType": "VariableDeclaration", "scope": 373, "src": "5225:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 366, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5225:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 369, "indexed": false, "name": "consumerSecurity", "nodeType": "VariableDeclaration", "scope": 373, "src": "5251:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 368, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5251:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 371, "indexed": false, "name": "marketFee", "nodeType": "VariableDeclaration", "scope": 373, "src": "5277:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 370, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5277:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5115:180:2" }, "src": "5095:201:2" }, { "anonymous": false, "documentation": "Event emitted when a market was updated.", "id": 393, "name": "MarketUpdated", "nodeType": "EventDefinition", "parameters": { "id": 392, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 375, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 393, "src": "5372:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 374, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5372:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 377, "indexed": false, "name": "marketSeq", "nodeType": "VariableDeclaration", "scope": 393, "src": "5398:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 376, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "5398:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 379, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", "scope": 393, "src": "5416:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 378, "name": "address", "nodeType": "ElementaryTypeName", "src": "5416:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 381, "indexed": false, "name": "terms", "nodeType": "VariableDeclaration", "scope": 393, "src": "5431:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 380, "name": "string", "nodeType": "ElementaryTypeName", "src": "5431:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 383, "indexed": false, "name": "meta", "nodeType": "VariableDeclaration", "scope": 393, "src": "5445:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 382, "name": "string", "nodeType": "ElementaryTypeName", "src": "5445:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 385, "indexed": false, "name": "maker", "nodeType": "VariableDeclaration", "scope": 393, "src": "5466:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 384, "name": "address", "nodeType": "ElementaryTypeName", "src": "5466:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 387, "indexed": false, "name": "providerSecurity", "nodeType": "VariableDeclaration", "scope": 393, "src": "5481:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 386, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5481:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 389, "indexed": false, "name": "consumerSecurity", "nodeType": "VariableDeclaration", "scope": 393, "src": "5507:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 388, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5507:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 391, "indexed": false, "name": "marketFee", "nodeType": "VariableDeclaration", "scope": 393, "src": "5533:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 390, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5533:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5371:180:2" }, "src": "5351:201:2" }, { "anonymous": false, "documentation": "Event emitted when a market was closed.", "id": 397, "name": "MarketClosed", "nodeType": "EventDefinition", "parameters": { "id": 396, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 395, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 397, "src": "5626:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 394, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5626:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "5625:26:2" }, "src": "5606:46:2" }, { "anonymous": false, "documentation": "Event emitted when a new actor joined a market.", "id": 407, "name": "ActorJoined", "nodeType": "EventDefinition", "parameters": { "id": 406, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 399, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 407, "src": "5733:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 398, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5733:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 401, "indexed": false, "name": "actor", "nodeType": "VariableDeclaration", "scope": 407, "src": "5759:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 400, "name": "address", "nodeType": "ElementaryTypeName", "src": "5759:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 403, "indexed": false, "name": "actorType", "nodeType": "VariableDeclaration", "scope": 407, "src": "5774:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, "typeName": { "contractScope": null, "id": 402, "name": "ActorType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 183, "src": "5774:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 405, "indexed": false, "name": "security", "nodeType": "VariableDeclaration", "scope": 407, "src": "5795:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 404, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5795:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5732:80:2" }, "src": "5714:99:2" }, { "anonymous": false, "documentation": "Event emitted when an actor has left a market.", "id": 413, "name": "ActorLeft", "nodeType": "EventDefinition", "parameters": { "id": 412, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 409, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 413, "src": "5891:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 408, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5891:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 411, "indexed": false, "name": "actor", "nodeType": "VariableDeclaration", "scope": 413, "src": "5917:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 410, "name": "address", "nodeType": "ElementaryTypeName", "src": "5917:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "5890:41:2" }, "src": "5874:58:2" }, { "anonymous": false, "documentation": "Event emitted when a new payment channel was created in a market.", "id": 425, "name": "PaymentChannelCreated", "nodeType": "EventDefinition", "parameters": { "id": 424, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 415, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 425, "src": "6041:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 414, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "6041:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 417, "indexed": false, "name": "sender", "nodeType": "VariableDeclaration", "scope": 425, "src": "6067:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 416, "name": "address", "nodeType": "ElementaryTypeName", "src": "6067:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 419, "indexed": false, "name": "delegate", "nodeType": "VariableDeclaration", "scope": 425, "src": "6083:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 418, "name": "address", "nodeType": "ElementaryTypeName", "src": "6083:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 421, "indexed": false, "name": "receiver", "nodeType": "VariableDeclaration", "scope": 425, "src": "6109:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 420, "name": "address", "nodeType": "ElementaryTypeName", "src": "6109:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 423, "indexed": false, "name": "channel", "nodeType": "VariableDeclaration", "scope": 425, "src": "6127:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 422, "name": "address", "nodeType": "ElementaryTypeName", "src": "6127:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "6040:103:2" }, "src": "6012:132:2" }, { "anonymous": false, "documentation": "Event emitted when a new request for a paying channel was created in a market.", "id": 439, "name": "PayingChannelRequestCreated", "nodeType": "EventDefinition", "parameters": { "id": 438, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 427, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 439, "src": "6272:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 426, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "6272:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 429, "indexed": false, "name": "sender", "nodeType": "VariableDeclaration", "scope": 439, "src": "6298:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 428, "name": "address", "nodeType": "ElementaryTypeName", "src": "6298:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 431, "indexed": false, "name": "delegate", "nodeType": "VariableDeclaration", "scope": 439, "src": "6314:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 430, "name": "address", "nodeType": "ElementaryTypeName", "src": "6314:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 433, "indexed": false, "name": "receiver", "nodeType": "VariableDeclaration", "scope": 439, "src": "6340:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 432, "name": "address", "nodeType": "ElementaryTypeName", "src": "6340:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 435, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", "scope": 439, "src": "6358:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 434, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6358:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 437, "indexed": false, "name": "timeout", "nodeType": "VariableDeclaration", "scope": 439, "src": "6374:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 436, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "6374:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" } ], "src": "6271:118:2" }, "src": "6237:153:2" }, { "constant": false, "id": 442, "name": "marketSeq", "nodeType": "VariableDeclaration", "scope": 2111, "src": "6614:28:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 440, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "6614:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "argumentTypes": null, "hexValue": "31", "id": 441, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6641:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "visibility": "private" }, { "constant": false, "id": 445, "name": "domainSeq", "nodeType": "VariableDeclaration", "scope": 2111, "src": "6768:28:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 443, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "6768:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "argumentTypes": null, "hexValue": "31", "id": 444, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6795:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "visibility": "private" }, { "constant": false, "id": 447, "name": "token", "nodeType": "VariableDeclaration", "scope": 2111, "src": "6892:20:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 446, "name": "address", "nodeType": "ElementaryTypeName", "src": "6892:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 449, "name": "organization", "nodeType": "VariableDeclaration", "scope": 2111, "src": "6993:27:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 448, "name": "address", "nodeType": "ElementaryTypeName", "src": "6993:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 453, "name": "members", "nodeType": "VariableDeclaration", "scope": 2111, "src": "7085:42:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member)" }, "typeName": { "id": 452, "keyType": { "id": 450, "name": "address", "nodeType": "ElementaryTypeName", "src": "7093:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "7085:26:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member)" }, "valueType": { "contractScope": null, "id": 451, "name": "Member", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 199, "src": "7104:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage_ptr", "typeString": "struct XBRNetwork.Member" } } }, "value": null, "visibility": "private" }, { "constant": false, "id": 457, "name": "domains", "nodeType": "VariableDeclaration", "scope": 2111, "src": "7183:42:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain)" }, "typeName": { "id": 456, "keyType": { "id": 454, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7191:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Mapping", "src": "7183:26:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain)" }, "valueType": { "contractScope": null, "id": 455, "name": "Domain", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 217, "src": "7202:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage_ptr", "typeString": "struct XBRNetwork.Domain" } } }, "value": null, "visibility": "private" }, { "constant": false, "id": 461, "name": "nodes", "nodeType": "VariableDeclaration", "scope": 2111, "src": "7278:38:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node)" }, "typeName": { "id": 460, "keyType": { "id": 458, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7286:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Mapping", "src": "7278:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node)" }, "valueType": { "contractScope": null, "id": 459, "name": "Node", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 226, "src": "7297:4:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage_ptr", "typeString": "struct XBRNetwork.Node" } } }, "value": null, "visibility": "private" }, { "constant": false, "id": 465, "name": "nodesByKey", "nodeType": "VariableDeclaration", "scope": 2111, "src": "7378:46:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes16_$", "typeString": "mapping(bytes32 => bytes16)" }, "typeName": { "id": 464, "keyType": { "id": 462, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7386:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", "src": "7378:27:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes16_$", "typeString": "mapping(bytes32 => bytes16)" }, "valueType": { "id": 463, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7397:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } }, "value": null, "visibility": "private" }, { "constant": false, "id": 469, "name": "markets", "nodeType": "VariableDeclaration", "scope": 2111, "src": "7480:42:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market)" }, "typeName": { "id": 468, "keyType": { "id": 466, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7488:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Mapping", "src": "7480:26:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market)" }, "valueType": { "contractScope": null, "id": 467, "name": "Market", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 253, "src": "7499:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market" } } }, "value": null, "visibility": "private" }, { "constant": false, "id": 473, "name": "marketsByMaker", "nodeType": "VariableDeclaration", "scope": 2111, "src": "7571:50:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes16_$", "typeString": "mapping(address => bytes16)" }, "typeName": { "id": 472, "keyType": { "id": 470, "name": "address", "nodeType": "ElementaryTypeName", "src": "7579:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "7571:27:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes16_$", "typeString": "mapping(address => bytes16)" }, "valueType": { "id": 471, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7590:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } }, "value": null, "visibility": "private" }, { "body": { "id": 500, "nodeType": "Block", "src": "7877:138:2", "statements": [ { "expression": { "argumentTypes": null, "id": 482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 480, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 447, "src": "7887:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 481, "name": "token_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 475, "src": "7895:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7887:14:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 483, "nodeType": "ExpressionStatement", "src": "7887:14:2" }, { "expression": { "argumentTypes": null, "id": 486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 484, "name": "organization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 449, "src": "7911:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 485, "name": "organization_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 477, "src": "7926:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7911:28:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 487, "nodeType": "ExpressionStatement", "src": "7911:28:2" }, { "expression": { "argumentTypes": null, "id": 498, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 488, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "7950:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 491, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 489, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "7958:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7958:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7950:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "", "id": 493, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7979:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "hexValue": "", "id": 494, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7983:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 495, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "7987:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 496, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7987:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } ], "id": 492, "name": "Member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "7972:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Member_$199_storage_ptr_$", "typeString": "type(struct XBRNetwork.Member storage pointer)" } }, "id": 497, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7972:36:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_memory", "typeString": "struct XBRNetwork.Member memory" } }, "src": "7950:58:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 499, "nodeType": "ExpressionStatement", "src": "7950:58:2" } ] }, "documentation": "Create a new network.\n * @param token_ The token to run this network on.\n@param organization_ The network technology provider and ecosystem sponsor.", "id": 501, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 478, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 475, "name": "token_", "nodeType": "VariableDeclaration", "scope": 501, "src": "7831:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 474, "name": "address", "nodeType": "ElementaryTypeName", "src": "7831:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 477, "name": "organization_", "nodeType": "VariableDeclaration", "scope": 501, "src": "7847:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 476, "name": "address", "nodeType": "ElementaryTypeName", "src": "7847:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "7830:39:2" }, "returnParameters": { "id": 479, "nodeType": "ParameterList", "parameters": [], "src": "7877:0:2" }, "scope": 2111, "src": "7818:197:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 559, "nodeType": "Block", "src": "8675:394:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 510, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "8698:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 513, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 511, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "8706:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8706:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8698:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 514, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "8698:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } ], "id": 509, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8693:4:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 515, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8693:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 516, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8728:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8693:36:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4d454d4245525f414c52454144595f52454749535445524544", "id": 518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8731:27:2", "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": 508, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "8685:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 519, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8685:74:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 520, "nodeType": "ExpressionStatement", "src": "8685:74:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 525, "name": "eula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 503, "src": "8798:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 523, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3276, "src": "8787:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 524, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8787:10:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 526, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8787:16:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 522, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "8777:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 527, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8777:27:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "516d553747697a6272653137783656325652315132474a456a7a366d38533162586d427456785332766d76623831", "id": 531, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8845:48:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e5d0096375649ffe309269d7231c1b629281fa9e253bbfd117e74f530856a29f", "typeString": "literal_string \"QmU7Gizbre17x6V2VR1Q2GJEjz6m8S1bXmBtVxS2vmvb81\"" }, "value": "QmU7Gizbre17x6V2VR1Q2GJEjz6m8S1bXmBtVxS2vmvb81" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_e5d0096375649ffe309269d7231c1b629281fa9e253bbfd117e74f530856a29f", "typeString": "literal_string \"QmU7Gizbre17x6V2VR1Q2GJEjz6m8S1bXmBtVxS2vmvb81\"" } ], "expression": { "argumentTypes": null, "id": 529, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3276, "src": "8834:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 530, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8834:10:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 532, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8834:60:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 528, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "8824:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 533, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8824:71:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "8777:118:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f45554c41", "id": 535, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8897:14:2", "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": 521, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "8769:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 536, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8769:143:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 537, "nodeType": "ExpressionStatement", "src": "8769:143:2" }, { "expression": { "argumentTypes": null, "id": 548, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 538, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "8923:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 541, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 539, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "8931:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8931:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8923:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 543, "name": "eula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 503, "src": "8952:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 544, "name": "profile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 505, "src": "8958:7:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 545, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "8967:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 546, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8967:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } ], "id": 542, "name": "Member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "8945:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Member_$199_storage_ptr_$", "typeString": "type(struct XBRNetwork.Member storage pointer)" } }, "id": 547, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8945:41:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_memory", "typeString": "struct XBRNetwork.Member memory" } }, "src": "8923:63:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 549, "nodeType": "ExpressionStatement", "src": "8923:63:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 551, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "9016:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 552, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9016:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 553, "name": "eula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 503, "src": "9028:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 554, "name": "profile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 505, "src": "9034:7:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 555, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "9043:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 556, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9043:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } ], "id": 550, "name": "MemberCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 281, "src": "9002:13:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_enum$_MemberLevel_$177_$returns$__$", "typeString": "function (address,string memory,string memory,enum XBRNetwork.MemberLevel)" } }, "id": 557, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9002:60:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 558, "nodeType": "EmitStatement", "src": "8997:65:2" } ] }, "documentation": "Join the XBR Network. All XBR stakeholders, namely XBR Data Providers,\nXBR Data Consumers, XBR Data Markets and XBR Data Clouds, must register\nwith the XBR Network on the global blockchain by calling this function.\n * @param eula The IPFS Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS.\n Currently, this must be equal to \"QmU7Gizbre17x6V2VR1Q2GJEjz6m8S1bXmBtVxS2vmvb81\"\n@param profile Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.", "id": 560, "implemented": true, "kind": "function", "modifiers": [], "name": "register", "nodeType": "FunctionDefinition", "parameters": { "id": 506, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 503, "name": "eula", "nodeType": "VariableDeclaration", "scope": 560, "src": "8625:18:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 502, "name": "string", "nodeType": "ElementaryTypeName", "src": "8625:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 505, "name": "profile", "nodeType": "VariableDeclaration", "scope": 560, "src": "8645:21:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 504, "name": "string", "nodeType": "ElementaryTypeName", "src": "8645:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "8624:43:2" }, "returnParameters": { "id": 507, "nodeType": "ParameterList", "parameters": [], "src": "8675:0:2" }, "scope": 2111, "src": "8606:463:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 590, "nodeType": "Block", "src": "9151:261:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 565, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "9174:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 568, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 566, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "9182:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9182:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9174:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 569, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "9174:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } ], "id": 564, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9169:4:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 570, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9169:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 571, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9204:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "9169:36:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d454d424552", "id": 573, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9207:16:2", "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": 563, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "9161:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 574, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9161:63:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 575, "nodeType": "ExpressionStatement", "src": "9161:63:2" }, { "expression": { "argumentTypes": null, "id": 583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 576, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "9317:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 579, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 577, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "9325:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9325:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9317:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 580, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "9317:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 581, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "9345:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 582, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "RETIRED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9345:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "src": "9317:47:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "id": 584, "nodeType": "ExpressionStatement", "src": "9317:47:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 586, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "9394:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9394:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 585, "name": "MemberRetired", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 285, "src": "9380:13:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 588, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9380:25:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 589, "nodeType": "EmitStatement", "src": "9375:30:2" } ] }, "documentation": "Leave the XBR Network.", "id": 591, "implemented": true, "kind": "function", "modifiers": [], "name": "unregister", "nodeType": "FunctionDefinition", "parameters": { "id": 561, "nodeType": "ParameterList", "parameters": [], "src": "9141:2:2" }, "returnParameters": { "id": 562, "nodeType": "ParameterList", "parameters": [], "src": "9151:0:2" }, "scope": 2111, "src": "9121:291:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 603, "nodeType": "Block", "src": "9706:45:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 598, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "9723:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 600, "indexExpression": { "argumentTypes": null, "id": 599, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 593, "src": "9731:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9723:15:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 601, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "9723:21:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "functionReturnParameters": 597, "id": 602, "nodeType": "Return", "src": "9716:28:2" } ] }, "documentation": "Returns XBR Network member level given an address.\n * @param member The address to lookup the XBR Network member level for.\n@return The current member level of the member.", "id": 604, "implemented": true, "kind": "function", "modifiers": [], "name": "getMemberLevel", "nodeType": "FunctionDefinition", "parameters": { "id": 594, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 593, "name": "member", "nodeType": "VariableDeclaration", "scope": 604, "src": "9656:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 592, "name": "address", "nodeType": "ElementaryTypeName", "src": "9656:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "9655:16:2" }, "returnParameters": { "id": 597, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 596, "name": "", "nodeType": "VariableDeclaration", "scope": 604, "src": "9693:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "typeName": { "contractScope": null, "id": 595, "name": "MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 177, "src": "9693:11:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "value": null, "visibility": "internal" } ], "src": "9692:13:2" }, "scope": 2111, "src": "9631:120:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 616, "nodeType": "Block", "src": "10062:44:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 611, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "10079:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 613, "indexExpression": { "argumentTypes": null, "id": 612, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 606, "src": "10087:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10079:15:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 614, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "eula", "nodeType": "MemberAccess", "referencedDeclaration": 194, "src": "10079:20:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 610, "id": 615, "nodeType": "Return", "src": "10072:27:2" } ] }, "documentation": "Returns XBR Network member EULA given an address.\n * @param member The address to lookup the XBR Network member EULA for.\n@return IPFS Multihash pointing to XBR Network EULA file on IPFS.", "id": 617, "implemented": true, "kind": "function", "modifiers": [], "name": "getMemberEula", "nodeType": "FunctionDefinition", "parameters": { "id": 607, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 606, "name": "member", "nodeType": "VariableDeclaration", "scope": 617, "src": "10010:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 605, "name": "address", "nodeType": "ElementaryTypeName", "src": "10010:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "10009:16:2" }, "returnParameters": { "id": 610, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 609, "name": "", "nodeType": "VariableDeclaration", "scope": 617, "src": "10047:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 608, "name": "string", "nodeType": "ElementaryTypeName", "src": "10047:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "10046:15:2" }, "scope": 2111, "src": "9986:120:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 629, "nodeType": "Block", "src": "10424:47:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 624, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "10441:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 626, "indexExpression": { "argumentTypes": null, "id": 625, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 619, "src": "10449:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10441:15:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 627, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "profile", "nodeType": "MemberAccess", "referencedDeclaration": 196, "src": "10441:23:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 623, "id": 628, "nodeType": "Return", "src": "10434:30:2" } ] }, "documentation": "Returns XBR Network member profile given an address.\n * @param member The address to lookup the XBR Network member profile for.\n@return IPFS Multihash pointing to member profile file on IPFS.", "id": 630, "implemented": true, "kind": "function", "modifiers": [], "name": "getMemberProfile", "nodeType": "FunctionDefinition", "parameters": { "id": 620, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 619, "name": "member", "nodeType": "VariableDeclaration", "scope": 630, "src": "10372:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 618, "name": "address", "nodeType": "ElementaryTypeName", "src": "10372:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "10371:16:2" }, "returnParameters": { "id": 623, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 622, "name": "", "nodeType": "VariableDeclaration", "scope": 630, "src": "10409:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 621, "name": "string", "nodeType": "ElementaryTypeName", "src": "10409:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "10408:15:2" }, "scope": 2111, "src": "10345:126:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 659, "nodeType": "Block", "src": "11004:120:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 648, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 641, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "11027:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 644, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 642, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "11035:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11035:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11027:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 645, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "11027:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } ], "id": 640, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "11022:4:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 646, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11022:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11057:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "11022:36:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d454d424552", "id": 649, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11060:16:2", "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": 639, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "11014:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 650, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11014:63:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 651, "nodeType": "ExpressionStatement", "src": "11014:63:2" }, { "expression": { "argumentTypes": null, "id": 657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 652, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "11088:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 654, "indexExpression": { "argumentTypes": null, "id": 653, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 632, "src": "11096:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11088:15:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 655, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "11088:21:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 656, "name": "level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 634, "src": "11112:5:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "src": "11088:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "id": 658, "nodeType": "ExpressionStatement", "src": "11088:29:2" } ] }, "documentation": "Manually override the member level of a XBR Network member. Being able to do so\ncurrently serves two purposes:\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 * @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": 660, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 637, "modifierName": { "argumentTypes": null, "id": 636, "name": "onlyMaintainer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 92, "src": "10989:14:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "10989:14:2" } ], "name": "setMemberLevel", "nodeType": "FunctionDefinition", "parameters": { "id": 635, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 632, "name": "member", "nodeType": "VariableDeclaration", "scope": 660, "src": "10947:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 631, "name": "address", "nodeType": "ElementaryTypeName", "src": "10947:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 634, "name": "level", "nodeType": "VariableDeclaration", "scope": 660, "src": "10963:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "typeName": { "contractScope": null, "id": 633, "name": "MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 177, "src": "10963:11:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "value": null, "visibility": "internal" } ], "src": "10946:35:2" }, "returnParameters": { "id": 638, "nodeType": "ParameterList", "parameters": [], "src": "11004:0:2" }, "scope": 2111, "src": "10922:202:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 746, "nodeType": "Block", "src": "11821:589:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "id": 681, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 674, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "11840:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 677, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 675, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "11848:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11848:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11840:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 678, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "11840:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 679, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "11869:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 680, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11869:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "src": "11840:47:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "id": 689, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 682, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "11907:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 685, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 683, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "11915:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 684, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11915:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11907:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 686, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "11907:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 687, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "11936:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 688, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11936:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "src": "11907:49:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "11840:116:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415f4d454d424552", "id": 691, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11958:14:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_789719e83535ffb09d643a0bf25dd5104145ff4f4daf57b09a6a0db0bfdb8244", "typeString": "literal_string \"NOT_A_MEMBER\"" }, "value": "NOT_A_MEMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_789719e83535ffb09d643a0bf25dd5104145ff4f4daf57b09a6a0db0bfdb8244", "typeString": "literal_string \"NOT_A_MEMBER\"" } ], "id": 673, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "11832:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 692, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11832:141:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 693, "nodeType": "ExpressionStatement", "src": "11832:141:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 695, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "11992:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 697, "indexExpression": { "argumentTypes": null, "id": 696, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 662, "src": "12000:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11992:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 698, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "11992:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 700, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12027:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 699, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "12019:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12019:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "11992:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "444f4d41494e5f414c52454144595f455849535453", "id": 703, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12031:23:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b4b7e9e2373811d8695379dfeb48bbef6d3f260a3543cee3c19504cb2e64cde9", "typeString": "literal_string \"DOMAIN_ALREADY_EXISTS\"" }, "value": "DOMAIN_ALREADY_EXISTS" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b4b7e9e2373811d8695379dfeb48bbef6d3f260a3543cee3c19504cb2e64cde9", "typeString": "literal_string \"DOMAIN_ALREADY_EXISTS\"" } ], "id": 694, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "11984:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 704, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11984:71:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 705, "nodeType": "ExpressionStatement", "src": "11984:71:2" }, { "expression": { "argumentTypes": null, "id": 725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 706, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "12066:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 708, "indexExpression": { "argumentTypes": null, "id": 707, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 662, "src": "12074:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "12066:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 710, "name": "domainSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 445, "src": "12093:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 711, "name": "DomainStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "12104:12:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_DomainStatus_$187_$", "typeString": "type(enum XBRNetwork.DomainStatus)" } }, "id": 712, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12104:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 713, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "12125:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12125:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 715, "name": "domainKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, "src": "12137:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "id": 716, "name": "license", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 666, "src": "12184:7:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 717, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 668, "src": "12193:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 718, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 670, "src": "12200:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12220:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 721, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "12206:13:2", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes16_$dyn_memory_$", "typeString": "function (uint256) pure returns (bytes16[] memory)" }, "typeName": { "baseType": { "id": 719, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "12210:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 720, "length": null, "nodeType": "ArrayTypeName", "src": "12210:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage_ptr", "typeString": "bytes16[]" } } }, "id": 723, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12206:16:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_memory", "typeString": "bytes16[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_array$_t_bytes16_$dyn_memory", "typeString": "bytes16[] memory" } ], "id": 709, "name": "Domain", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 217, "src": "12086:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Domain_$217_storage_ptr_$", "typeString": "type(struct XBRNetwork.Domain storage pointer)" } }, "id": 724, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12086:137:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_memory", "typeString": "struct XBRNetwork.Domain memory" } }, "src": "12066:157:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 726, "nodeType": "ExpressionStatement", "src": "12066:157:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 728, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 662, "src": "12253:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 729, "name": "domainSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 445, "src": "12263:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 730, "name": "DomainStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "12274:12:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_DomainStatus_$187_$", "typeString": "type(enum XBRNetwork.DomainStatus)" } }, "id": 731, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12274:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 732, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "12295:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12295:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 734, "name": "domainKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, "src": "12307:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "id": 735, "name": "license", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 666, "src": "12346:7:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 736, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 668, "src": "12355:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 737, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 670, "src": "12362:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 727, "name": "DomainCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 303, "src": "12239:13:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_uint32_$_t_enum$_DomainStatus_$187_$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes16,uint32,enum XBRNetwork.DomainStatus,address,bytes32,string memory,string memory,string memory)" } }, "id": 738, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12239:128:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 739, "nodeType": "EmitStatement", "src": "12234:133:2" }, { "expression": { "argumentTypes": null, "id": 744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 740, "name": "domainSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 445, "src": "12378:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 741, "name": "domainSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 445, "src": "12390:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 742, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12402:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "12390:13:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "12378:25:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 745, "nodeType": "ExpressionStatement", "src": "12378:25:2" } ] }, "documentation": " Create a new XBR domain. Then sender to the transaction must be XBR network member\n and automatically becomes owner of the new domain.\n * @param domainId The ID of the domain to create. Must be globally unique (not yet existing).\n @param domainKey The domain signing key. A Ed25519 (https://ed25519.cr.yp.to/) public key.\n @param license The license for the software stack running the domain. IPFS Multihash\n pointing to a JSON/YAML file signed by the project release key.", "id": 747, "implemented": true, "kind": "function", "modifiers": [], "name": "createDomain", "nodeType": "FunctionDefinition", "parameters": { "id": 671, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 662, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 747, "src": "11705:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 661, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "11705:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 664, "name": "domainKey", "nodeType": "VariableDeclaration", "scope": 747, "src": "11723:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 663, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "11723:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 666, "name": "license", "nodeType": "VariableDeclaration", "scope": 747, "src": "11742:21:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 665, "name": "string", "nodeType": "ElementaryTypeName", "src": "11742:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 668, "name": "terms", "nodeType": "VariableDeclaration", "scope": 747, "src": "11773:19:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 667, "name": "string", "nodeType": "ElementaryTypeName", "src": "11773:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 670, "name": "meta", "nodeType": "VariableDeclaration", "scope": 747, "src": "11794:18:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 669, "name": "string", "nodeType": "ElementaryTypeName", "src": "11794:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "11704:109:2" }, "returnParameters": { "id": 672, "nodeType": "ParameterList", "parameters": [], "src": "11821:0:2" }, "scope": 2111, "src": "11682:728:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 821, "nodeType": "Block", "src": "12681:591:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "id": 760, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 753, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "12699:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 756, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 754, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "12707:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12707:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12699:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 757, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "12699:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 758, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "12728:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 759, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12728:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "src": "12699:47:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "id": 768, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 761, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "12766:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 764, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 762, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "12774:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 763, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12774:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12766:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 765, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "12766:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 766, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "12795:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 767, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12795:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "src": "12766:49:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12699:116:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415f4d454d424552", "id": 770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12817:14:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_789719e83535ffb09d643a0bf25dd5104145ff4f4daf57b09a6a0db0bfdb8244", "typeString": "literal_string \"NOT_A_MEMBER\"" }, "value": "NOT_A_MEMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_789719e83535ffb09d643a0bf25dd5104145ff4f4daf57b09a6a0db0bfdb8244", "typeString": "literal_string \"NOT_A_MEMBER\"" } ], "id": 752, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "12691:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 771, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12691:141:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 772, "nodeType": "ExpressionStatement", "src": "12691:141:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 781, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 774, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "12850:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 776, "indexExpression": { "argumentTypes": null, "id": 775, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 749, "src": "12858:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12850:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 777, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "12850:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 779, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12885:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 778, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "12877:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 780, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12877:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "12850:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f444f4d41494e", "id": 782, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12889:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_66e00f2b8f3be4c130536228bf87a78871a3dff90df414d3d5c6bb3cc868488f", "typeString": "literal_string \"NO_SUCH_DOMAIN\"" }, "value": "NO_SUCH_DOMAIN" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_66e00f2b8f3be4c130536228bf87a78871a3dff90df414d3d5c6bb3cc868488f", "typeString": "literal_string \"NO_SUCH_DOMAIN\"" } ], "id": 773, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "12842:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 783, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12842:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 784, "nodeType": "ExpressionStatement", "src": "12842:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 792, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 786, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "12924:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 788, "indexExpression": { "argumentTypes": null, "id": 787, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 749, "src": "12932:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12924:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 789, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "12924:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 790, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "12951:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 791, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12951:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "12924:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415554484f52495a4544", "id": 793, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12963:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" }, "value": "NOT_AUTHORIZED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" } ], "id": 785, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "12916:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 794, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12916:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 795, "nodeType": "ExpressionStatement", "src": "12916:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, "id": 803, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 797, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "12998:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 799, "indexExpression": { "argumentTypes": null, "id": 798, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 749, "src": "13006:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12998:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 800, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 203, "src": "12998:24:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 801, "name": "DomainStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "13026:12:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_DomainStatus_$187_$", "typeString": "type(enum XBRNetwork.DomainStatus)" } }, "id": 802, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13026:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "src": "12998:47:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "444f4d41494e5f4e4f545f414354495645", "id": 804, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13047:19:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d5934f467c9994134820c728c49cf786b6afee1109118934e5958d7f51b528a0", "typeString": "literal_string \"DOMAIN_NOT_ACTIVE\"" }, "value": "DOMAIN_NOT_ACTIVE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_d5934f467c9994134820c728c49cf786b6afee1109118934e5958d7f51b528a0", "typeString": "literal_string \"DOMAIN_NOT_ACTIVE\"" } ], "id": 796, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "12990:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 805, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12990:77:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 806, "nodeType": "ExpressionStatement", "src": "12990:77:2" }, { "expression": { "argumentTypes": null, "id": 813, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 807, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "13160:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 809, "indexExpression": { "argumentTypes": null, "id": 808, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 749, "src": "13168:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13160:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 810, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 203, "src": "13160:24:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 811, "name": "DomainStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "13187:12:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_DomainStatus_$187_$", "typeString": "type(enum XBRNetwork.DomainStatus)" } }, "id": 812, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13187:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "src": "13160:46:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "id": 814, "nodeType": "ExpressionStatement", "src": "13160:46:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 816, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 749, "src": "13235:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 817, "name": "DomainStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "13245:12:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_DomainStatus_$187_$", "typeString": "type(enum XBRNetwork.DomainStatus)" } }, "id": 818, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13245:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } ], "id": 815, "name": "DomainClosed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 327, "src": "13222:12:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_enum$_DomainStatus_$187_$returns$__$", "typeString": "function (bytes16,enum XBRNetwork.DomainStatus)" } }, "id": 819, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13222:43:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 820, "nodeType": "EmitStatement", "src": "13217:48:2" } ] }, "documentation": "Close an existing XBR domain. The sender must be owner of the domain, and the domain\nmust not have any nodes paired (anymore).\n * @param domainId The ID of the domain to close.", "id": 822, "implemented": true, "kind": "function", "modifiers": [], "name": "closeDomain", "nodeType": "FunctionDefinition", "parameters": { "id": 750, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 749, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 822, "src": "12656:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 748, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "12656:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "12655:18:2" }, "returnParameters": { "id": 751, "nodeType": "ParameterList", "parameters": [], "src": "12681:0:2" }, "scope": 2111, "src": "12634:638:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 834, "nodeType": "Block", "src": "13520:48:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 829, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "13537:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 831, "indexExpression": { "argumentTypes": null, "id": 830, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 824, "src": "13545:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13537:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 832, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 203, "src": "13537:24:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "functionReturnParameters": 828, "id": 833, "nodeType": "Return", "src": "13530:31:2" } ] }, "documentation": "Returns domain status.\n * @param domainId The ID of the domain to lookup status.\n@return The current status of the domain.", "id": 835, "implemented": true, "kind": "function", "modifiers": [], "name": "getDomainStatus", "nodeType": "FunctionDefinition", "parameters": { "id": 825, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 824, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 835, "src": "13467:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 823, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "13467:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "13466:18:2" }, "returnParameters": { "id": 828, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 827, "name": "", "nodeType": "VariableDeclaration", "scope": 835, "src": "13506:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, "typeName": { "contractScope": null, "id": 826, "name": "DomainStatus", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 187, "src": "13506:12:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "value": null, "visibility": "internal" } ], "src": "13505:14:2" }, "scope": 2111, "src": "13442:126:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 847, "nodeType": "Block", "src": "13814:47:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 842, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "13831:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 844, "indexExpression": { "argumentTypes": null, "id": 843, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 837, "src": "13839:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13831:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 845, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "13831:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 841, "id": 846, "nodeType": "Return", "src": "13824:30:2" } ] }, "documentation": "Returns domain owner.\n * @param domainId The ID of the domain to lookup owner.\n@return The address of the owner of the domain.", "id": 848, "implemented": true, "kind": "function", "modifiers": [], "name": "getDomainOwner", "nodeType": "FunctionDefinition", "parameters": { "id": 838, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 837, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 848, "src": "13766:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 836, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "13766:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "13765:18:2" }, "returnParameters": { "id": 841, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 840, "name": "", "nodeType": "VariableDeclaration", "scope": 848, "src": "13805:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 839, "name": "address", "nodeType": "ElementaryTypeName", "src": "13805:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "13804:9:2" }, "scope": 2111, "src": "13742:119:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 860, "nodeType": "Block", "src": "14118:51:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 855, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "14135:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 857, "indexExpression": { "argumentTypes": null, "id": 856, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 850, "src": "14143:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14135:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 858, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "domainKey", "nodeType": "MemberAccess", "referencedDeclaration": 207, "src": "14135:27:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 854, "id": 859, "nodeType": "Return", "src": "14128:34:2" } ] }, "documentation": "Returns domain (signing) key.\n * @param domainId The ID of the domain to lookup key.\n@return The Ed25519 public signing key for the domain.", "id": 861, "implemented": true, "kind": "function", "modifiers": [], "name": "getDomainKey", "nodeType": "FunctionDefinition", "parameters": { "id": 851, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 850, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 861, "src": "14070:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 849, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "14070:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "14069:18:2" }, "returnParameters": { "id": 854, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 853, "name": "", "nodeType": "VariableDeclaration", "scope": 861, "src": "14109:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 852, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "14109:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "14108:9:2" }, "scope": 2111, "src": "14048:121:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 873, "nodeType": "Block", "src": "14442:49:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 868, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "14459:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 870, "indexExpression": { "argumentTypes": null, "id": 869, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 863, "src": "14467:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14459:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 871, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "license", "nodeType": "MemberAccess", "referencedDeclaration": 209, "src": "14459:25:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 867, "id": 872, "nodeType": "Return", "src": "14452:32:2" } ] }, "documentation": "Returns domain license.\n * @param domainId The ID of the domain to lookup license.\n@return IPFS Multihash pointer to domain license file on IPFS.", "id": 874, "implemented": true, "kind": "function", "modifiers": [], "name": "getDomainLicense", "nodeType": "FunctionDefinition", "parameters": { "id": 864, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 863, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 874, "src": "14388:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 862, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "14388:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "14387:18:2" }, "returnParameters": { "id": 867, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 866, "name": "", "nodeType": "VariableDeclaration", "scope": 874, "src": "14427:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 865, "name": "string", "nodeType": "ElementaryTypeName", "src": "14427:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "14426:15:2" }, "scope": 2111, "src": "14362:129:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 886, "nodeType": "Block", "src": "14751:47:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 881, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "14768:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 883, "indexExpression": { "argumentTypes": null, "id": 882, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 876, "src": "14776:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14768:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 884, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "terms", "nodeType": "MemberAccess", "referencedDeclaration": 211, "src": "14768:23:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 880, "id": 885, "nodeType": "Return", "src": "14761:30:2" } ] }, "documentation": "Returns domain terms.\n * @param domainId The ID of the domain to lookup terms.\n@return IPFS Multihash pointer to domain terms on IPFS.", "id": 887, "implemented": true, "kind": "function", "modifiers": [], "name": "getDomainTerms", "nodeType": "FunctionDefinition", "parameters": { "id": 877, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 876, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 887, "src": "14697:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 875, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "14697:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "14696:18:2" }, "returnParameters": { "id": 880, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 879, "name": "", "nodeType": "VariableDeclaration", "scope": 887, "src": "14736:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 878, "name": "string", "nodeType": "ElementaryTypeName", "src": "14736:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "14735:15:2" }, "scope": 2111, "src": "14673:125:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 899, "nodeType": "Block", "src": "15073:46:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 894, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "15090:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 896, "indexExpression": { "argumentTypes": null, "id": 895, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 889, "src": "15098:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15090:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 897, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "meta", "nodeType": "MemberAccess", "referencedDeclaration": 213, "src": "15090:22:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 893, "id": 898, "nodeType": "Return", "src": "15083:29:2" } ] }, "documentation": "Returns domain meta data.\n * @param domainId The ID of the domain to lookup meta data.\n@return IPFS Multihash pointer to domain metadata file on IPFS.", "id": 900, "implemented": true, "kind": "function", "modifiers": [], "name": "getDomainMeta", "nodeType": "FunctionDefinition", "parameters": { "id": 890, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 889, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 900, "src": "15019:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 888, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "15019:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "15018:18:2" }, "returnParameters": { "id": 893, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 892, "name": "", "nodeType": "VariableDeclaration", "scope": 900, "src": "15058:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 891, "name": "string", "nodeType": "ElementaryTypeName", "src": "15058:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "15057:15:2" }, "scope": 2111, "src": "14996:123:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1012, "nodeType": "Block", "src": "15728:659:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 921, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 914, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "15747:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 916, "indexExpression": { "argumentTypes": null, "id": 915, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "15755:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15747:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 917, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "15747:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "15782:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 918, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "15774:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 920, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15774:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "15747:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f444f4d41494e", "id": 922, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15786:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_66e00f2b8f3be4c130536228bf87a78871a3dff90df414d3d5c6bb3cc868488f", "typeString": "literal_string \"NO_SUCH_DOMAIN\"" }, "value": "NO_SUCH_DOMAIN" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_66e00f2b8f3be4c130536228bf87a78871a3dff90df414d3d5c6bb3cc868488f", "typeString": "literal_string \"NO_SUCH_DOMAIN\"" } ], "id": 913, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "15739:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 923, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15739:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 924, "nodeType": "ExpressionStatement", "src": "15739:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 932, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 926, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "15821:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 928, "indexExpression": { "argumentTypes": null, "id": 927, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "15829:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15821:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 929, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "15821:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 930, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "15848:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "15848:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "15821:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415554484f52495a4544", "id": 933, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15860:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" }, "value": "NOT_AUTHORIZED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" } ], "id": 925, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "15813:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 934, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15813:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 935, "nodeType": "ExpressionStatement", "src": "15813:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 938, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "15901:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 940, "indexExpression": { "argumentTypes": null, "id": 939, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 902, "src": "15907:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15901:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 941, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "nodeType", "nodeType": "MemberAccess", "referencedDeclaration": 221, "src": "15901:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } ], "id": 937, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "15895:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 942, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15895:29:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 943, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "15928:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "15895:34:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f44455f414c52454144595f504149524544", "id": 945, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15931:21:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_947f43fbe6957fe97ec59d1155f3d7661456dd2152a74433d4847d7685937676", "typeString": "literal_string \"NODE_ALREADY_PAIRED\"" }, "value": "NODE_ALREADY_PAIRED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_947f43fbe6957fe97ec59d1155f3d7661456dd2152a74433d4847d7685937676", "typeString": "literal_string \"NODE_ALREADY_PAIRED\"" } ], "id": 936, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "15887:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 946, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15887:66:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 947, "nodeType": "ExpressionStatement", "src": "15887:66:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "id": 955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 949, "name": "nodesByKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 465, "src": "15971:10:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes16_$", "typeString": "mapping(bytes32 => bytes16)" } }, "id": 951, "indexExpression": { "argumentTypes": null, "id": 950, "name": "nodeKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 908, "src": "15982:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15971:19:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "16002:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 952, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "15994:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes16_$", "typeString": "type(bytes16)" }, "typeName": "bytes16" }, "id": 954, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15994:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "15971:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4455504c49434154455f4e4f44455f4b4559", "id": 956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16006:20:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c983f70de7ce8b128c41fc15139109c4e51114479840ba67e65d247188782195", "typeString": "literal_string \"DUPLICATE_NODE_KEY\"" }, "value": "DUPLICATE_NODE_KEY" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c983f70de7ce8b128c41fc15139109c4e51114479840ba67e65d247188782195", "typeString": "literal_string \"DUPLICATE_NODE_KEY\"" } ], "id": 948, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "15963:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 957, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15963:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 958, "nodeType": "ExpressionStatement", "src": "15963:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 961, "name": "nodeType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 906, "src": "16051:8:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } ], "id": 960, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16045:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 962, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16045:15:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 964, "name": "NodeType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 192, "src": "16070:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_NodeType_$192_$", "typeString": "type(enum XBRNetwork.NodeType)" } }, "id": 965, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "MASTER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "16070:15:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } ], "id": 963, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16064:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16064:22:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "16045:41:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 975, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 969, "name": "nodeType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 906, "src": "16112:8:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } ], "id": 968, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16106:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 970, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16106:15:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 972, "name": "NodeType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 192, "src": "16131:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_NodeType_$192_$", "typeString": "type(enum XBRNetwork.NodeType)" } }, "id": 973, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "EDGE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "16131:13:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } ], "id": 971, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16125:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16125:20:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "16106:39:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "16045:100:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4e4f44455f54595045", "id": 977, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16147:19:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_82d65450c4fcda82ec7e0f71e6af3935b97b18a6ae8d6319dfa9c0d346e5fe20", "typeString": "literal_string \"INVALID_NODE_TYPE\"" }, "value": "INVALID_NODE_TYPE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_82d65450c4fcda82ec7e0f71e6af3935b97b18a6ae8d6319dfa9c0d346e5fe20", "typeString": "literal_string \"INVALID_NODE_TYPE\"" } ], "id": 959, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "16037:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 978, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16037:130:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 979, "nodeType": "ExpressionStatement", "src": "16037:130:2" }, { "expression": { "argumentTypes": null, "id": 989, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 980, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16178:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 982, "indexExpression": { "argumentTypes": null, "id": 981, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 902, "src": "16184:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "16178:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 984, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "16199:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 985, "name": "nodeType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 906, "src": "16209:8:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, { "argumentTypes": null, "id": 986, "name": "nodeKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 908, "src": "16219:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "id": 987, "name": "config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 910, "src": "16228:6:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 983, "name": "Node", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 226, "src": "16194:4:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Node_$226_storage_ptr_$", "typeString": "type(struct XBRNetwork.Node storage pointer)" } }, "id": 988, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16194:41:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_memory", "typeString": "struct XBRNetwork.Node memory" } }, "src": "16178:57:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 990, "nodeType": "ExpressionStatement", "src": "16178:57:2" }, { "expression": { "argumentTypes": null, "id": 995, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 991, "name": "nodesByKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 465, "src": "16245:10:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes16_$", "typeString": "mapping(bytes32 => bytes16)" } }, "id": 993, "indexExpression": { "argumentTypes": null, "id": 992, "name": "nodeKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 908, "src": "16256:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "16245:19:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 994, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 902, "src": "16267:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "16245:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 996, "nodeType": "ExpressionStatement", "src": "16245:28:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1002, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 902, "src": "16312:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 997, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "16283:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 999, "indexExpression": { "argumentTypes": null, "id": 998, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "16291:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16283:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 1000, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "nodes", "nodeType": "MemberAccess", "referencedDeclaration": 216, "src": "16283:23:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage", "typeString": "bytes16[] storage ref" } }, "id": 1001, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "16283:28:2", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes16_$returns$_t_uint256_$", "typeString": "function (bytes16) returns (uint256)" } }, "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16283:36:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1004, "nodeType": "ExpressionStatement", "src": "16283:36:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1006, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "16346:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1007, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 902, "src": "16356:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1008, "name": "nodeKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 908, "src": "16364:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "id": 1009, "name": "config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 910, "src": "16373:6:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 1005, "name": "NodePaired", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 337, "src": "16335:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_bytes16_$_t_bytes32_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes16,bytes16,bytes32,string memory)" } }, "id": 1010, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16335:45:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1011, "nodeType": "EmitStatement", "src": "16330:50:2" } ] }, "documentation": "Pair a node with an existing XBR Domain. The sender must be owner of the domain.\n * @param nodeId The ID of the node to pair. Must be globally unique (not yet existing).\n@param domainId The ID of the domain to pair the node with.\n@param nodeType The type of node to pair the node under.\n@param nodeKey The Ed25519 public node key.\n@param config Optional IPFS Multihash pointing to node configuration stored on IPFS", "id": 1013, "implemented": true, "kind": "function", "modifiers": [], "name": "pairNode", "nodeType": "FunctionDefinition", "parameters": { "id": 911, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 902, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 1013, "src": "15621:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 901, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "15621:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 904, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 1013, "src": "15637:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 903, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "15637:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 906, "name": "nodeType", "nodeType": "VariableDeclaration", "scope": 1013, "src": "15655:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" }, "typeName": { "contractScope": null, "id": 905, "name": "NodeType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 192, "src": "15655:8:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 908, "name": "nodeKey", "nodeType": "VariableDeclaration", "scope": 1013, "src": "15674:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 907, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "15674:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 910, "name": "config", "nodeType": "VariableDeclaration", "scope": 1013, "src": "15699:20:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 909, "name": "string", "nodeType": "ElementaryTypeName", "src": "15699:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "15620:100:2" }, "returnParameters": { "id": 912, "nodeType": "ParameterList", "parameters": [], "src": "15728:0:2" }, "scope": 2111, "src": "15602:785:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1104, "nodeType": "Block", "src": "16612:513:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1020, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16636:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1022, "indexExpression": { "argumentTypes": null, "id": 1021, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16642:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16636:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1023, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "nodeType", "nodeType": "MemberAccess", "referencedDeclaration": 221, "src": "16636:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } ], "id": 1019, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16630:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16630:29:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1025, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "16663:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "16630:34:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4e4f4445", "id": 1027, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16666:14:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c397149c018319a1fa3bb02402bbe8eb6a69e75c489fa3116ff70d2b5db0219f", "typeString": "literal_string \"NO_SUCH_NODE\"" }, "value": "NO_SUCH_NODE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c397149c018319a1fa3bb02402bbe8eb6a69e75c489fa3116ff70d2b5db0219f", "typeString": "literal_string \"NO_SUCH_NODE\"" } ], "id": 1018, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "16622:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16622:59:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1029, "nodeType": "ExpressionStatement", "src": "16622:59:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1031, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "16699:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 1036, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1032, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16707:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1034, "indexExpression": { "argumentTypes": null, "id": 1033, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16713:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16707:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "domain", "nodeType": "MemberAccess", "referencedDeclaration": 219, "src": "16707:20:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16699:29:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 1037, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "16699:35:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1038, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "16738:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "16738:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "16699:49:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415554484f52495a4544", "id": 1041, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16750:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" }, "value": "NOT_AUTHORIZED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" } ], "id": 1030, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "16691:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1042, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16691:76:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1043, "nodeType": "ExpressionStatement", "src": "16691:76:2" }, { "assignments": [ 1045 ], "declarations": [ { "constant": false, "id": 1045, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 1104, "src": "16778:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1044, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "16778:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "id": 1050, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1046, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16797:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1048, "indexExpression": { "argumentTypes": null, "id": 1047, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16803:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16797:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1049, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "domain", "nodeType": "MemberAccess", "referencedDeclaration": 219, "src": "16797:20:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "VariableDeclarationStatement", "src": "16778:39:2" }, { "assignments": [ 1052 ], "declarations": [ { "constant": false, "id": 1052, "name": "nodeKey", "nodeType": "VariableDeclaration", "scope": 1104, "src": "16827:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 1051, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "16827:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "id": 1057, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1053, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16845:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1055, "indexExpression": { "argumentTypes": null, "id": 1054, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16851:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16845:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1056, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "key", "nodeType": "MemberAccess", "referencedDeclaration": 223, "src": "16845:17:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "16827:35:2" }, { "expression": { "argumentTypes": null, "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1058, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16873:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1060, "indexExpression": { "argumentTypes": null, "id": 1059, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16879:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16873:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1061, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "domain", "nodeType": "MemberAccess", "referencedDeclaration": 219, "src": "16873:20:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1063, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "16904:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1062, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16896:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes16_$", "typeString": "type(bytes16)" }, "typeName": "bytes16" }, "id": 1064, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16896:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "16873:33:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 1066, "nodeType": "ExpressionStatement", "src": "16873:33:2" }, { "expression": { "argumentTypes": null, "id": 1073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1067, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16916:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1069, "indexExpression": { "argumentTypes": null, "id": 1068, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16922:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16916:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1070, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "nodeType", "nodeType": "MemberAccess", "referencedDeclaration": 221, "src": "16916:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1071, "name": "NodeType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 192, "src": "16941:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_NodeType_$192_$", "typeString": "type(enum XBRNetwork.NodeType)" } }, "id": 1072, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "NULL", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "16941:13:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "src": "16916:38:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "id": 1074, "nodeType": "ExpressionStatement", "src": "16916:38:2" }, { "expression": { "argumentTypes": null, "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1075, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16964:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1077, "indexExpression": { "argumentTypes": null, "id": 1076, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16970:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16964:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1078, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "key", "nodeType": "MemberAccess", "referencedDeclaration": 223, "src": "16964:17:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1080, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "16992:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1079, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16984:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": "bytes32" }, "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16984:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "16964:30:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 1083, "nodeType": "ExpressionStatement", "src": "16964:30:2" }, { "expression": { "argumentTypes": null, "id": 1089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1084, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "17004:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1086, "indexExpression": { "argumentTypes": null, "id": 1085, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "17010:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17004:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1087, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "config", "nodeType": "MemberAccess", "referencedDeclaration": 225, "src": "17004:20:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 1088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "17027:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "17004:25:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 1090, "nodeType": "ExpressionStatement", "src": "17004:25:2" }, { "expression": { "argumentTypes": null, "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1091, "name": "nodesByKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 465, "src": "17040:10:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes16_$", "typeString": "mapping(bytes32 => bytes16)" } }, "id": 1093, "indexExpression": { "argumentTypes": null, "id": 1092, "name": "nodeKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1052, "src": "17051:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "17040:19:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1095, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "17070:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1094, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "17062:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes16_$", "typeString": "type(bytes16)" }, "typeName": "bytes16" }, "id": 1096, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17062:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "17040:32:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 1098, "nodeType": "ExpressionStatement", "src": "17040:32:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1100, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1045, "src": "17101:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1101, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "17111:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "id": 1099, "name": "NodeReleased", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 353, "src": "17088:12:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_bytes16_$returns$__$", "typeString": "function (bytes16,bytes16)" } }, "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17088:30:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1103, "nodeType": "EmitStatement", "src": "17083:35:2" } ] }, "documentation": "Release a node currently paired with an XBR domain. The sender must be owner of the domain.\n * @param nodeId The ID of the node to release.", "id": 1105, "implemented": true, "kind": "function", "modifiers": [], "name": "releaseNode", "nodeType": "FunctionDefinition", "parameters": { "id": 1016, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1015, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 1105, "src": "16589:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1014, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "16589:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "16588:16:2" }, "returnParameters": { "id": 1017, "nodeType": "ParameterList", "parameters": [], "src": "16612:0:2" }, "scope": 2111, "src": "16567:558:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1116, "nodeType": "Block", "src": "17368:43:2", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1112, "name": "nodesByKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 465, "src": "17385:10:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes16_$", "typeString": "mapping(bytes32 => bytes16)" } }, "id": 1114, "indexExpression": { "argumentTypes": null, "id": 1113, "name": "nodeKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1107, "src": "17396:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17385:19:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "functionReturnParameters": 1111, "id": 1115, "nodeType": "Return", "src": "17378:26:2" } ] }, "documentation": "Lookup node ID by node public key.\n * @param nodeKey The node public key to lookup\n@return The Ed25519 public key of the node.", "id": 1117, "implemented": true, "kind": "function", "modifiers": [], "name": "getNodeByKey", "nodeType": "FunctionDefinition", "parameters": { "id": 1108, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1107, "name": "nodeKey", "nodeType": "VariableDeclaration", "scope": 1117, "src": "17321:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 1106, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "17321:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "17320:17:2" }, "returnParameters": { "id": 1111, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1110, "name": "", "nodeType": "VariableDeclaration", "scope": 1117, "src": "17359:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1109, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "17359:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "17358:9:2" }, "scope": 2111, "src": "17299:112:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1129, "nodeType": "Block", "src": "17670:44:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1124, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "17687:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1126, "indexExpression": { "argumentTypes": null, "id": 1125, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1119, "src": "17693:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17687:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1127, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "domain", "nodeType": "MemberAccess", "referencedDeclaration": 219, "src": "17687:20:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "functionReturnParameters": 1123, "id": 1128, "nodeType": "Return", "src": "17680:27:2" } ] }, "documentation": "Returns domain for a node.\n * @param nodeId The ID of the node to lookup the domain for.\n@return The domain the node is currently paired with.", "id": 1130, "implemented": true, "kind": "function", "modifiers": [], "name": "getNodeDomain", "nodeType": "FunctionDefinition", "parameters": { "id": 1120, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1119, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 1130, "src": "17624:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1118, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "17624:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "17623:16:2" }, "returnParameters": { "id": 1123, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1122, "name": "", "nodeType": "VariableDeclaration", "scope": 1130, "src": "17661:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1121, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "17661:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "17660:9:2" }, "scope": 2111, "src": "17601:113:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1142, "nodeType": "Block", "src": "17947:46:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1137, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "17964:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1139, "indexExpression": { "argumentTypes": null, "id": 1138, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1132, "src": "17970:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17964:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1140, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "nodeType", "nodeType": "MemberAccess", "referencedDeclaration": 221, "src": "17964:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "functionReturnParameters": 1136, "id": 1141, "nodeType": "Return", "src": "17957:29:2" } ] }, "documentation": "Returns node type for a node.\n * @param nodeId The ID of the node to lookup the node type for.\n@return The node type.", "id": 1143, "implemented": true, "kind": "function", "modifiers": [], "name": "getNodeType", "nodeType": "FunctionDefinition", "parameters": { "id": 1133, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1132, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 1143, "src": "17900:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1131, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "17900:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "17899:16:2" }, "returnParameters": { "id": 1136, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1135, "name": "", "nodeType": "VariableDeclaration", "scope": 1143, "src": "17937:8:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" }, "typeName": { "contractScope": null, "id": 1134, "name": "NodeType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 192, "src": "17937:8:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "value": null, "visibility": "internal" } ], "src": "17936:10:2" }, "scope": 2111, "src": "17879:114:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1155, "nodeType": "Block", "src": "18242:41:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1150, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "18259:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1152, "indexExpression": { "argumentTypes": null, "id": 1151, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1145, "src": "18265:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18259:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1153, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "key", "nodeType": "MemberAccess", "referencedDeclaration": 223, "src": "18259:17:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 1149, "id": 1154, "nodeType": "Return", "src": "18252:24:2" } ] }, "documentation": "Returns node public key for a node.\n * @param nodeId The ID of the node to lookup the node public key for.\n@return The node public key.", "id": 1156, "implemented": true, "kind": "function", "modifiers": [], "name": "getNodeKey", "nodeType": "FunctionDefinition", "parameters": { "id": 1146, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1145, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 1156, "src": "18196:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1144, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "18196:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "18195:16:2" }, "returnParameters": { "id": 1149, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1148, "name": "", "nodeType": "VariableDeclaration", "scope": 1156, "src": "18233:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 1147, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "18233:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "18232:9:2" }, "scope": 2111, "src": "18176:107:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1168, "nodeType": "Block", "src": "18541:44:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1163, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "18558:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1165, "indexExpression": { "argumentTypes": null, "id": 1164, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1158, "src": "18564:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18558:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1166, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "config", "nodeType": "MemberAccess", "referencedDeclaration": 225, "src": "18558:20:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 1162, "id": 1167, "nodeType": "Return", "src": "18551:27:2" } ] }, "documentation": "Returns config for a node.\n * @param nodeId The ID of the node to lookup the config for.\n@return IPFS Multihash pointer to node config.", "id": 1169, "implemented": true, "kind": "function", "modifiers": [], "name": "getNodeConfig", "nodeType": "FunctionDefinition", "parameters": { "id": 1159, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1158, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 1169, "src": "18489:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1157, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "18489:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "18488:16:2" }, "returnParameters": { "id": 1162, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1161, "name": "", "nodeType": "VariableDeclaration", "scope": 1169, "src": "18526:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1160, "name": "string", "nodeType": "ElementaryTypeName", "src": "18526:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "18525:15:2" }, "scope": 2111, "src": "18466:119:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1345, "nodeType": "Block", "src": "20065:1165:2", "statements": [ { "assignments": [ 1187 ], "declarations": [ { "constant": false, "id": 1187, "name": "_token", "nodeType": "VariableDeclaration", "scope": 1345, "src": "20076:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" }, "typeName": { "contractScope": null, "id": 1186, "name": "XBRToken", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2461, "src": "20076:8:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "value": null, "visibility": "internal" } ], "id": 1191, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1189, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 447, "src": "20103:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1188, "name": "XBRToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2461, "src": "20094:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRToken_$2461_$", "typeString": "type(contract XBRToken)" } }, "id": 1190, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20094:15:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "nodeType": "VariableDeclarationStatement", "src": "20076:33:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1193, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "20128:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1195, "indexExpression": { "argumentTypes": null, "id": 1194, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "20136:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "20128:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1196, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "20128:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1198, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20163:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1197, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "20155:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20155:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "20128:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4d41524b45545f414c52454144595f455849535453", "id": 1201, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20167:23:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3552295cc751e4e095198dc42169acb3ac345362c35654ec4e3d43e2517c8bb7", "typeString": "literal_string \"MARKET_ALREADY_EXISTS\"" }, "value": "MARKET_ALREADY_EXISTS" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3552295cc751e4e095198dc42169acb3ac345362c35654ec4e3d43e2517c8bb7", "typeString": "literal_string \"MARKET_ALREADY_EXISTS\"" } ], "id": 1192, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "20120:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20120:71:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1203, "nodeType": "ExpressionStatement", "src": "20120:71:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1205, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1177, "src": "20209:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1207, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20226:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1206, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "20218:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1208, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20218:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "20209:19:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4d414b4552", "id": 1210, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20230:15:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_484de75c7828c5b2a0283b1ac1380b81ce21dc59d4ce114b8a3a2805f796541d", "typeString": "literal_string \"INVALID_MAKER\"" }, "value": "INVALID_MAKER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_484de75c7828c5b2a0283b1ac1380b81ce21dc59d4ce114b8a3a2805f796541d", "typeString": "literal_string \"INVALID_MAKER\"" } ], "id": 1204, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "20201:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1211, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20201:45:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1212, "nodeType": "ExpressionStatement", "src": "20201:45:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "id": 1220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1214, "name": "marketsByMaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 473, "src": "20264:14:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes16_$", "typeString": "mapping(address => bytes16)" } }, "id": 1216, "indexExpression": { "argumentTypes": null, "id": 1215, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1177, "src": "20279:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "20264:21:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1218, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20297:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1217, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "20289:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes16_$", "typeString": "type(bytes16)" }, "typeName": "bytes16" }, "id": 1219, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20289:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "20264:35:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4d414b45525f414c52454144595f574f524b494e475f464f525f4f544845525f4d41524b4554", "id": 1221, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20301:40:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3751e129b5a7571e64f354a7f42f886681fa373e9a3acd5dce27ce1f49603721", "typeString": "literal_string \"MAKER_ALREADY_WORKING_FOR_OTHER_MARKET\"" }, "value": "MAKER_ALREADY_WORKING_FOR_OTHER_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3751e129b5a7571e64f354a7f42f886681fa373e9a3acd5dce27ce1f49603721", "typeString": "literal_string \"MAKER_ALREADY_WORKING_FOR_OTHER_MARKET\"" } ], "id": 1213, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "20256:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1222, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20256:86:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1223, "nodeType": "ExpressionStatement", "src": "20256:86:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1225, "name": "providerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1179, "src": "20360:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1226, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20380:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "20360:21:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1228, "name": "providerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1179, "src": "20385:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1229, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1187, "src": "20405:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "id": 1230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 2793, "src": "20405:18:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1231, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20405:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "20385:40:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "20360:65:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f50524f56494445525f5345435552495459", "id": 1234, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20427:27:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f15698380491e2d2ebd4e2e3add0d03f2b8da43bd680b5e836c241ad8c8248a2", "typeString": "literal_string \"INVALID_PROVIDER_SECURITY\"" }, "value": "INVALID_PROVIDER_SECURITY" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f15698380491e2d2ebd4e2e3add0d03f2b8da43bd680b5e836c241ad8c8248a2", "typeString": "literal_string \"INVALID_PROVIDER_SECURITY\"" } ], "id": 1224, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "20352:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20352:103:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1236, "nodeType": "ExpressionStatement", "src": "20352:103:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1240, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1238, "name": "consumerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1181, "src": "20473:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1239, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20493:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "20473:21:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1241, "name": "consumerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1181, "src": "20498:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1242, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1187, "src": "20518:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "id": 1243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 2793, "src": "20518:18:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1244, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20518:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "20498:40:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "20473:65:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f434f4e53554d45525f5345435552495459", "id": 1247, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20540:27:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5caf297f39d3aee2fe0659989a7e3e1766939219a557029ab88f9c9fb9b11da", "typeString": "literal_string \"INVALID_CONSUMER_SECURITY\"" }, "value": "INVALID_CONSUMER_SECURITY" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a5caf297f39d3aee2fe0659989a7e3e1766939219a557029ab88f9c9fb9b11da", "typeString": "literal_string \"INVALID_CONSUMER_SECURITY\"" } ], "id": 1237, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "20465:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1248, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20465:103:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1249, "nodeType": "ExpressionStatement", "src": "20465:103:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1251, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1183, "src": "20586:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1252, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20599:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "20586:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1254, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1183, "src": "20604:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1266, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1255, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1187, "src": "20617:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 2793, "src": "20617:18:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1257, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20617:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_10000000_by_1", "typeString": "int_const 10000000" }, "id": 1260, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 1258, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20640:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "37", "id": 1259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20644:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_7_by_1", "typeString": "int_const 7" }, "value": "7" }, "src": "20640:5:2", "typeDescriptions": { "typeIdentifier": "t_rational_10000000_by_1", "typeString": "int_const 10000000" } }, "src": "20617:28:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 1262, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "20616:30:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" }, "id": 1265, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 1263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20649:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "3138", "id": 1264, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20653:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "src": "20649:6:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" } }, "src": "20616:39:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "20604:51:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "20586:69:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4d41524b45545f464545", "id": 1269, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20657:20:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e65d6919b4a612f70f93f2322e458a1f676002eb6f39256504d6cc3c7f932093", "typeString": "literal_string \"INVALID_MARKET_FEE\"" }, "value": "INVALID_MARKET_FEE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e65d6919b4a612f70f93f2322e458a1f676002eb6f39256504d6cc3c7f932093", "typeString": "literal_string \"INVALID_MARKET_FEE\"" } ], "id": 1250, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "20578:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1270, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20578:100:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1271, "nodeType": "ExpressionStatement", "src": "20578:100:2" }, { "expression": { "argumentTypes": null, "id": 1296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1272, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "20689:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1274, "indexExpression": { "argumentTypes": null, "id": 1273, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "20697:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "20689:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1276, "name": "marketSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 442, "src": "20716:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1277, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "20727:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "20727:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 1279, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1173, "src": "20739:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 1280, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1175, "src": "20746:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 1281, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1177, "src": "20752:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1282, "name": "providerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1179, "src": "20759:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1283, "name": "consumerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1181, "src": "20789:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1284, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1183, "src": "20807:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1288, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20832:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1287, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "20818:13:2", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 1285, "name": "address", "nodeType": "ElementaryTypeName", "src": "20822:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 1286, "length": null, "nodeType": "ArrayTypeName", "src": "20822:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, "id": 1289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20818:16:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1293, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20850:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1292, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "20836:13:2", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 1290, "name": "address", "nodeType": "ElementaryTypeName", "src": "20840:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 1291, "length": null, "nodeType": "ArrayTypeName", "src": "20840:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, "id": 1294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20836:16:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" }, { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } ], "id": 1275, "name": "Market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 253, "src": "20709:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Market_$253_storage_ptr_$", "typeString": "type(struct XBRNetwork.Market storage pointer)" } }, "id": 1295, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20709:144:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_memory", "typeString": "struct XBRNetwork.Market memory" } }, "src": "20689:164:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1297, "nodeType": "ExpressionStatement", "src": "20689:164:2" }, { "expression": { "argumentTypes": null, "id": 1310, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1298, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "20864:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1300, "indexExpression": { "argumentTypes": null, "id": 1299, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "20872:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "20864:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1301, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actors", "nodeType": "MemberAccess", "referencedDeclaration": 252, "src": "20864:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor storage ref)" } }, "id": 1304, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1302, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "20889:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "20889:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "20864:36:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1306, "name": "ActorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "20909:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$183_$", "typeString": "type(enum XBRNetwork.ActorType)" } }, "id": 1307, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "MARKET", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "20909:16:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, { "argumentTypes": null, "hexValue": "30", "id": 1308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20927:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1305, "name": "Actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 258, "src": "20903:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Actor_$258_storage_ptr_$", "typeString": "type(struct XBRNetwork.Actor storage pointer)" } }, "id": 1309, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20903:26:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_memory", "typeString": "struct XBRNetwork.Actor memory" } }, "src": "20864:65:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "id": 1311, "nodeType": "ExpressionStatement", "src": "20864:65:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1317, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1177, "src": "20977:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1312, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "20939:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1314, "indexExpression": { "argumentTypes": null, "id": 1313, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "20947:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "20939:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1315, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actorAddresses", "nodeType": "MemberAccess", "referencedDeclaration": 248, "src": "20939:32:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 1316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "20939:37:2", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, "id": 1318, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20939:44:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1319, "nodeType": "ExpressionStatement", "src": "20939:44:2" }, { "expression": { "argumentTypes": null, "id": 1324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1320, "name": "marketsByMaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 473, "src": "20994:14:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes16_$", "typeString": "mapping(address => bytes16)" } }, "id": 1322, "indexExpression": { "argumentTypes": null, "id": 1321, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1177, "src": "21009:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "20994:21:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1323, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "21018:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "20994:32:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 1325, "nodeType": "ExpressionStatement", "src": "20994:32:2" }, { "expression": { "argumentTypes": null, "id": 1330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1326, "name": "marketSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 442, "src": "21037:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 1329, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1327, "name": "marketSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 442, "src": "21049:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 1328, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "21061:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "21049:13:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "21037:25:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 1331, "nodeType": "ExpressionStatement", "src": "21037:25:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1333, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "21092:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1334, "name": "marketSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 442, "src": "21102:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1335, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "21113:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "21113:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 1337, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1173, "src": "21125:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 1338, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1175, "src": "21132:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 1339, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1177, "src": "21138:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1340, "name": "providerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1179, "src": "21177:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1341, "name": "consumerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1181, "src": "21195:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1342, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1183, "src": "21213:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1332, "name": "MarketCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "21078:13:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_uint32_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (bytes16,uint32,address,string memory,string memory,address,uint256,uint256,uint256)" } }, "id": 1343, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "21078:145:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1344, "nodeType": "EmitStatement", "src": "21073:150:2" } ] }, "documentation": "Create a new XBR market. The sender of the transaction must be XBR network member\nand automatically becomes owner of the new market.\n * @param marketId The ID of the market to create. Must be unique (not yet existing).\n@param terms The XBR market terms set by the market owner. IPFS Multihash pointing\n to a ZIP archive file with market documents.\n@param meta The XBR market metadata published by the market owner. IPFS Multihash pointing\n to a RDF/Turtle file with market metadata.\n@param maker The address of the XBR market maker that will run this market. The delegate of the market owner.\n@param providerSecurity The amount of XBR tokens a XBR provider joining the market must deposit.\n@param consumerSecurity The amount of XBR tokens a XBR consumer joining the market must deposit.\n@param marketFee The fee taken by the market (beneficiary is the market owner). The fee is a percentage of\n the revenue of the XBR Provider that receives XBR Token paid for transactions.\n The fee must be between 0% (inclusive) and 99% (inclusive), and is expressed as\n a fraction of the total supply of XBR tokens.", "id": 1346, "implemented": true, "kind": "function", "modifiers": [], "name": "createMarket", "nodeType": "FunctionDefinition", "parameters": { "id": 1184, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1171, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1346, "src": "19905:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1170, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "19905:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1173, "name": "terms", "nodeType": "VariableDeclaration", "scope": 1346, "src": "19923:19:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1172, "name": "string", "nodeType": "ElementaryTypeName", "src": "19923:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1175, "name": "meta", "nodeType": "VariableDeclaration", "scope": 1346, "src": "19944:18:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1174, "name": "string", "nodeType": "ElementaryTypeName", "src": "19944:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1177, "name": "maker", "nodeType": "VariableDeclaration", "scope": 1346, "src": "19964:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1176, "name": "address", "nodeType": "ElementaryTypeName", "src": "19964:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1179, "name": "providerSecurity", "nodeType": "VariableDeclaration", "scope": 1346, "src": "19987:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1178, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19987:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1181, "name": "consumerSecurity", "nodeType": "VariableDeclaration", "scope": 1346, "src": "20013:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1180, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20013:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1183, "name": "marketFee", "nodeType": "VariableDeclaration", "scope": 1346, "src": "20039:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1182, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20039:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "19904:153:2" }, "returnParameters": { "id": 1185, "nodeType": "ParameterList", "parameters": [], "src": "20065:0:2" }, "scope": 2111, "src": "19882:1348:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1357, "nodeType": "Block", "src": "21485:45:2", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1353, "name": "marketsByMaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 473, "src": "21502:14:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes16_$", "typeString": "mapping(address => bytes16)" } }, "id": 1355, "indexExpression": { "argumentTypes": null, "id": 1354, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1348, "src": "21517:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "21502:21:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "functionReturnParameters": 1352, "id": 1356, "nodeType": "Return", "src": "21495:28:2" } ] }, "documentation": "Lookup market ID by market maker address.\n * @param maker The market maker address to lookup market for\n@return ID of the market maker.", "id": 1358, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketByMaker", "nodeType": "FunctionDefinition", "parameters": { "id": 1349, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1348, "name": "maker", "nodeType": "VariableDeclaration", "scope": 1358, "src": "21440:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1347, "name": "address", "nodeType": "ElementaryTypeName", "src": "21440:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "21439:15:2" }, "returnParameters": { "id": 1352, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1351, "name": "", "nodeType": "VariableDeclaration", "scope": 1358, "src": "21476:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1350, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "21476:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "21475:9:2" }, "scope": 2111, "src": "21413:117:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1370, "nodeType": "Block", "src": "21783:47:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1365, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "21800:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1367, "indexExpression": { "argumentTypes": null, "id": 1366, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1360, "src": "21808:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "21800:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1368, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "21800:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 1364, "id": 1369, "nodeType": "Return", "src": "21793:30:2" } ] }, "documentation": "Returns owner for a market.\n * @param marketId The ID of the market to lookup owner for.\n@return Address of the owner of the market.", "id": 1371, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketOwner", "nodeType": "FunctionDefinition", "parameters": { "id": 1361, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1360, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1371, "src": "21735:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1359, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "21735:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "21734:18:2" }, "returnParameters": { "id": 1364, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1363, "name": "", "nodeType": "VariableDeclaration", "scope": 1371, "src": "21774:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1362, "name": "address", "nodeType": "ElementaryTypeName", "src": "21774:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "21773:9:2" }, "scope": 2111, "src": "21710:120:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1383, "nodeType": "Block", "src": "22093:47:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1378, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "22110:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1380, "indexExpression": { "argumentTypes": null, "id": 1379, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1373, "src": "22118:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "22110:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1381, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "terms", "nodeType": "MemberAccess", "referencedDeclaration": 232, "src": "22110:23:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 1377, "id": 1382, "nodeType": "Return", "src": "22103:30:2" } ] }, "documentation": "Returns terms for a market.\n * @param marketId The ID of the market to lookup terms for.\n@return IPFS Multihash pointer to market terms.", "id": 1384, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketTerms", "nodeType": "FunctionDefinition", "parameters": { "id": 1374, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1373, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1384, "src": "22039:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1372, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "22039:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "22038:18:2" }, "returnParameters": { "id": 1377, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1376, "name": "", "nodeType": "VariableDeclaration", "scope": 1384, "src": "22078:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1375, "name": "string", "nodeType": "ElementaryTypeName", "src": "22078:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "22077:15:2" }, "scope": 2111, "src": "22014:126:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1396, "nodeType": "Block", "src": "22411:46:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1391, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "22428:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1393, "indexExpression": { "argumentTypes": null, "id": 1392, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1386, "src": "22436:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "22428:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1394, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "meta", "nodeType": "MemberAccess", "referencedDeclaration": 234, "src": "22428:22:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 1390, "id": 1395, "nodeType": "Return", "src": "22421:29:2" } ] }, "documentation": "Returns metadata for a market.\n * @param marketId The ID of the market to lookup metadata for.\n@return IPFS Multihash pointer to market metadata.", "id": 1397, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketMeta", "nodeType": "FunctionDefinition", "parameters": { "id": 1387, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1386, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1397, "src": "22357:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1385, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "22357:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "22356:18:2" }, "returnParameters": { "id": 1390, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1389, "name": "", "nodeType": "VariableDeclaration", "scope": 1397, "src": "22396:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1388, "name": "string", "nodeType": "ElementaryTypeName", "src": "22396:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "22395:15:2" }, "scope": 2111, "src": "22333:124:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1409, "nodeType": "Block", "src": "22781:47:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1404, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "22798:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1406, "indexExpression": { "argumentTypes": null, "id": 1405, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1399, "src": "22806:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "22798:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1407, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "maker", "nodeType": "MemberAccess", "referencedDeclaration": 236, "src": "22798:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 1403, "id": 1408, "nodeType": "Return", "src": "22791:30:2" } ] }, "documentation": "Returns market maker for a market.\n * @param marketId The ID of the market to lookup the market maker address for.\n@return The address of the (offchain) market maker delegate responsible for this market.", "id": 1410, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketMaker", "nodeType": "FunctionDefinition", "parameters": { "id": 1400, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1399, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1410, "src": "22733:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1398, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "22733:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "22732:18:2" }, "returnParameters": { "id": 1403, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1402, "name": "", "nodeType": "VariableDeclaration", "scope": 1410, "src": "22772:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1401, "name": "address", "nodeType": "ElementaryTypeName", "src": "22772:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "22771:9:2" }, "scope": 2111, "src": "22708:120:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1422, "nodeType": "Block", "src": "23125:58:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1417, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "23142:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1419, "indexExpression": { "argumentTypes": null, "id": 1418, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1412, "src": "23150:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "23142:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1420, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "providerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 238, "src": "23142:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1416, "id": 1421, "nodeType": "Return", "src": "23135:41:2" } ] }, "documentation": "Returns provider security for a market.\n * @param marketId The ID of the market to lookup provider security for.\n@return The provider security defined in the market.", "id": 1423, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketProviderSecurity", "nodeType": "FunctionDefinition", "parameters": { "id": 1413, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1412, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1423, "src": "23077:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1411, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "23077:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "23076:18:2" }, "returnParameters": { "id": 1416, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1415, "name": "", "nodeType": "VariableDeclaration", "scope": 1423, "src": "23116:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1414, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23116:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "23115:9:2" }, "scope": 2111, "src": "23041:142:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1435, "nodeType": "Block", "src": "23480:58:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1430, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "23497:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1432, "indexExpression": { "argumentTypes": null, "id": 1431, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1425, "src": "23505:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "23497:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1433, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "consumerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 240, "src": "23497:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1429, "id": 1434, "nodeType": "Return", "src": "23490:41:2" } ] }, "documentation": "Returns consumer security for a market.\n * @param marketId The ID of the market to lookup consumer security for.\n@return The consumer security defined in the market.", "id": 1436, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketConsumerSecurity", "nodeType": "FunctionDefinition", "parameters": { "id": 1426, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1425, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1436, "src": "23432:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1424, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "23432:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "23431:18:2" }, "returnParameters": { "id": 1429, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1428, "name": "", "nodeType": "VariableDeclaration", "scope": 1436, "src": "23471:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1427, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23471:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "23470:9:2" }, "scope": 2111, "src": "23396:142:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1448, "nodeType": "Block", "src": "23794:51:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1443, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "23811:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1445, "indexExpression": { "argumentTypes": null, "id": 1444, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1438, "src": "23819:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "23811:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1446, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketFee", "nodeType": "MemberAccess", "referencedDeclaration": 242, "src": "23811:27:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1442, "id": 1447, "nodeType": "Return", "src": "23804:34:2" } ] }, "documentation": "Returns market fee for a market.\n * @param marketId The ID of the market to lookup market fee for.\n@return The fee defined in the market.", "id": 1449, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketFee", "nodeType": "FunctionDefinition", "parameters": { "id": 1439, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1438, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1449, "src": "23746:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1437, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "23746:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "23745:18:2" }, "returnParameters": { "id": 1442, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1441, "name": "", "nodeType": "VariableDeclaration", "scope": 1449, "src": "23785:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1440, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23785:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "23784:9:2" }, "scope": 2111, "src": "23723:122:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1697, "nodeType": "Block", "src": "25346:1817:2", "statements": [ { "assignments": [ 1469 ], "declarations": [ { "constant": false, "id": 1469, "name": "market", "nodeType": "VariableDeclaration", "scope": 1697, "src": "25357:21:2", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market" }, "typeName": { "contractScope": null, "id": 1468, "name": "Market", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 253, "src": "25357:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market" } }, "value": null, "visibility": "internal" } ], "id": 1473, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1470, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "25381:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1472, "indexExpression": { "argumentTypes": null, "id": 1471, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "25389:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "25381:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "25357:41:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1480, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1475, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "25417:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1476, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "25417:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25441:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1477, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "25433:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1479, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25433:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "25417:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 1481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25445:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" }, "value": "NO_SUCH_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" } ], "id": 1474, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "25409:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1482, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25409:53:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1483, "nodeType": "ExpressionStatement", "src": "25409:53:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1485, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "25480:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1486, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "25480:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1487, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "25496:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1488, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "25496:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "25480:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415554484f52495a4544", "id": 1490, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25508:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" }, "value": "NOT_AUTHORIZED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" } ], "id": 1484, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "25472:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1491, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25472:53:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1492, "nodeType": "ExpressionStatement", "src": "25472:53:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1494, "name": "marketsByMaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 473, "src": "25543:14:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes16_$", "typeString": "mapping(address => bytes16)" } }, "id": 1496, "indexExpression": { "argumentTypes": null, "id": 1495, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1457, "src": "25558:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "25543:21:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25576:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1497, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "25568:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes16_$", "typeString": "type(bytes16)" }, "typeName": "bytes16" }, "id": 1499, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25568:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "25543:35:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4d414b45525f414c52454144595f574f524b494e475f464f525f4f544845525f4d41524b4554", "id": 1501, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25580:40:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3751e129b5a7571e64f354a7f42f886681fa373e9a3acd5dce27ce1f49603721", "typeString": "literal_string \"MAKER_ALREADY_WORKING_FOR_OTHER_MARKET\"" }, "value": "MAKER_ALREADY_WORKING_FOR_OTHER_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3751e129b5a7571e64f354a7f42f886681fa373e9a3acd5dce27ce1f49603721", "typeString": "literal_string \"MAKER_ALREADY_WORKING_FOR_OTHER_MARKET\"" } ], "id": 1493, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "25535:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1502, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25535:86:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1503, "nodeType": "ExpressionStatement", "src": "25535:86:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1522, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1505, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1463, "src": "25639:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25652:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "25639:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1508, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1463, "src": "25657:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_990000000000000000000000000_by_1", "typeString": "int_const 990000000000000000000000000" }, "id": 1520, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_990000000_by_1", "typeString": "int_const 990000000" }, "id": 1515, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_1000000000_by_1", "typeString": "int_const 1000000000" }, "id": 1511, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 1509, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25670:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "39", "id": 1510, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25674:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_9_by_1", "typeString": "int_const 9" }, "value": "9" }, "src": "25670:5:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000_by_1", "typeString": "int_const 1000000000" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_10000000_by_1", "typeString": "int_const 10000000" }, "id": 1514, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 1512, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25678:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "37", "id": 1513, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25682:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_7_by_1", "typeString": "int_const 7" }, "value": "7" }, "src": "25678:5:2", "typeDescriptions": { "typeIdentifier": "t_rational_10000000_by_1", "typeString": "int_const 10000000" } }, "src": "25670:13:2", "typeDescriptions": { "typeIdentifier": "t_rational_990000000_by_1", "typeString": "int_const 990000000" } } ], "id": 1516, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "25669:15:2", "typeDescriptions": { "typeIdentifier": "t_rational_990000000_by_1", "typeString": "int_const 990000000" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" }, "id": 1519, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 1517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25687:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "3138", "id": 1518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25691:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "src": "25687:6:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" } }, "src": "25669:24:2", "typeDescriptions": { "typeIdentifier": "t_rational_990000000000000000000000000_by_1", "typeString": "int_const 990000000000000000000000000" } }, "src": "25657:36:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "25639:54:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4d41524b45545f464545", "id": 1523, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25695:20:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e65d6919b4a612f70f93f2322e458a1f676002eb6f39256504d6cc3c7f932093", "typeString": "literal_string \"INVALID_MARKET_FEE\"" }, "value": "INVALID_MARKET_FEE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e65d6919b4a612f70f93f2322e458a1f676002eb6f39256504d6cc3c7f932093", "typeString": "literal_string \"INVALID_MARKET_FEE\"" } ], "id": 1504, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "25631:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1524, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25631:85:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1525, "nodeType": "ExpressionStatement", "src": "25631:85:2" }, { "assignments": [ 1527 ], "declarations": [ { "constant": false, "id": 1527, "name": "wasChanged", "nodeType": "VariableDeclaration", "scope": 1697, "src": "25727:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1526, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25727:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "id": 1529, "initialValue": { "argumentTypes": null, "hexValue": "66616c7365", "id": 1528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "25745:5:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "nodeType": "VariableDeclarationStatement", "src": "25727:23:2" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1530, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1457, "src": "25835:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1532, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25852:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1531, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "25844:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1533, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25844:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "25835:19:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1535, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1457, "src": "25858:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1536, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "25867:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1537, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "maker", "nodeType": "MemberAccess", "referencedDeclaration": 236, "src": "25867:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "25858:21:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "25835:44:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1552, "nodeType": "IfStatement", "src": "25831:137:2", "trueBody": { "id": 1551, "nodeType": "Block", "src": "25881:87:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1545, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1540, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "25895:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1542, "indexExpression": { "argumentTypes": null, "id": 1541, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "25903:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "25895:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1543, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "maker", "nodeType": "MemberAccess", "referencedDeclaration": 236, "src": "25895:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1544, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1457, "src": "25921:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "25895:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 1546, "nodeType": "ExpressionStatement", "src": "25895:31:2" }, { "expression": { "argumentTypes": null, "id": 1549, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1547, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "25940:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 1548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "25953:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "25940:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1550, "nodeType": "ExpressionStatement", "src": "25940:17:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1554, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1453, "src": "25987:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 1553, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "25981:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": "bytes" }, "id": 1555, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25981:12:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 1556, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "25981:19:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1557, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "26003:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "25981:23:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 1572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1562, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1453, "src": "26029:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 1560, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3276, "src": "26018:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 1561, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "26018:10:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 1563, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26018:17:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 1559, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "26008:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 1564, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26008:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1568, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26061:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1569, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "terms", "nodeType": "MemberAccess", "referencedDeclaration": 232, "src": "26061:12:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } ], "expression": { "argumentTypes": null, "id": 1566, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3276, "src": "26050:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 1567, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "26050:10:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 1570, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26050:24:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 1565, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "26040:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 1571, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26040:35:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "26008:67:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "25981:94:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1586, "nodeType": "IfStatement", "src": "25977:187:2", "trueBody": { "id": 1585, "nodeType": "Block", "src": "26077:87:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1579, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1574, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "26091:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1576, "indexExpression": { "argumentTypes": null, "id": 1575, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "26099:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "26091:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1577, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "terms", "nodeType": "MemberAccess", "referencedDeclaration": 232, "src": "26091:23:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1578, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1453, "src": "26117:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "26091:31:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 1580, "nodeType": "ExpressionStatement", "src": "26091:31:2" }, { "expression": { "argumentTypes": null, "id": 1583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1581, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "26136:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 1582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "26149:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "26136:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1584, "nodeType": "ExpressionStatement", "src": "26136:17:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1592, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1588, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1455, "src": "26183:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 1587, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "26177:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": "bytes" }, "id": 1589, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26177:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 1590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "26177:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1591, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "26198:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "26177:22:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 1606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1596, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1455, "src": "26224:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 1594, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3276, "src": "26213:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 1595, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "26213:10:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 1597, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26213:16:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 1593, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "26203:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 1598, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26203:27:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1602, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26255:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1603, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "meta", "nodeType": "MemberAccess", "referencedDeclaration": 234, "src": "26255:11:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } ], "expression": { "argumentTypes": null, "id": 1600, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3276, "src": "26244:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 1601, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "26244:10:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 1604, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26244:23:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 1599, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "26234:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 1605, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26234:34:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "26203:65:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "26177:91:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1620, "nodeType": "IfStatement", "src": "26173:182:2", "trueBody": { "id": 1619, "nodeType": "Block", "src": "26270:85:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1613, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1608, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "26284:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1610, "indexExpression": { "argumentTypes": null, "id": 1609, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "26292:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "26284:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1611, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "meta", "nodeType": "MemberAccess", "referencedDeclaration": 234, "src": "26284:22:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1612, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1455, "src": "26309:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "26284:29:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 1614, "nodeType": "ExpressionStatement", "src": "26284:29:2" }, { "expression": { "argumentTypes": null, "id": 1617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1615, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "26327:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 1616, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "26340:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "26327:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1618, "nodeType": "ExpressionStatement", "src": "26327:17:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1624, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1621, "name": "providerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1459, "src": "26429:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1622, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26449:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1623, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "providerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 238, "src": "26449:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "26429:43:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1637, "nodeType": "IfStatement", "src": "26425:158:2", "trueBody": { "id": 1636, "nodeType": "Block", "src": "26474:109:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1625, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "26488:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1627, "indexExpression": { "argumentTypes": null, "id": 1626, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "26496:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "26488:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1628, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "providerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 238, "src": "26488:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1629, "name": "providerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1459, "src": "26525:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "26488:53:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1631, "nodeType": "ExpressionStatement", "src": "26488:53:2" }, { "expression": { "argumentTypes": null, "id": 1634, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1632, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "26555:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 1633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "26568:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "26555:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1635, "nodeType": "ExpressionStatement", "src": "26555:17:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1638, "name": "consumerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1461, "src": "26596:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1639, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26616:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1640, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "consumerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 240, "src": "26616:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "26596:43:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1654, "nodeType": "IfStatement", "src": "26592:158:2", "trueBody": { "id": 1653, "nodeType": "Block", "src": "26641:109:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1642, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "26655:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1644, "indexExpression": { "argumentTypes": null, "id": 1643, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "26663:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "26655:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1645, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "consumerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 240, "src": "26655:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1646, "name": "consumerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1461, "src": "26692:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "26655:53:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1648, "nodeType": "ExpressionStatement", "src": "26655:53:2" }, { "expression": { "argumentTypes": null, "id": 1651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1649, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "26722:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 1650, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "26735:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "26722:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1652, "nodeType": "ExpressionStatement", "src": "26722:17:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1658, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1655, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1463, "src": "26763:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1656, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26776:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1657, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketFee", "nodeType": "MemberAccess", "referencedDeclaration": 242, "src": "26776:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "26763:29:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1671, "nodeType": "IfStatement", "src": "26759:130:2", "trueBody": { "id": 1670, "nodeType": "Block", "src": "26794:95:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1659, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "26808:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1661, "indexExpression": { "argumentTypes": null, "id": 1660, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "26816:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "26808:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1662, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "marketFee", "nodeType": "MemberAccess", "referencedDeclaration": 242, "src": "26808:27:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1663, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1463, "src": "26838:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "26808:39:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1665, "nodeType": "ExpressionStatement", "src": "26808:39:2" }, { "expression": { "argumentTypes": null, "id": 1668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1666, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "26861:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 1667, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "26874:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "26861:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1669, "nodeType": "ExpressionStatement", "src": "26861:17:2" } ] } }, { "condition": { "argumentTypes": null, "id": 1672, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "26903:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1694, "nodeType": "IfStatement", "src": "26899:230:2", "trueBody": { "id": 1693, "nodeType": "Block", "src": "26915:214:2", "statements": [ { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1674, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "26948:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1675, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26958:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1676, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketSeq", "nodeType": "MemberAccess", "referencedDeclaration": 228, "src": "26958:16:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1677, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26976:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1678, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "26976:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1679, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26990:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1680, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "terms", "nodeType": "MemberAccess", "referencedDeclaration": 232, "src": "26990:12:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1681, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "27004:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1682, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "meta", "nodeType": "MemberAccess", "referencedDeclaration": 234, "src": "27004:11:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1683, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "27017:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1684, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "maker", "nodeType": "MemberAccess", "referencedDeclaration": 236, "src": "27017:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1685, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "27051:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1686, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "providerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 238, "src": "27051:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1687, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "27076:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1688, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "consumerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 240, "src": "27076:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1689, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "27101:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1690, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketFee", "nodeType": "MemberAccess", "referencedDeclaration": 242, "src": "27101:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1673, "name": "MarketUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 393, "src": "26934:13:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_uint32_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (bytes16,uint32,address,string memory,string memory,address,uint256,uint256,uint256)" } }, "id": 1691, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26934:184:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1692, "nodeType": "EmitStatement", "src": "26929:189:2" } ] } }, { "expression": { "argumentTypes": null, "id": 1695, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "27146:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1467, "id": 1696, "nodeType": "Return", "src": "27139:17:2" } ] }, "documentation": "Update market information, like market terms, metadata or maker address.\n * @param marketId The ID of the market to update.\n@param terms When terms should be updated, provide a string of non-zero length with\n an IPFS Multihash pointing to the new ZIP file with market terms.\n@param meta When metadata should be updated, provide a string of non-zero length with\n an IPFS Multihash pointing to the new RDF/Turtle file with market metadata.\n@param maker When maker should be updated, provide a non-zero address.\n@param providerSecurity Provider security to set that will apply for new members (providers) joining\n the market. It will NOT apply to current market members.\n@param consumerSecurity Consumer security to set that will apply for new members (consumers) joining\n the market. It will NOT apply to current market members.\n@param marketFee New market fee to set. The new market fee will apply to all new payment channels\n opened. It will NOT apply to already opened (or closed) payment channels.\n@return Flag indicating weather the market information was actually updated or left unchanged.", "id": 1698, "implemented": true, "kind": "function", "modifiers": [], "name": "updateMarket", "nodeType": "FunctionDefinition", "parameters": { "id": 1464, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1451, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25171:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1450, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "25171:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1453, "name": "terms", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25189:19:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1452, "name": "string", "nodeType": "ElementaryTypeName", "src": "25189:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1455, "name": "meta", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25210:18:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1454, "name": "string", "nodeType": "ElementaryTypeName", "src": "25210:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1457, "name": "maker", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25230:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1456, "name": "address", "nodeType": "ElementaryTypeName", "src": "25230:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1459, "name": "providerSecurity", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25253:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1458, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25253:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1461, "name": "consumerSecurity", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25279:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1460, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25279:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1463, "name": "marketFee", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25305:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1462, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25305:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "25170:153:2" }, "returnParameters": { "id": 1467, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1466, "name": "", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25340:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1465, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25340:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "25339:6:2" }, "scope": 2111, "src": "25149:2014:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1726, "nodeType": "Block", "src": "27370:172:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1704, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "27388:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1706, "indexExpression": { "argumentTypes": null, "id": 1705, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1700, "src": "27396:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "27388:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1707, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "27388:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1709, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "27423:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1708, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "27415:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1710, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27415:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "27388:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 1712, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "27427:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" }, "value": "NO_SUCH_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" } ], "id": 1703, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "27380:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1713, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27380:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1714, "nodeType": "ExpressionStatement", "src": "27380:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1722, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1716, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "27462:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1718, "indexExpression": { "argumentTypes": null, "id": 1717, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1700, "src": "27470:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "27462:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1719, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "27462:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1720, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "27489:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1721, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "27489:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "27462:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415554484f52495a4544", "id": 1723, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "27501:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" }, "value": "NOT_AUTHORIZED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" } ], "id": 1715, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "27454:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1724, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27454:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1725, "nodeType": "ExpressionStatement", "src": "27454:64:2" } ] }, "documentation": "Close a market. A closed market will not accept new memberships.\n * @param marketId The ID of the market to close.", "id": 1727, "implemented": true, "kind": "function", "modifiers": [], "name": "closeMarket", "nodeType": "FunctionDefinition", "parameters": { "id": 1701, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1700, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1727, "src": "27340:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1699, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "27340:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "27339:18:2" }, "returnParameters": { "id": 1702, "nodeType": "ParameterList", "parameters": [], "src": "27370:0:2" }, "scope": 2111, "src": "27318:224:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1890, "nodeType": "Block", "src": "27904:1181:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1737, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "27922:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1739, "indexExpression": { "argumentTypes": null, "id": 1738, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "27930:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "27922:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1740, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "27922:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1742, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "27957:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1741, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "27949:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1743, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27949:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "27922:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 1745, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "27961:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" }, "value": "NO_SUCH_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" } ], "id": 1736, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "27914:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1746, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27914:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1747, "nodeType": "ExpressionStatement", "src": "27914:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1760, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1750, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "28002:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1752, "indexExpression": { "argumentTypes": null, "id": 1751, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "28010:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "28002:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1753, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actors", "nodeType": "MemberAccess", "referencedDeclaration": 252, "src": "28002:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor storage ref)" } }, "id": 1756, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1754, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "28027:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28027:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "28002:36:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "id": 1757, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actorType", "nodeType": "MemberAccess", "referencedDeclaration": 255, "src": "28002:46:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1749, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "27996:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1758, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27996:53:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1759, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "28053:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "27996:58:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4143544f525f414c52454144595f4a4f494e4544", "id": 1761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "28056:22:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b4b91ce69942812e0603344423e81407870009ac15b3d1fc68d6f7ed2644e231", "typeString": "literal_string \"ACTOR_ALREADY_JOINED\"" }, "value": "ACTOR_ALREADY_JOINED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b4b91ce69942812e0603344423e81407870009ac15b3d1fc68d6f7ed2644e231", "typeString": "literal_string \"ACTOR_ALREADY_JOINED\"" } ], "id": 1748, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "27988:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1762, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27988:91:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1763, "nodeType": "ExpressionStatement", "src": "27988:91:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1790, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1781, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1766, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "28103:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1765, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28097:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1767, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28097:16:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1769, "name": "ActorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "28123:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$183_$", "typeString": "type(enum XBRNetwork.ActorType)" } }, "id": 1770, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "MARKET", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28123:16:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1768, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28117:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1771, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28117:23:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "28097:43:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1774, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "28162:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1773, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28156:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1775, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28156:16:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1777, "name": "ActorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "28182:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$183_$", "typeString": "type(enum XBRNetwork.ActorType)" } }, "id": 1778, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PROVIDER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28182:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1776, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28176:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1779, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28176:25:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "28156:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "28097:104:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1789, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1783, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "28211:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1782, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28205:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1784, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28205:16:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1786, "name": "ActorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "28231:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$183_$", "typeString": "type(enum XBRNetwork.ActorType)" } }, "id": 1787, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CONSUMER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28231:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1785, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28225:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1788, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28225:25:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "28205:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "28097:153:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1764, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3292, "src": "28089:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1791, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28089:162:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1792, "nodeType": "ExpressionStatement", "src": "28089:162:2" }, { "assignments": [ 1794 ], "declarations": [ { "constant": false, "id": 1794, "name": "security", "nodeType": "VariableDeclaration", "scope": 1890, "src": "28262:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1793, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28262:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1795, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "28262:16:2" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1803, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1797, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "28298:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1796, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28292:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1798, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28292:16:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1800, "name": "ActorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "28318:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$183_$", "typeString": "type(enum XBRNetwork.ActorType)" } }, "id": 1801, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PROVIDER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28318:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1799, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28312:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1802, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28312:25:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "28292:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1819, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1813, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "28425:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1812, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28419:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1814, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28419:16:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1816, "name": "ActorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "28445:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$183_$", "typeString": "type(enum XBRNetwork.ActorType)" } }, "id": 1817, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CONSUMER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28445:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1815, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28439:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1818, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28439:25:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "28419:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 1832, "nodeType": "Block", "src": "28542:37:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1830, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1828, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "28556:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 1829, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "28567:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "28556:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1831, "nodeType": "ExpressionStatement", "src": "28556:12:2" } ] }, "id": 1833, "nodeType": "IfStatement", "src": "28415:164:2", "trueBody": { "id": 1827, "nodeType": "Block", "src": "28466:70:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1820, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "28480:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1821, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "28491:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1823, "indexExpression": { "argumentTypes": null, "id": 1822, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "28499:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "28491:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1824, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "consumerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 240, "src": "28491:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "28480:45:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1826, "nodeType": "ExpressionStatement", "src": "28480:45:2" } ] } }, "id": 1834, "nodeType": "IfStatement", "src": "28288:291:2", "trueBody": { "id": 1811, "nodeType": "Block", "src": "28339:70:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1804, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "28353:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1805, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "28364:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1807, "indexExpression": { "argumentTypes": null, "id": 1806, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "28372:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "28364:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1808, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "providerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 238, "src": "28364:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "28353:45:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1810, "nodeType": "ExpressionStatement", "src": "28353:45:2" } ] } }, { "assignments": [ 1836 ], "declarations": [ { "constant": false, "id": 1836, "name": "_token", "nodeType": "VariableDeclaration", "scope": 1890, "src": "28589:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" }, "typeName": { "contractScope": null, "id": 1835, "name": "XBRToken", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2461, "src": "28589:8:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "value": null, "visibility": "internal" } ], "id": 1840, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1838, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 447, "src": "28616:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1837, "name": "XBRToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2461, "src": "28607:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRToken_$2461_$", "typeString": "type(contract XBRToken)" } }, "id": 1839, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28607:15:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "nodeType": "VariableDeclarationStatement", "src": "28589:33:2" }, { "assignments": [ 1842 ], "declarations": [ { "constant": false, "id": 1842, "name": "success", "nodeType": "VariableDeclaration", "scope": 1890, "src": "28632:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1841, "name": "bool", "nodeType": "ElementaryTypeName", "src": "28632:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "id": 1852, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1845, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "28667:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28667:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1848, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3322, "src": "28687:4:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$2111", "typeString": "contract XBRNetwork" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRNetwork_$2111", "typeString": "contract XBRNetwork" } ], "id": 1847, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28679:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1849, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28679:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1850, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "28694:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 1843, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, "src": "28647:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "id": 1844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 2894, "src": "28647:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, "id": 1851, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28647:56:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", "src": "28632:71:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1854, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1842, "src": "28721:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4a4f494e5f4d41524b45545f5452414e534645525f46524f4d5f4641494c4544", "id": 1855, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "28730:34:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_bc36bbcd1f691e5b2bdc683c50eb7f571e587126cbd7ab6e7dcbd28836529dfe", "typeString": "literal_string \"JOIN_MARKET_TRANSFER_FROM_FAILED\"" }, "value": "JOIN_MARKET_TRANSFER_FROM_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_bc36bbcd1f691e5b2bdc683c50eb7f571e587126cbd7ab6e7dcbd28836529dfe", "typeString": "literal_string \"JOIN_MARKET_TRANSFER_FROM_FAILED\"" } ], "id": 1853, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "28713:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1856, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28713:52:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1857, "nodeType": "ExpressionStatement", "src": "28713:52:2" }, { "expression": { "argumentTypes": null, "id": 1869, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1858, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "28776:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1860, "indexExpression": { "argumentTypes": null, "id": 1859, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "28784:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "28776:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1861, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actors", "nodeType": "MemberAccess", "referencedDeclaration": 252, "src": "28776:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor storage ref)" } }, "id": 1864, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1862, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "28801:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1863, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28801:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "28776:36:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1866, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "28821:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, { "argumentTypes": null, "id": 1867, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "28832:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1865, "name": "Actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 258, "src": "28815:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Actor_$258_storage_ptr_$", "typeString": "type(struct XBRNetwork.Actor storage pointer)" } }, "id": 1868, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28815:26:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_memory", "typeString": "struct XBRNetwork.Actor memory" } }, "src": "28776:65:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "id": 1870, "nodeType": "ExpressionStatement", "src": "28776:65:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1876, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "28889:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1877, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28889:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1871, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "28851:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1873, "indexExpression": { "argumentTypes": null, "id": 1872, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "28859:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "28851:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1874, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actorAddresses", "nodeType": "MemberAccess", "referencedDeclaration": 248, "src": "28851:32:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 1875, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28851:37:2", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, "id": 1878, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28851:49:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1879, "nodeType": "ExpressionStatement", "src": "28851:49:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1881, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "29010:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1882, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "29020:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1883, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "29020:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 1884, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "29032:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, { "argumentTypes": null, "id": 1885, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "29043:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1880, "name": "ActorJoined", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 407, "src": "28998:11:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_address_$_t_enum$_ActorType_$183_$_t_uint256_$returns$__$", "typeString": "function (bytes16,address,enum XBRNetwork.ActorType,uint256)" } }, "id": 1886, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28998:54:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1887, "nodeType": "EmitStatement", "src": "28993:59:2" }, { "expression": { "argumentTypes": null, "id": 1888, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "29070:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1735, "id": 1889, "nodeType": "Return", "src": "29063:15:2" } ] }, "documentation": "Join the given XBR market as the specified type of actor, which must be PROVIDER or CONSUMER.\n * @param marketId The ID of the XBR data market to join.\n@param actorType The type of actor under which to join: PROVIDER or CONSUMER.", "id": 1891, "implemented": true, "kind": "function", "modifiers": [], "name": "joinMarket", "nodeType": "FunctionDefinition", "parameters": { "id": 1732, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1729, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1891, "src": "27840:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1728, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "27840:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1731, "name": "actorType", "nodeType": "VariableDeclaration", "scope": 1891, "src": "27858:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, "typeName": { "contractScope": null, "id": 1730, "name": "ActorType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 183, "src": "27858:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, "value": null, "visibility": "internal" } ], "src": "27839:39:2" }, "returnParameters": { "id": 1735, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1734, "name": "", "nodeType": "VariableDeclaration", "scope": 1891, "src": "27895:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1733, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "27895:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "27894:9:2" }, "scope": 2111, "src": "27819:1266:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1904, "nodeType": "Block", "src": "29373:56:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1899, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "29390:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1901, "indexExpression": { "argumentTypes": null, "id": 1900, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1893, "src": "29398:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "29390:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1902, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actorAddresses", "nodeType": "MemberAccess", "referencedDeclaration": 248, "src": "29390:32:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "functionReturnParameters": 1898, "id": 1903, "nodeType": "Return", "src": "29383:39:2" } ] }, "documentation": "Returns all actors in a given market.\n * @param marketId The ID of the market to lookup actors.\n@return List of addresses of market actors in the market.", "id": 1905, "implemented": true, "kind": "function", "modifiers": [], "name": "getAllMarketActors", "nodeType": "FunctionDefinition", "parameters": { "id": 1894, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1893, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1905, "src": "29316:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1892, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "29316:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "29315:18:2" }, "returnParameters": { "id": 1898, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1897, "name": "", "nodeType": "VariableDeclaration", "scope": 1905, "src": "29355:16:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 1895, "name": "address", "nodeType": "ElementaryTypeName", "src": "29355:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 1896, "length": null, "nodeType": "ArrayTypeName", "src": "29355:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], "src": "29354:18:2" }, "scope": 2111, "src": "29287:142:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1922, "nodeType": "Block", "src": "29798:65:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1914, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "29815:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1916, "indexExpression": { "argumentTypes": null, "id": 1915, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1907, "src": "29823:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "29815:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1917, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actors", "nodeType": "MemberAccess", "referencedDeclaration": 252, "src": "29815:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor storage ref)" } }, "id": 1919, "indexExpression": { "argumentTypes": null, "id": 1918, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1909, "src": "29840:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "29815:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "id": 1920, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actorType", "nodeType": "MemberAccess", "referencedDeclaration": 255, "src": "29815:41:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, "functionReturnParameters": 1913, "id": 1921, "nodeType": "Return", "src": "29808:48:2" } ] }, "documentation": "Returns the type of an actor within a market.\n * @param marketId The ID of the market to lookup actor type.\n@param actor The address of the actor to lookup.\n@return The type under which the actor is joined in the market.", "id": 1923, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketActorType", "nodeType": "FunctionDefinition", "parameters": { "id": 1910, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1907, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1923, "src": "29733:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1906, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "29733:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1909, "name": "actor", "nodeType": "VariableDeclaration", "scope": 1923, "src": "29751:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1908, "name": "address", "nodeType": "ElementaryTypeName", "src": "29751:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "29732:33:2" }, "returnParameters": { "id": 1913, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1912, "name": "", "nodeType": "VariableDeclaration", "scope": 1923, "src": "29787:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, "typeName": { "contractScope": null, "id": 1911, "name": "ActorType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 183, "src": "29787:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, "value": null, "visibility": "internal" } ], "src": "29786:11:2" }, "scope": 2111, "src": "29704:159:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1940, "nodeType": "Block", "src": "30253:64:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1932, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "30270:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1934, "indexExpression": { "argumentTypes": null, "id": 1933, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1925, "src": "30278:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "30270:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1935, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actors", "nodeType": "MemberAccess", "referencedDeclaration": 252, "src": "30270:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor storage ref)" } }, "id": 1937, "indexExpression": { "argumentTypes": null, "id": 1936, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1927, "src": "30295:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "30270:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "id": 1938, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "security", "nodeType": "MemberAccess", "referencedDeclaration": 257, "src": "30270:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1931, "id": 1939, "nodeType": "Return", "src": "30263:47:2" } ] }, "documentation": "Returns the current security deposit of an actor within a market.\n * @param marketId The ID of the market to lookup actor type.\n@param actor The address of the actor to lookup.\n@return The security deposit of the actor in the given market.", "id": 1941, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketActorSecurity", "nodeType": "FunctionDefinition", "parameters": { "id": 1928, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1925, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1941, "src": "30190:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1924, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "30190:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1927, "name": "actor", "nodeType": "VariableDeclaration", "scope": 1941, "src": "30208:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1926, "name": "address", "nodeType": "ElementaryTypeName", "src": "30208:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "30189:33:2" }, "returnParameters": { "id": 1931, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1930, "name": "", "nodeType": "VariableDeclaration", "scope": 1941, "src": "30244:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1929, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30244:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "30243:9:2" }, "scope": 2111, "src": "30157:160:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1958, "nodeType": "Block", "src": "30638:98:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1954, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1947, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "30656:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1949, "indexExpression": { "argumentTypes": null, "id": 1948, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1943, "src": "30664:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "30656:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1950, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "30656:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1952, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "30691:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1951, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "30683:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30683:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "30656:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 1955, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "30695:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" }, "value": "NO_SUCH_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" } ], "id": 1946, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "30648:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1956, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30648:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1957, "nodeType": "ExpressionStatement", "src": "30648:64:2" } ] }, "documentation": "As a market actor (participant) currently member of a market, leave that market.\nA market can only be left when all payment channels of the sender are closed (or expired).\n * @param marketId The ID of the market to leave.", "id": 1959, "implemented": true, "kind": "function", "modifiers": [], "name": "leaveMarket", "nodeType": "FunctionDefinition", "parameters": { "id": 1944, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1943, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1959, "src": "30608:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1942, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "30608:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "30607:18:2" }, "returnParameters": { "id": 1945, "nodeType": "ParameterList", "parameters": [], "src": "30638:0:2" }, "scope": 2111, "src": "30586:150:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 2048, "nodeType": "Block", "src": "31238:803:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1978, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1971, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "31257:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1973, "indexExpression": { "argumentTypes": null, "id": 1972, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1961, "src": "31265:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "31257:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1974, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "31257:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1976, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "31292:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1975, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "31284:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1977, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31284:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "31257:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 1979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "31296:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" }, "value": "NO_SUCH_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" } ], "id": 1970, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "31249:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1980, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31249:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1981, "nodeType": "ExpressionStatement", "src": "31249:64:2" }, { "assignments": [ 1983 ], "declarations": [ { "constant": false, "id": 1983, "name": "channel", "nodeType": "VariableDeclaration", "scope": 2048, "src": "31437:25:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" }, "typeName": { "contractScope": null, "id": 1982, "name": "XBRPaymentChannel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2428, "src": "31437:17:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } }, "value": null, "visibility": "internal" } ], "id": 1996, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1986, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1961, "src": "31487:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1987, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "31497:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1988, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "31497:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 1989, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1963, "src": "31509:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1991, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "31527:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1990, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "31519:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1992, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31519:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 1993, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1965, "src": "31531:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "hexValue": "3630", "id": 1994, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "31539:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_60_by_1", "typeString": "int_const 60" }, "value": "60" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_60_by_1", "typeString": "int_const 60" } ], "id": 1985, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "31465:21:2", "typeDescriptions": { "typeIdentifier": "t_function_creation_nonpayable$_t_bytes16_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$returns$_t_contract$_XBRPaymentChannel_$2428_$", "typeString": "function (bytes16,address,address,address,uint256,uint32) returns (contract XBRPaymentChannel)" }, "typeName": { "contractScope": null, "id": 1984, "name": "XBRPaymentChannel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2428, "src": "31469:17:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } } }, "id": 1995, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31465:77:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } }, "nodeType": "VariableDeclarationStatement", "src": "31437:105:2" }, { "assignments": [ 1998 ], "declarations": [ { "constant": false, "id": 1998, "name": "_token", "nodeType": "VariableDeclaration", "scope": 2048, "src": "31553:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" }, "typeName": { "contractScope": null, "id": 1997, "name": "XBRToken", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2461, "src": "31553:8:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "value": null, "visibility": "internal" } ], "id": 2002, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2000, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 447, "src": "31580:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1999, "name": "XBRToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2461, "src": "31571:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRToken_$2461_$", "typeString": "type(contract XBRToken)" } }, "id": 2001, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31571:15:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "nodeType": "VariableDeclarationStatement", "src": "31553:33:2" }, { "assignments": [ 2004 ], "declarations": [ { "constant": false, "id": 2004, "name": "success", "nodeType": "VariableDeclaration", "scope": 2048, "src": "31596:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2003, "name": "bool", "nodeType": "ElementaryTypeName", "src": "31596:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "id": 2014, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2007, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "31631:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "31631:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2010, "name": "channel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1983, "src": "31651:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } ], "id": 2009, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "31643:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 2011, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31643:16:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 2012, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1965, "src": "31661:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 2005, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1998, "src": "31611:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "id": 2006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 2894, "src": "31611:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, "id": 2013, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31611:57:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", "src": "31596:72:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2016, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2004, "src": "31686:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4f50454e5f4348414e4e454c5f5452414e534645525f46524f4d5f4641494c4544", "id": 2017, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "31695:35:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ebe393bb10dfca2074efb2b380a27c042cb8e246788d4413cb67e7e6852618e2", "typeString": "literal_string \"OPEN_CHANNEL_TRANSFER_FROM_FAILED\"" }, "value": "OPEN_CHANNEL_TRANSFER_FROM_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_ebe393bb10dfca2074efb2b380a27c042cb8e246788d4413cb67e7e6852618e2", "typeString": "literal_string \"OPEN_CHANNEL_TRANSFER_FROM_FAILED\"" } ], "id": 2015, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "31678:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2018, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31678:53:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2019, "nodeType": "ExpressionStatement", "src": "31678:53:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2026, "name": "channel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1983, "src": "31782:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } ], "id": 2025, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "31774:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 2027, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31774:16:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2020, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "31742:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 2022, "indexExpression": { "argumentTypes": null, "id": 2021, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1961, "src": "31750:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "31742:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 2023, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "channels", "nodeType": "MemberAccess", "referencedDeclaration": 245, "src": "31742:26:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "31742:31:2", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, "id": 2028, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31742:49:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2029, "nodeType": "ExpressionStatement", "src": "31742:49:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2031, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1961, "src": "31926:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2032, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "31936:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "31936:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 2034, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1963, "src": "31948:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2035, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "31958:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 2037, "indexExpression": { "argumentTypes": null, "id": 2036, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1961, "src": "31966:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "31958:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 2038, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "31958:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2040, "name": "channel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1983, "src": "31991:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } ], "id": 2039, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "31983:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 2041, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31983:16:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2030, "name": "PaymentChannelCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 425, "src": "31904:21:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", "typeString": "function (bytes16,address,address,address,address)" } }, "id": 2042, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31904:96:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2043, "nodeType": "EmitStatement", "src": "31899:101:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2045, "name": "channel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1983, "src": "32026:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } ], "id": 2044, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "32018:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 2046, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "32018:16:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 1969, "id": 2047, "nodeType": "Return", "src": "32011:23:2" } ] }, "documentation": "Open a new payment channel and deposit an amount of XBR token into a market.\n * @param marketId The ID of the market to open a payment channel within.\n@param consumer The address of the (offchain) consumer delegate allowed to consumer the channel.\n@param amount Amount of XBR Token to deposit into the payment channel.", "id": 2049, "implemented": true, "kind": "function", "modifiers": [], "name": "openPaymentChannel", "nodeType": "FunctionDefinition", "parameters": { "id": 1966, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1961, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 2049, "src": "31138:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1960, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "31138:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1963, "name": "consumer", "nodeType": "VariableDeclaration", "scope": 2049, "src": "31156:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1962, "name": "address", "nodeType": "ElementaryTypeName", "src": "31156:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1965, "name": "amount", "nodeType": "VariableDeclaration", "scope": 2049, "src": "31174:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1964, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "31174:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "31137:52:2" }, "returnParameters": { "id": 1969, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1968, "name": "paymentChannel", "nodeType": "VariableDeclaration", "scope": 2049, "src": "31214:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1967, "name": "address", "nodeType": "ElementaryTypeName", "src": "31214:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "31213:24:2" }, "scope": 2111, "src": "31109:932:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 2062, "nodeType": "Block", "src": "32361:50:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2057, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "32378:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 2059, "indexExpression": { "argumentTypes": null, "id": 2058, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2051, "src": "32386:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "32378:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 2060, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "channels", "nodeType": "MemberAccess", "referencedDeclaration": 245, "src": "32378:26:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "functionReturnParameters": 2056, "id": 2061, "nodeType": "Return", "src": "32371:33:2" } ] }, "documentation": "Lookup all payment channels for a XBR Market.\n * @param marketId The XBR Market to get payment channels for.\n@return List of contract addresses of payment channels in the market.", "id": 2063, "implemented": true, "kind": "function", "modifiers": [], "name": "getAllMarketPaymentChannels", "nodeType": "FunctionDefinition", "parameters": { "id": 2052, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2051, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 2063, "src": "32304:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 2050, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "32304:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "32303:18:2" }, "returnParameters": { "id": 2056, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2055, "name": "", "nodeType": "VariableDeclaration", "scope": 2063, "src": "32343:16:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2053, "name": "address", "nodeType": "ElementaryTypeName", "src": "32343:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2054, "length": null, "nodeType": "ArrayTypeName", "src": "32343:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], "src": "32342:18:2" }, "scope": 2111, "src": "32267:144:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 2109, "nodeType": "Block", "src": "33484:390:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2073, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "33503:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 2075, "indexExpression": { "argumentTypes": null, "id": 2074, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2065, "src": "33511:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "33503:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 2076, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "33503:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 2078, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "33538:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2077, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "33530:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 2079, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33530:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "33503:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 2081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "33542:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" }, "value": "NO_SUCH_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" } ], "id": 2072, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "33495:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2082, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33495:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2083, "nodeType": "ExpressionStatement", "src": "33495:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2092, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2085, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "33577:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 2087, "indexExpression": { "argumentTypes": null, "id": 2086, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2065, "src": "33585:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "33577:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 2088, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "maker", "nodeType": "MemberAccess", "referencedDeclaration": 236, "src": "33577:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 2090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "33612:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2089, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "33604:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 2091, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33604:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "33577:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f4143544956455f4d41524b45545f4d414b4552", "id": 2093, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "33616:24:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_74b6ff9e5c5b95a44d98635a314056303693bb981633f9d7a0f185a4b5ecf4fc", "typeString": "literal_string \"NO_ACTIVE_MARKET_MAKER\"" }, "value": "NO_ACTIVE_MARKET_MAKER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_74b6ff9e5c5b95a44d98635a314056303693bb981633f9d7a0f185a4b5ecf4fc", "typeString": "literal_string \"NO_ACTIVE_MARKET_MAKER\"" } ], "id": 2084, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "33569:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2094, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33569:72:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2095, "nodeType": "ExpressionStatement", "src": "33569:72:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2097, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2065, "src": "33799:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2098, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "33809:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 2100, "indexExpression": { "argumentTypes": null, "id": 2099, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2065, "src": "33817:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "33809:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 2101, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "maker", "nodeType": "MemberAccess", "referencedDeclaration": 236, "src": "33809:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 2102, "name": "provider", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2067, "src": "33834:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2103, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "33844:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "33844:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 2105, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2069, "src": "33856:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "hexValue": "3130", "id": 2106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "33864:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" } ], "id": 2096, "name": "PayingChannelRequestCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 439, "src": "33771:27:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$returns$__$", "typeString": "function (bytes16,address,address,address,uint256,uint32)" } }, "id": 2107, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33771:96:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2108, "nodeType": "EmitStatement", "src": "33766:101:2" } ] }, "documentation": "As a data provider, request a new payment channel to get paid by the market maker. Given sufficient\nsecurity amount (deposited by the data provider when joining the marker) to cover the request amount,\nthe market maker will open a payment (state) channel to allow the market maker buying data keys in\nmicrotransactions, and offchain. The creation of the payment channel is asynchronously: the market maker\nis watching the global blockchain filtering for events relevant to the market managed by the maker.\nWhen a request to open a payment channel is recognized by the market maker, it will check the provider\nfor sufficient security deposit covering the requested amount, and if all is fine, create a new payment\nchannel and store the contract address for the channel request ID, so the data provider can retrieve it.\n * @param marketId The ID of the market to request a paying channel within.", "id": 2110, "implemented": true, "kind": "function", "modifiers": [], "name": "requestPayingChannel", "nodeType": "FunctionDefinition", "parameters": { "id": 2070, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2065, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 2110, "src": "33425:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 2064, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "33425:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2067, "name": "provider", "nodeType": "VariableDeclaration", "scope": 2110, "src": "33443:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2066, "name": "address", "nodeType": "ElementaryTypeName", "src": "33443:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2069, "name": "amount", "nodeType": "VariableDeclaration", "scope": 2110, "src": "33461:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2068, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "33461:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "33424:52:2" }, "returnParameters": { "id": 2071, "nodeType": "ParameterList", "parameters": [], "src": "33484:0:2" }, "scope": 2111, "src": "33394:480:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 2112, "src": "1116:32760:2" } ], "src": "805:33072:2" }, "legacyAST": { "absolutePath": "/home/oberstet/scm/xbr/xbr-protocol/contracts/XBRNetwork.sol", "exportedSymbols": { "XBRNetwork": [ 2111 ] }, "id": 2112, "nodeType": "SourceUnit", "nodes": [ { "id": 161, "literals": [ "solidity", "^", "0.5", ".2" ], "nodeType": "PragmaDirective", "src": "805:23:2" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 162, "nodeType": "ImportDirective", "scope": 2112, "sourceUnit": 2765, "src": "886:59:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/oberstet/scm/xbr/xbr-protocol/contracts/XBRToken.sol", "file": "./XBRToken.sol", "id": 163, "nodeType": "ImportDirective", "scope": 2112, "sourceUnit": 2462, "src": "947:24:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/oberstet/scm/xbr/xbr-protocol/contracts/XBRMaintained.sol", "file": "./XBRMaintained.sol", "id": 164, "nodeType": "ImportDirective", "scope": 2112, "sourceUnit": 160, "src": "972:29:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/oberstet/scm/xbr/xbr-protocol/contracts/XBRPaymentChannel.sol", "file": "./XBRPaymentChannel.sol", "id": 165, "nodeType": "ImportDirective", "scope": 2112, "sourceUnit": 2429, "src": "1002:33:2", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 166, "name": "XBRMaintained", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 159, "src": "1139:13:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMaintained_$159", "typeString": "contract XBRMaintained" } }, "id": 167, "nodeType": "InheritanceSpecifier", "src": "1139:13:2" } ], "contractDependencies": [ 159, 2428 ], "contractKind": "contract", "documentation": "@title XBR Network main smart contract.\n@author The XBR Project", "fullyImplemented": true, "id": 2111, "linearizedBaseContracts": [ 2111, 159 ], "name": "XBRNetwork", "nodeType": "ContractDefinition", "nodes": [ { "id": 170, "libraryName": { "contractScope": null, "id": 168, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2764, "src": "1245:8:2", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$2764", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "1239:27:2", "typeName": { "id": 169, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1258:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "canonicalName": "XBRNetwork.MemberLevel", "id": 177, "members": [ { "id": 171, "name": "NULL", "nodeType": "EnumValue", "src": "1352:4:2" }, { "id": 172, "name": "ACTIVE", "nodeType": "EnumValue", "src": "1358:6:2" }, { "id": 173, "name": "VERIFIED", "nodeType": "EnumValue", "src": "1366:8:2" }, { "id": 174, "name": "RETIRED", "nodeType": "EnumValue", "src": "1376:7:2" }, { "id": 175, "name": "PENALTY", "nodeType": "EnumValue", "src": "1385:7:2" }, { "id": 176, "name": "BLOCKED", "nodeType": "EnumValue", "src": "1394:7:2" } ], "name": "MemberLevel", "nodeType": "EnumDefinition", "src": "1333:70:2" }, { "canonicalName": "XBRNetwork.ActorType", "id": 183, "members": [ { "id": 178, "name": "NULL", "nodeType": "EnumValue", "src": "1457:4:2" }, { "id": 179, "name": "NETWORK", "nodeType": "EnumValue", "src": "1463:7:2" }, { "id": 180, "name": "MARKET", "nodeType": "EnumValue", "src": "1472:6:2" }, { "id": 181, "name": "PROVIDER", "nodeType": "EnumValue", "src": "1480:8:2" }, { "id": 182, "name": "CONSUMER", "nodeType": "EnumValue", "src": "1490:8:2" } ], "name": "ActorType", "nodeType": "EnumDefinition", "src": "1440:60:2" }, { "canonicalName": "XBRNetwork.DomainStatus", "id": 187, "members": [ { "id": 184, "name": "NULL", "nodeType": "EnumValue", "src": "1559:4:2" }, { "id": 185, "name": "ACTIVE", "nodeType": "EnumValue", "src": "1565:6:2" }, { "id": 186, "name": "CLOSED", "nodeType": "EnumValue", "src": "1573:6:2" } ], "name": "DomainStatus", "nodeType": "EnumDefinition", "src": "1539:42:2" }, { "canonicalName": "XBRNetwork.NodeType", "id": 192, "members": [ { "id": 188, "name": "NULL", "nodeType": "EnumValue", "src": "1634:4:2" }, { "id": 189, "name": "MASTER", "nodeType": "EnumValue", "src": "1640:6:2" }, { "id": 190, "name": "CORE", "nodeType": "EnumValue", "src": "1648:4:2" }, { "id": 191, "name": "EDGE", "nodeType": "EnumValue", "src": "1654:4:2" } ], "name": "NodeType", "nodeType": "EnumDefinition", "src": "1618:42:2" }, { "canonicalName": "XBRNetwork.Member", "id": 199, "members": [ { "constant": false, "id": 194, "name": "eula", "nodeType": "VariableDeclaration", "scope": 199, "src": "1794:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 193, "name": "string", "nodeType": "ElementaryTypeName", "src": "1794:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 196, "name": "profile", "nodeType": "VariableDeclaration", "scope": 199, "src": "1815:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 195, "name": "string", "nodeType": "ElementaryTypeName", "src": "1815:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 198, "name": "level", "nodeType": "VariableDeclaration", "scope": 199, "src": "1839:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "typeName": { "contractScope": null, "id": 197, "name": "MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 177, "src": "1839:11:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "value": null, "visibility": "internal" } ], "name": "Member", "nodeType": "StructDefinition", "scope": 2111, "src": "1770:93:2", "visibility": "public" }, { "canonicalName": "XBRNetwork.Domain", "id": 217, "members": [ { "constant": false, "id": 201, "name": "domainSeq", "nodeType": "VariableDeclaration", "scope": 217, "src": "1981:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 200, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "1981:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 203, "name": "status", "nodeType": "VariableDeclaration", "scope": 217, "src": "2034:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, "typeName": { "contractScope": null, "id": 202, "name": "DomainStatus", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 187, "src": "2034:12:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 205, "name": "owner", "nodeType": "VariableDeclaration", "scope": 217, "src": "2090:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 204, "name": "address", "nodeType": "ElementaryTypeName", "src": "2090:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 207, "name": "domainKey", "nodeType": "VariableDeclaration", "scope": 217, "src": "2167:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 206, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2167:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 209, "name": "license", "nodeType": "VariableDeclaration", "scope": 217, "src": "2255:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 208, "name": "string", "nodeType": "ElementaryTypeName", "src": "2255:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 211, "name": "terms", "nodeType": "VariableDeclaration", "scope": 217, "src": "2323:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 210, "name": "string", "nodeType": "ElementaryTypeName", "src": "2323:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 213, "name": "meta", "nodeType": "VariableDeclaration", "scope": 217, "src": "2392:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 212, "name": "string", "nodeType": "ElementaryTypeName", "src": "2392:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 216, "name": "nodes", "nodeType": "VariableDeclaration", "scope": 217, "src": "2451:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage_ptr", "typeString": "bytes16[]" }, "typeName": { "baseType": { "id": 214, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2451:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 215, "length": null, "nodeType": "ArrayTypeName", "src": "2451:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage_ptr", "typeString": "bytes16[]" } }, "value": null, "visibility": "internal" } ], "name": "Domain", "nodeType": "StructDefinition", "scope": 2111, "src": "1928:545:2", "visibility": "public" }, { "canonicalName": "XBRNetwork.Node", "id": 226, "members": [ { "constant": false, "id": 219, "name": "domain", "nodeType": "VariableDeclaration", "scope": 226, "src": "2566:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 218, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2566:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 221, "name": "nodeType", "nodeType": "VariableDeclaration", "scope": 226, "src": "2617:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" }, "typeName": { "contractScope": null, "id": 220, "name": "NodeType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 192, "src": "2617:8:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 223, "name": "key", "nodeType": "VariableDeclaration", "scope": 226, "src": "2688:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 222, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2688:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 225, "name": "config", "nodeType": "VariableDeclaration", "scope": 226, "src": "2771:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 224, "name": "string", "nodeType": "ElementaryTypeName", "src": "2771:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "name": "Node", "nodeType": "StructDefinition", "scope": 2111, "src": "2544:247:2", "visibility": "public" }, { "canonicalName": "XBRNetwork.Market", "id": 253, "members": [ { "constant": false, "id": 228, "name": "marketSeq", "nodeType": "VariableDeclaration", "scope": 253, "src": "2880:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 227, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "2880:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 230, "name": "owner", "nodeType": "VariableDeclaration", "scope": 253, "src": "2906:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 229, "name": "address", "nodeType": "ElementaryTypeName", "src": "2906:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 232, "name": "terms", "nodeType": "VariableDeclaration", "scope": 253, "src": "2929:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 231, "name": "string", "nodeType": "ElementaryTypeName", "src": "2929:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 234, "name": "meta", "nodeType": "VariableDeclaration", "scope": 253, "src": "2951:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 233, "name": "string", "nodeType": "ElementaryTypeName", "src": "2951:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 236, "name": "maker", "nodeType": "VariableDeclaration", "scope": 253, "src": "2972:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 235, "name": "address", "nodeType": "ElementaryTypeName", "src": "2972:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 238, "name": "providerSecurity", "nodeType": "VariableDeclaration", "scope": 253, "src": "2995:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 237, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2995:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 240, "name": "consumerSecurity", "nodeType": "VariableDeclaration", "scope": 253, "src": "3029:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 239, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3029:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 242, "name": "marketFee", "nodeType": "VariableDeclaration", "scope": 253, "src": "3063:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 241, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3063:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 245, "name": "channels", "nodeType": "VariableDeclaration", "scope": 253, "src": "3090:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 243, "name": "address", "nodeType": "ElementaryTypeName", "src": "3090:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 244, "length": null, "nodeType": "ArrayTypeName", "src": "3090:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 248, "name": "actorAddresses", "nodeType": "VariableDeclaration", "scope": 253, "src": "3118:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 246, "name": "address", "nodeType": "ElementaryTypeName", "src": "3118:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 247, "length": null, "nodeType": "ArrayTypeName", "src": "3118:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 252, "name": "actors", "nodeType": "VariableDeclaration", "scope": 253, "src": "3152:32:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor)" }, "typeName": { "id": 251, "keyType": { "id": 249, "name": "address", "nodeType": "ElementaryTypeName", "src": "3160:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "3152:25:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor)" }, "valueType": { "contractScope": null, "id": 250, "name": "Actor", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 258, "src": "3171:5:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage_ptr", "typeString": "struct XBRNetwork.Actor" } } }, "value": null, "visibility": "internal" } ], "name": "Market", "nodeType": "StructDefinition", "scope": 2111, "src": "2856:335:2", "visibility": "public" }, { "canonicalName": "XBRNetwork.Actor", "id": 258, "members": [ { "constant": false, "id": 255, "name": "actorType", "nodeType": "VariableDeclaration", "scope": 258, "src": "3286:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, "typeName": { "contractScope": null, "id": 254, "name": "ActorType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 183, "src": "3286:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 257, "name": "security", "nodeType": "VariableDeclaration", "scope": 258, "src": "3315:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 256, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3315:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "name": "Actor", "nodeType": "StructDefinition", "scope": 2111, "src": "3263:75:2", "visibility": "public" }, { "canonicalName": "XBRNetwork.PayingChannelRequest", "id": 271, "members": [ { "constant": false, "id": 260, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 271, "src": "3497:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 259, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "3497:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 262, "name": "sender", "nodeType": "VariableDeclaration", "scope": 271, "src": "3523:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 261, "name": "address", "nodeType": "ElementaryTypeName", "src": "3523:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 264, "name": "delegate", "nodeType": "VariableDeclaration", "scope": 271, "src": "3547:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 263, "name": "address", "nodeType": "ElementaryTypeName", "src": "3547:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 266, "name": "recipient", "nodeType": "VariableDeclaration", "scope": 271, "src": "3573:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 265, "name": "address", "nodeType": "ElementaryTypeName", "src": "3573:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 268, "name": "amount", "nodeType": "VariableDeclaration", "scope": 271, "src": "3600:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 267, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3600:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 270, "name": "timeout", "nodeType": "VariableDeclaration", "scope": 271, "src": "3624:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 269, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "3624:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" } ], "name": "PayingChannelRequest", "nodeType": "StructDefinition", "scope": 2111, "src": "3459:186:2", "visibility": "public" }, { "anonymous": false, "documentation": "Event emitted when a new member joined the XBR Network.", "id": 281, "name": "MemberCreated", "nodeType": "EventDefinition", "parameters": { "id": 280, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 273, "indexed": true, "name": "member", "nodeType": "VariableDeclaration", "scope": 281, "src": "3772:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 272, "name": "address", "nodeType": "ElementaryTypeName", "src": "3772:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 275, "indexed": false, "name": "eula", "nodeType": "VariableDeclaration", "scope": 281, "src": "3796:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 274, "name": "string", "nodeType": "ElementaryTypeName", "src": "3796:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 277, "indexed": false, "name": "profile", "nodeType": "VariableDeclaration", "scope": 281, "src": "3809:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 276, "name": "string", "nodeType": "ElementaryTypeName", "src": "3809:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 279, "indexed": false, "name": "level", "nodeType": "VariableDeclaration", "scope": 281, "src": "3825:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "typeName": { "contractScope": null, "id": 278, "name": "MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 177, "src": "3825:11:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "value": null, "visibility": "internal" } ], "src": "3771:72:2" }, "src": "3751:93:2" }, { "anonymous": false, "documentation": "Event emitted when a member leaves the XBR Network.", "id": 285, "name": "MemberRetired", "nodeType": "EventDefinition", "parameters": { "id": 284, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 283, "indexed": false, "name": "member", "nodeType": "VariableDeclaration", "scope": 285, "src": "3931:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 282, "name": "address", "nodeType": "ElementaryTypeName", "src": "3931:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3930:16:2" }, "src": "3910:37:2" }, { "anonymous": false, "documentation": "Event emitted when a new domain was created.", "id": 303, "name": "DomainCreated", "nodeType": "EventDefinition", "parameters": { "id": 302, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 287, "indexed": true, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 303, "src": "4063:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 286, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4063:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 289, "indexed": false, "name": "domainSeq", "nodeType": "VariableDeclaration", "scope": 303, "src": "4089:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 288, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "4089:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 291, "indexed": false, "name": "status", "nodeType": "VariableDeclaration", "scope": 303, "src": "4107:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, "typeName": { "contractScope": null, "id": 290, "name": "DomainStatus", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 187, "src": "4107:12:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 293, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", "scope": 303, "src": "4128:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 292, "name": "address", "nodeType": "ElementaryTypeName", "src": "4128:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 295, "indexed": false, "name": "domainKey", "nodeType": "VariableDeclaration", "scope": 303, "src": "4151:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 294, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4151:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 297, "indexed": false, "name": "license", "nodeType": "VariableDeclaration", "scope": 303, "src": "4170:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 296, "name": "string", "nodeType": "ElementaryTypeName", "src": "4170:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 299, "indexed": false, "name": "terms", "nodeType": "VariableDeclaration", "scope": 303, "src": "4186:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 298, "name": "string", "nodeType": "ElementaryTypeName", "src": "4186:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 301, "indexed": false, "name": "meta", "nodeType": "VariableDeclaration", "scope": 303, "src": "4200:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 300, "name": "string", "nodeType": "ElementaryTypeName", "src": "4200:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "4062:150:2" }, "src": "4042:171:2" }, { "anonymous": false, "documentation": "Event emitted when a domain was updated.", "id": 321, "name": "DomainUpdated", "nodeType": "EventDefinition", "parameters": { "id": 320, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 305, "indexed": true, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 321, "src": "4289:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 304, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4289:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 307, "indexed": false, "name": "domainSeq", "nodeType": "VariableDeclaration", "scope": 321, "src": "4315:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 306, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "4315:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 309, "indexed": false, "name": "status", "nodeType": "VariableDeclaration", "scope": 321, "src": "4333:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, "typeName": { "contractScope": null, "id": 308, "name": "DomainStatus", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 187, "src": "4333:12:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 311, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", "scope": 321, "src": "4354:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 310, "name": "address", "nodeType": "ElementaryTypeName", "src": "4354:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 313, "indexed": false, "name": "domainKey", "nodeType": "VariableDeclaration", "scope": 321, "src": "4377:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 312, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4377:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 315, "indexed": false, "name": "license", "nodeType": "VariableDeclaration", "scope": 321, "src": "4396:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 314, "name": "string", "nodeType": "ElementaryTypeName", "src": "4396:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 317, "indexed": false, "name": "terms", "nodeType": "VariableDeclaration", "scope": 321, "src": "4412:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 316, "name": "string", "nodeType": "ElementaryTypeName", "src": "4412:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 319, "indexed": false, "name": "meta", "nodeType": "VariableDeclaration", "scope": 321, "src": "4426:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 318, "name": "string", "nodeType": "ElementaryTypeName", "src": "4426:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "4288:150:2" }, "src": "4268:171:2" }, { "anonymous": false, "documentation": "Event emitted when a domain was closed.", "id": 327, "name": "DomainClosed", "nodeType": "EventDefinition", "parameters": { "id": 326, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 323, "indexed": true, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 327, "src": "4513:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 322, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4513:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 325, "indexed": false, "name": "status", "nodeType": "VariableDeclaration", "scope": 327, "src": "4539:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, "typeName": { "contractScope": null, "id": 324, "name": "DomainStatus", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 187, "src": "4539:12:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "value": null, "visibility": "internal" } ], "src": "4512:47:2" }, "src": "4493:67:2" }, { "anonymous": false, "documentation": "Event emitted when a new node was paired with the domain.", "id": 337, "name": "NodePaired", "nodeType": "EventDefinition", "parameters": { "id": 336, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 329, "indexed": true, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 337, "src": "4650:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 328, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4650:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 331, "indexed": false, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 337, "src": "4676:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 330, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4676:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 333, "indexed": false, "name": "nodeKey", "nodeType": "VariableDeclaration", "scope": 337, "src": "4692:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 332, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4692:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 335, "indexed": false, "name": "config", "nodeType": "VariableDeclaration", "scope": 337, "src": "4709:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 334, "name": "string", "nodeType": "ElementaryTypeName", "src": "4709:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "4649:74:2" }, "src": "4632:92:2" }, { "anonymous": false, "documentation": "Event emitted when a node was updated.", "id": 347, "name": "NodeUpdated", "nodeType": "EventDefinition", "parameters": { "id": 346, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 339, "indexed": true, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 347, "src": "4796:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 338, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4796:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 341, "indexed": false, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 347, "src": "4822:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 340, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4822:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 343, "indexed": false, "name": "nodeKey", "nodeType": "VariableDeclaration", "scope": 347, "src": "4838:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 342, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4838:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 345, "indexed": false, "name": "config", "nodeType": "VariableDeclaration", "scope": 347, "src": "4855:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 344, "name": "string", "nodeType": "ElementaryTypeName", "src": "4855:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "4795:74:2" }, "src": "4777:93:2" }, { "anonymous": false, "documentation": "Event emitted when a node was released from a domain.", "id": 353, "name": "NodeReleased", "nodeType": "EventDefinition", "parameters": { "id": 352, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 349, "indexed": true, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 353, "src": "4958:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 348, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4958:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 351, "indexed": false, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 353, "src": "4984:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 350, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4984:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "4957:42:2" }, "src": "4938:62:2" }, { "anonymous": false, "documentation": "Event emitted when a new market was created.", "id": 373, "name": "MarketCreated", "nodeType": "EventDefinition", "parameters": { "id": 372, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 355, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 373, "src": "5116:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 354, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5116:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 357, "indexed": false, "name": "marketSeq", "nodeType": "VariableDeclaration", "scope": 373, "src": "5142:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 356, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "5142:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 359, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", "scope": 373, "src": "5160:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 358, "name": "address", "nodeType": "ElementaryTypeName", "src": "5160:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 361, "indexed": false, "name": "terms", "nodeType": "VariableDeclaration", "scope": 373, "src": "5175:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 360, "name": "string", "nodeType": "ElementaryTypeName", "src": "5175:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 363, "indexed": false, "name": "meta", "nodeType": "VariableDeclaration", "scope": 373, "src": "5189:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 362, "name": "string", "nodeType": "ElementaryTypeName", "src": "5189:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 365, "indexed": false, "name": "maker", "nodeType": "VariableDeclaration", "scope": 373, "src": "5210:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 364, "name": "address", "nodeType": "ElementaryTypeName", "src": "5210:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 367, "indexed": false, "name": "providerSecurity", "nodeType": "VariableDeclaration", "scope": 373, "src": "5225:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 366, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5225:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 369, "indexed": false, "name": "consumerSecurity", "nodeType": "VariableDeclaration", "scope": 373, "src": "5251:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 368, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5251:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 371, "indexed": false, "name": "marketFee", "nodeType": "VariableDeclaration", "scope": 373, "src": "5277:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 370, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5277:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5115:180:2" }, "src": "5095:201:2" }, { "anonymous": false, "documentation": "Event emitted when a market was updated.", "id": 393, "name": "MarketUpdated", "nodeType": "EventDefinition", "parameters": { "id": 392, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 375, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 393, "src": "5372:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 374, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5372:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 377, "indexed": false, "name": "marketSeq", "nodeType": "VariableDeclaration", "scope": 393, "src": "5398:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 376, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "5398:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 379, "indexed": false, "name": "owner", "nodeType": "VariableDeclaration", "scope": 393, "src": "5416:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 378, "name": "address", "nodeType": "ElementaryTypeName", "src": "5416:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 381, "indexed": false, "name": "terms", "nodeType": "VariableDeclaration", "scope": 393, "src": "5431:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 380, "name": "string", "nodeType": "ElementaryTypeName", "src": "5431:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 383, "indexed": false, "name": "meta", "nodeType": "VariableDeclaration", "scope": 393, "src": "5445:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 382, "name": "string", "nodeType": "ElementaryTypeName", "src": "5445:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 385, "indexed": false, "name": "maker", "nodeType": "VariableDeclaration", "scope": 393, "src": "5466:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 384, "name": "address", "nodeType": "ElementaryTypeName", "src": "5466:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 387, "indexed": false, "name": "providerSecurity", "nodeType": "VariableDeclaration", "scope": 393, "src": "5481:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 386, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5481:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 389, "indexed": false, "name": "consumerSecurity", "nodeType": "VariableDeclaration", "scope": 393, "src": "5507:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 388, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5507:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 391, "indexed": false, "name": "marketFee", "nodeType": "VariableDeclaration", "scope": 393, "src": "5533:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 390, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5533:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5371:180:2" }, "src": "5351:201:2" }, { "anonymous": false, "documentation": "Event emitted when a market was closed.", "id": 397, "name": "MarketClosed", "nodeType": "EventDefinition", "parameters": { "id": 396, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 395, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 397, "src": "5626:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 394, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5626:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "5625:26:2" }, "src": "5606:46:2" }, { "anonymous": false, "documentation": "Event emitted when a new actor joined a market.", "id": 407, "name": "ActorJoined", "nodeType": "EventDefinition", "parameters": { "id": 406, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 399, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 407, "src": "5733:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 398, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5733:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 401, "indexed": false, "name": "actor", "nodeType": "VariableDeclaration", "scope": 407, "src": "5759:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 400, "name": "address", "nodeType": "ElementaryTypeName", "src": "5759:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 403, "indexed": false, "name": "actorType", "nodeType": "VariableDeclaration", "scope": 407, "src": "5774:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, "typeName": { "contractScope": null, "id": 402, "name": "ActorType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 183, "src": "5774:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 405, "indexed": false, "name": "security", "nodeType": "VariableDeclaration", "scope": 407, "src": "5795:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 404, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5795:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "5732:80:2" }, "src": "5714:99:2" }, { "anonymous": false, "documentation": "Event emitted when an actor has left a market.", "id": 413, "name": "ActorLeft", "nodeType": "EventDefinition", "parameters": { "id": 412, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 409, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 413, "src": "5891:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 408, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "5891:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 411, "indexed": false, "name": "actor", "nodeType": "VariableDeclaration", "scope": 413, "src": "5917:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 410, "name": "address", "nodeType": "ElementaryTypeName", "src": "5917:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "5890:41:2" }, "src": "5874:58:2" }, { "anonymous": false, "documentation": "Event emitted when a new payment channel was created in a market.", "id": 425, "name": "PaymentChannelCreated", "nodeType": "EventDefinition", "parameters": { "id": 424, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 415, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 425, "src": "6041:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 414, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "6041:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 417, "indexed": false, "name": "sender", "nodeType": "VariableDeclaration", "scope": 425, "src": "6067:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 416, "name": "address", "nodeType": "ElementaryTypeName", "src": "6067:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 419, "indexed": false, "name": "delegate", "nodeType": "VariableDeclaration", "scope": 425, "src": "6083:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 418, "name": "address", "nodeType": "ElementaryTypeName", "src": "6083:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 421, "indexed": false, "name": "receiver", "nodeType": "VariableDeclaration", "scope": 425, "src": "6109:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 420, "name": "address", "nodeType": "ElementaryTypeName", "src": "6109:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 423, "indexed": false, "name": "channel", "nodeType": "VariableDeclaration", "scope": 425, "src": "6127:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 422, "name": "address", "nodeType": "ElementaryTypeName", "src": "6127:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "6040:103:2" }, "src": "6012:132:2" }, { "anonymous": false, "documentation": "Event emitted when a new request for a paying channel was created in a market.", "id": 439, "name": "PayingChannelRequestCreated", "nodeType": "EventDefinition", "parameters": { "id": 438, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 427, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 439, "src": "6272:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 426, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "6272:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 429, "indexed": false, "name": "sender", "nodeType": "VariableDeclaration", "scope": 439, "src": "6298:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 428, "name": "address", "nodeType": "ElementaryTypeName", "src": "6298:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 431, "indexed": false, "name": "delegate", "nodeType": "VariableDeclaration", "scope": 439, "src": "6314:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 430, "name": "address", "nodeType": "ElementaryTypeName", "src": "6314:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 433, "indexed": false, "name": "receiver", "nodeType": "VariableDeclaration", "scope": 439, "src": "6340:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 432, "name": "address", "nodeType": "ElementaryTypeName", "src": "6340:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 435, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", "scope": 439, "src": "6358:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 434, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6358:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 437, "indexed": false, "name": "timeout", "nodeType": "VariableDeclaration", "scope": 439, "src": "6374:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 436, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "6374:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" } ], "src": "6271:118:2" }, "src": "6237:153:2" }, { "constant": false, "id": 442, "name": "marketSeq", "nodeType": "VariableDeclaration", "scope": 2111, "src": "6614:28:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 440, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "6614:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "argumentTypes": null, "hexValue": "31", "id": 441, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6641:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "visibility": "private" }, { "constant": false, "id": 445, "name": "domainSeq", "nodeType": "VariableDeclaration", "scope": 2111, "src": "6768:28:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 443, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "6768:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "argumentTypes": null, "hexValue": "31", "id": 444, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6795:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "visibility": "private" }, { "constant": false, "id": 447, "name": "token", "nodeType": "VariableDeclaration", "scope": 2111, "src": "6892:20:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 446, "name": "address", "nodeType": "ElementaryTypeName", "src": "6892:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 449, "name": "organization", "nodeType": "VariableDeclaration", "scope": 2111, "src": "6993:27:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 448, "name": "address", "nodeType": "ElementaryTypeName", "src": "6993:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 453, "name": "members", "nodeType": "VariableDeclaration", "scope": 2111, "src": "7085:42:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member)" }, "typeName": { "id": 452, "keyType": { "id": 450, "name": "address", "nodeType": "ElementaryTypeName", "src": "7093:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "7085:26:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member)" }, "valueType": { "contractScope": null, "id": 451, "name": "Member", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 199, "src": "7104:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage_ptr", "typeString": "struct XBRNetwork.Member" } } }, "value": null, "visibility": "private" }, { "constant": false, "id": 457, "name": "domains", "nodeType": "VariableDeclaration", "scope": 2111, "src": "7183:42:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain)" }, "typeName": { "id": 456, "keyType": { "id": 454, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7191:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Mapping", "src": "7183:26:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain)" }, "valueType": { "contractScope": null, "id": 455, "name": "Domain", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 217, "src": "7202:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage_ptr", "typeString": "struct XBRNetwork.Domain" } } }, "value": null, "visibility": "private" }, { "constant": false, "id": 461, "name": "nodes", "nodeType": "VariableDeclaration", "scope": 2111, "src": "7278:38:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node)" }, "typeName": { "id": 460, "keyType": { "id": 458, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7286:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Mapping", "src": "7278:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node)" }, "valueType": { "contractScope": null, "id": 459, "name": "Node", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 226, "src": "7297:4:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage_ptr", "typeString": "struct XBRNetwork.Node" } } }, "value": null, "visibility": "private" }, { "constant": false, "id": 465, "name": "nodesByKey", "nodeType": "VariableDeclaration", "scope": 2111, "src": "7378:46:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes16_$", "typeString": "mapping(bytes32 => bytes16)" }, "typeName": { "id": 464, "keyType": { "id": 462, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "7386:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", "src": "7378:27:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes16_$", "typeString": "mapping(bytes32 => bytes16)" }, "valueType": { "id": 463, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7397:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } }, "value": null, "visibility": "private" }, { "constant": false, "id": 469, "name": "markets", "nodeType": "VariableDeclaration", "scope": 2111, "src": "7480:42:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market)" }, "typeName": { "id": 468, "keyType": { "id": 466, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7488:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Mapping", "src": "7480:26:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market)" }, "valueType": { "contractScope": null, "id": 467, "name": "Market", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 253, "src": "7499:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market" } } }, "value": null, "visibility": "private" }, { "constant": false, "id": 473, "name": "marketsByMaker", "nodeType": "VariableDeclaration", "scope": 2111, "src": "7571:50:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes16_$", "typeString": "mapping(address => bytes16)" }, "typeName": { "id": 472, "keyType": { "id": 470, "name": "address", "nodeType": "ElementaryTypeName", "src": "7579:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "7571:27:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes16_$", "typeString": "mapping(address => bytes16)" }, "valueType": { "id": 471, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "7590:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } }, "value": null, "visibility": "private" }, { "body": { "id": 500, "nodeType": "Block", "src": "7877:138:2", "statements": [ { "expression": { "argumentTypes": null, "id": 482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 480, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 447, "src": "7887:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 481, "name": "token_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 475, "src": "7895:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7887:14:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 483, "nodeType": "ExpressionStatement", "src": "7887:14:2" }, { "expression": { "argumentTypes": null, "id": 486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 484, "name": "organization", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 449, "src": "7911:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 485, "name": "organization_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 477, "src": "7926:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7911:28:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 487, "nodeType": "ExpressionStatement", "src": "7911:28:2" }, { "expression": { "argumentTypes": null, "id": 498, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 488, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "7950:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 491, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 489, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "7958:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7958:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7950:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "", "id": 493, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7979:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "hexValue": "", "id": 494, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7983:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 495, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "7987:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 496, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7987:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } ], "id": 492, "name": "Member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "7972:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Member_$199_storage_ptr_$", "typeString": "type(struct XBRNetwork.Member storage pointer)" } }, "id": 497, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7972:36:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_memory", "typeString": "struct XBRNetwork.Member memory" } }, "src": "7950:58:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 499, "nodeType": "ExpressionStatement", "src": "7950:58:2" } ] }, "documentation": "Create a new network.\n * @param token_ The token to run this network on.\n@param organization_ The network technology provider and ecosystem sponsor.", "id": 501, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 478, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 475, "name": "token_", "nodeType": "VariableDeclaration", "scope": 501, "src": "7831:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 474, "name": "address", "nodeType": "ElementaryTypeName", "src": "7831:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 477, "name": "organization_", "nodeType": "VariableDeclaration", "scope": 501, "src": "7847:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 476, "name": "address", "nodeType": "ElementaryTypeName", "src": "7847:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "7830:39:2" }, "returnParameters": { "id": 479, "nodeType": "ParameterList", "parameters": [], "src": "7877:0:2" }, "scope": 2111, "src": "7818:197:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 559, "nodeType": "Block", "src": "8675:394:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 510, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "8698:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 513, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 511, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "8706:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8706:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "8698:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 514, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "8698:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } ], "id": 509, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8693:4:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 515, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8693:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 516, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8728:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "8693:36:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4d454d4245525f414c52454144595f52454749535445524544", "id": 518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8731:27:2", "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": 508, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "8685:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 519, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8685:74:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 520, "nodeType": "ExpressionStatement", "src": "8685:74:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 525, "name": "eula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 503, "src": "8798:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 523, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3276, "src": "8787:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 524, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8787:10:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 526, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8787:16:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 522, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "8777:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 527, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8777:27:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "516d553747697a6272653137783656325652315132474a456a7a366d38533162586d427456785332766d76623831", "id": 531, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8845:48:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e5d0096375649ffe309269d7231c1b629281fa9e253bbfd117e74f530856a29f", "typeString": "literal_string \"QmU7Gizbre17x6V2VR1Q2GJEjz6m8S1bXmBtVxS2vmvb81\"" }, "value": "QmU7Gizbre17x6V2VR1Q2GJEjz6m8S1bXmBtVxS2vmvb81" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_e5d0096375649ffe309269d7231c1b629281fa9e253bbfd117e74f530856a29f", "typeString": "literal_string \"QmU7Gizbre17x6V2VR1Q2GJEjz6m8S1bXmBtVxS2vmvb81\"" } ], "expression": { "argumentTypes": null, "id": 529, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3276, "src": "8834:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 530, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8834:10:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 532, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8834:60:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 528, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "8824:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 533, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8824:71:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "8777:118:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f45554c41", "id": 535, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8897:14:2", "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": 521, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "8769:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 536, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8769:143:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 537, "nodeType": "ExpressionStatement", "src": "8769:143:2" }, { "expression": { "argumentTypes": null, "id": 548, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 538, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "8923:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 541, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 539, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "8931:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8931:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "8923:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 543, "name": "eula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 503, "src": "8952:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 544, "name": "profile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 505, "src": "8958:7:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 545, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "8967:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 546, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8967:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } ], "id": 542, "name": "Member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 199, "src": "8945:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Member_$199_storage_ptr_$", "typeString": "type(struct XBRNetwork.Member storage pointer)" } }, "id": 547, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8945:41:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_memory", "typeString": "struct XBRNetwork.Member memory" } }, "src": "8923:63:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 549, "nodeType": "ExpressionStatement", "src": "8923:63:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 551, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "9016:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 552, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9016:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 553, "name": "eula", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 503, "src": "9028:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 554, "name": "profile", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 505, "src": "9034:7:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 555, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "9043:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 556, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9043:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } ], "id": 550, "name": "MemberCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 281, "src": "9002:13:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_enum$_MemberLevel_$177_$returns$__$", "typeString": "function (address,string memory,string memory,enum XBRNetwork.MemberLevel)" } }, "id": 557, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9002:60:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 558, "nodeType": "EmitStatement", "src": "8997:65:2" } ] }, "documentation": "Join the XBR Network. All XBR stakeholders, namely XBR Data Providers,\nXBR Data Consumers, XBR Data Markets and XBR Data Clouds, must register\nwith the XBR Network on the global blockchain by calling this function.\n * @param eula The IPFS Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS.\n Currently, this must be equal to \"QmU7Gizbre17x6V2VR1Q2GJEjz6m8S1bXmBtVxS2vmvb81\"\n@param profile Optional public member profile: the IPFS Multihash of the member profile stored in IPFS.", "id": 560, "implemented": true, "kind": "function", "modifiers": [], "name": "register", "nodeType": "FunctionDefinition", "parameters": { "id": 506, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 503, "name": "eula", "nodeType": "VariableDeclaration", "scope": 560, "src": "8625:18:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 502, "name": "string", "nodeType": "ElementaryTypeName", "src": "8625:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 505, "name": "profile", "nodeType": "VariableDeclaration", "scope": 560, "src": "8645:21:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 504, "name": "string", "nodeType": "ElementaryTypeName", "src": "8645:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "8624:43:2" }, "returnParameters": { "id": 507, "nodeType": "ParameterList", "parameters": [], "src": "8675:0:2" }, "scope": 2111, "src": "8606:463:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 590, "nodeType": "Block", "src": "9151:261:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 565, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "9174:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 568, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 566, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "9182:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9182:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9174:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 569, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "9174:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } ], "id": 564, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9169:4:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 570, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9169:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 571, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9204:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "9169:36:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d454d424552", "id": 573, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9207:16:2", "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": 563, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "9161:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 574, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9161:63:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 575, "nodeType": "ExpressionStatement", "src": "9161:63:2" }, { "expression": { "argumentTypes": null, "id": 583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 576, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "9317:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 579, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 577, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "9325:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9325:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9317:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 580, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "9317:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 581, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "9345:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 582, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "RETIRED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9345:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "src": "9317:47:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "id": 584, "nodeType": "ExpressionStatement", "src": "9317:47:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 586, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "9394:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9394:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 585, "name": "MemberRetired", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 285, "src": "9380:13:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 588, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9380:25:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 589, "nodeType": "EmitStatement", "src": "9375:30:2" } ] }, "documentation": "Leave the XBR Network.", "id": 591, "implemented": true, "kind": "function", "modifiers": [], "name": "unregister", "nodeType": "FunctionDefinition", "parameters": { "id": 561, "nodeType": "ParameterList", "parameters": [], "src": "9141:2:2" }, "returnParameters": { "id": 562, "nodeType": "ParameterList", "parameters": [], "src": "9151:0:2" }, "scope": 2111, "src": "9121:291:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 603, "nodeType": "Block", "src": "9706:45:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 598, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "9723:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 600, "indexExpression": { "argumentTypes": null, "id": 599, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 593, "src": "9731:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "9723:15:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 601, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "9723:21:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "functionReturnParameters": 597, "id": 602, "nodeType": "Return", "src": "9716:28:2" } ] }, "documentation": "Returns XBR Network member level given an address.\n * @param member The address to lookup the XBR Network member level for.\n@return The current member level of the member.", "id": 604, "implemented": true, "kind": "function", "modifiers": [], "name": "getMemberLevel", "nodeType": "FunctionDefinition", "parameters": { "id": 594, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 593, "name": "member", "nodeType": "VariableDeclaration", "scope": 604, "src": "9656:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 592, "name": "address", "nodeType": "ElementaryTypeName", "src": "9656:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "9655:16:2" }, "returnParameters": { "id": 597, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 596, "name": "", "nodeType": "VariableDeclaration", "scope": 604, "src": "9693:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "typeName": { "contractScope": null, "id": 595, "name": "MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 177, "src": "9693:11:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "value": null, "visibility": "internal" } ], "src": "9692:13:2" }, "scope": 2111, "src": "9631:120:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 616, "nodeType": "Block", "src": "10062:44:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 611, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "10079:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 613, "indexExpression": { "argumentTypes": null, "id": 612, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 606, "src": "10087:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10079:15:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 614, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "eula", "nodeType": "MemberAccess", "referencedDeclaration": 194, "src": "10079:20:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 610, "id": 615, "nodeType": "Return", "src": "10072:27:2" } ] }, "documentation": "Returns XBR Network member EULA given an address.\n * @param member The address to lookup the XBR Network member EULA for.\n@return IPFS Multihash pointing to XBR Network EULA file on IPFS.", "id": 617, "implemented": true, "kind": "function", "modifiers": [], "name": "getMemberEula", "nodeType": "FunctionDefinition", "parameters": { "id": 607, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 606, "name": "member", "nodeType": "VariableDeclaration", "scope": 617, "src": "10010:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 605, "name": "address", "nodeType": "ElementaryTypeName", "src": "10010:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "10009:16:2" }, "returnParameters": { "id": 610, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 609, "name": "", "nodeType": "VariableDeclaration", "scope": 617, "src": "10047:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 608, "name": "string", "nodeType": "ElementaryTypeName", "src": "10047:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "10046:15:2" }, "scope": 2111, "src": "9986:120:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 629, "nodeType": "Block", "src": "10424:47:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 624, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "10441:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 626, "indexExpression": { "argumentTypes": null, "id": 625, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 619, "src": "10449:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10441:15:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 627, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "profile", "nodeType": "MemberAccess", "referencedDeclaration": 196, "src": "10441:23:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 623, "id": 628, "nodeType": "Return", "src": "10434:30:2" } ] }, "documentation": "Returns XBR Network member profile given an address.\n * @param member The address to lookup the XBR Network member profile for.\n@return IPFS Multihash pointing to member profile file on IPFS.", "id": 630, "implemented": true, "kind": "function", "modifiers": [], "name": "getMemberProfile", "nodeType": "FunctionDefinition", "parameters": { "id": 620, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 619, "name": "member", "nodeType": "VariableDeclaration", "scope": 630, "src": "10372:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 618, "name": "address", "nodeType": "ElementaryTypeName", "src": "10372:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "10371:16:2" }, "returnParameters": { "id": 623, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 622, "name": "", "nodeType": "VariableDeclaration", "scope": 630, "src": "10409:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 621, "name": "string", "nodeType": "ElementaryTypeName", "src": "10409:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "10408:15:2" }, "scope": 2111, "src": "10345:126:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 659, "nodeType": "Block", "src": "11004:120:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 648, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 641, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "11027:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 644, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 642, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "11035:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11035:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11027:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 645, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "11027:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } ], "id": 640, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "11022:4:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 646, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11022:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11057:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "11022:36:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d454d424552", "id": 649, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11060:16:2", "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": 639, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "11014:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 650, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11014:63:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 651, "nodeType": "ExpressionStatement", "src": "11014:63:2" }, { "expression": { "argumentTypes": null, "id": 657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 652, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "11088:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 654, "indexExpression": { "argumentTypes": null, "id": 653, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 632, "src": "11096:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11088:15:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 655, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "11088:21:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 656, "name": "level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 634, "src": "11112:5:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "src": "11088:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "id": 658, "nodeType": "ExpressionStatement", "src": "11088:29:2" } ] }, "documentation": "Manually override the member level of a XBR Network member. Being able to do so\ncurrently serves two purposes:\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 * @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": 660, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 637, "modifierName": { "argumentTypes": null, "id": 636, "name": "onlyMaintainer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 92, "src": "10989:14:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "10989:14:2" } ], "name": "setMemberLevel", "nodeType": "FunctionDefinition", "parameters": { "id": 635, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 632, "name": "member", "nodeType": "VariableDeclaration", "scope": 660, "src": "10947:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 631, "name": "address", "nodeType": "ElementaryTypeName", "src": "10947:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 634, "name": "level", "nodeType": "VariableDeclaration", "scope": 660, "src": "10963:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "typeName": { "contractScope": null, "id": 633, "name": "MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 177, "src": "10963:11:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "value": null, "visibility": "internal" } ], "src": "10946:35:2" }, "returnParameters": { "id": 638, "nodeType": "ParameterList", "parameters": [], "src": "11004:0:2" }, "scope": 2111, "src": "10922:202:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 746, "nodeType": "Block", "src": "11821:589:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "id": 681, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 674, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "11840:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 677, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 675, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "11848:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11848:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11840:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 678, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "11840:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 679, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "11869:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 680, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11869:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "src": "11840:47:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "id": 689, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 682, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "11907:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 685, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 683, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "11915:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 684, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11915:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11907:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 686, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "11907:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 687, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "11936:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 688, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11936:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "src": "11907:49:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "11840:116:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415f4d454d424552", "id": 691, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11958:14:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_789719e83535ffb09d643a0bf25dd5104145ff4f4daf57b09a6a0db0bfdb8244", "typeString": "literal_string \"NOT_A_MEMBER\"" }, "value": "NOT_A_MEMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_789719e83535ffb09d643a0bf25dd5104145ff4f4daf57b09a6a0db0bfdb8244", "typeString": "literal_string \"NOT_A_MEMBER\"" } ], "id": 673, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "11832:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 692, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11832:141:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 693, "nodeType": "ExpressionStatement", "src": "11832:141:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 695, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "11992:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 697, "indexExpression": { "argumentTypes": null, "id": 696, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 662, "src": "12000:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11992:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 698, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "11992:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 700, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12027:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 699, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "12019:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 701, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12019:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "11992:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "444f4d41494e5f414c52454144595f455849535453", "id": 703, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12031:23:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b4b7e9e2373811d8695379dfeb48bbef6d3f260a3543cee3c19504cb2e64cde9", "typeString": "literal_string \"DOMAIN_ALREADY_EXISTS\"" }, "value": "DOMAIN_ALREADY_EXISTS" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b4b7e9e2373811d8695379dfeb48bbef6d3f260a3543cee3c19504cb2e64cde9", "typeString": "literal_string \"DOMAIN_ALREADY_EXISTS\"" } ], "id": 694, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "11984:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 704, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11984:71:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 705, "nodeType": "ExpressionStatement", "src": "11984:71:2" }, { "expression": { "argumentTypes": null, "id": 725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 706, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "12066:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 708, "indexExpression": { "argumentTypes": null, "id": 707, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 662, "src": "12074:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "12066:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 710, "name": "domainSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 445, "src": "12093:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 711, "name": "DomainStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "12104:12:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_DomainStatus_$187_$", "typeString": "type(enum XBRNetwork.DomainStatus)" } }, "id": 712, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12104:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 713, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "12125:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12125:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 715, "name": "domainKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, "src": "12137:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "id": 716, "name": "license", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 666, "src": "12184:7:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 717, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 668, "src": "12193:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 718, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 670, "src": "12200:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12220:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 721, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "12206:13:2", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes16_$dyn_memory_$", "typeString": "function (uint256) pure returns (bytes16[] memory)" }, "typeName": { "baseType": { "id": 719, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "12210:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 720, "length": null, "nodeType": "ArrayTypeName", "src": "12210:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage_ptr", "typeString": "bytes16[]" } } }, "id": 723, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12206:16:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_memory", "typeString": "bytes16[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_array$_t_bytes16_$dyn_memory", "typeString": "bytes16[] memory" } ], "id": 709, "name": "Domain", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 217, "src": "12086:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Domain_$217_storage_ptr_$", "typeString": "type(struct XBRNetwork.Domain storage pointer)" } }, "id": 724, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12086:137:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_memory", "typeString": "struct XBRNetwork.Domain memory" } }, "src": "12066:157:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 726, "nodeType": "ExpressionStatement", "src": "12066:157:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 728, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 662, "src": "12253:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 729, "name": "domainSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 445, "src": "12263:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 730, "name": "DomainStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "12274:12:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_DomainStatus_$187_$", "typeString": "type(enum XBRNetwork.DomainStatus)" } }, "id": 731, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12274:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 732, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "12295:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12295:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 734, "name": "domainKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, "src": "12307:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "id": 735, "name": "license", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 666, "src": "12346:7:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 736, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 668, "src": "12355:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 737, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 670, "src": "12362:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 727, "name": "DomainCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 303, "src": "12239:13:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_uint32_$_t_enum$_DomainStatus_$187_$_t_address_$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes16,uint32,enum XBRNetwork.DomainStatus,address,bytes32,string memory,string memory,string memory)" } }, "id": 738, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12239:128:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 739, "nodeType": "EmitStatement", "src": "12234:133:2" }, { "expression": { "argumentTypes": null, "id": 744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 740, "name": "domainSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 445, "src": "12378:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 741, "name": "domainSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 445, "src": "12390:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 742, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12402:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "12390:13:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "12378:25:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 745, "nodeType": "ExpressionStatement", "src": "12378:25:2" } ] }, "documentation": " Create a new XBR domain. Then sender to the transaction must be XBR network member\n and automatically becomes owner of the new domain.\n * @param domainId The ID of the domain to create. Must be globally unique (not yet existing).\n @param domainKey The domain signing key. A Ed25519 (https://ed25519.cr.yp.to/) public key.\n @param license The license for the software stack running the domain. IPFS Multihash\n pointing to a JSON/YAML file signed by the project release key.", "id": 747, "implemented": true, "kind": "function", "modifiers": [], "name": "createDomain", "nodeType": "FunctionDefinition", "parameters": { "id": 671, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 662, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 747, "src": "11705:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 661, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "11705:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 664, "name": "domainKey", "nodeType": "VariableDeclaration", "scope": 747, "src": "11723:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 663, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "11723:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 666, "name": "license", "nodeType": "VariableDeclaration", "scope": 747, "src": "11742:21:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 665, "name": "string", "nodeType": "ElementaryTypeName", "src": "11742:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 668, "name": "terms", "nodeType": "VariableDeclaration", "scope": 747, "src": "11773:19:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 667, "name": "string", "nodeType": "ElementaryTypeName", "src": "11773:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 670, "name": "meta", "nodeType": "VariableDeclaration", "scope": 747, "src": "11794:18:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 669, "name": "string", "nodeType": "ElementaryTypeName", "src": "11794:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "11704:109:2" }, "returnParameters": { "id": 672, "nodeType": "ParameterList", "parameters": [], "src": "11821:0:2" }, "scope": 2111, "src": "11682:728:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 821, "nodeType": "Block", "src": "12681:591:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "id": 760, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 753, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "12699:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 756, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 754, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "12707:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12707:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12699:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 757, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "12699:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 758, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "12728:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 759, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12728:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "src": "12699:47:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" }, "id": 768, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 761, "name": "members", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 453, "src": "12766:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$199_storage_$", "typeString": "mapping(address => struct XBRNetwork.Member storage ref)" } }, "id": 764, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 762, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "12774:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 763, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12774:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12766:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$199_storage", "typeString": "struct XBRNetwork.Member storage ref" } }, "id": 765, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "level", "nodeType": "MemberAccess", "referencedDeclaration": 198, "src": "12766:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 766, "name": "MemberLevel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 177, "src": "12795:11:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$177_$", "typeString": "type(enum XBRNetwork.MemberLevel)" } }, "id": 767, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12795:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$177", "typeString": "enum XBRNetwork.MemberLevel" } }, "src": "12766:49:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12699:116:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415f4d454d424552", "id": 770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12817:14:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_789719e83535ffb09d643a0bf25dd5104145ff4f4daf57b09a6a0db0bfdb8244", "typeString": "literal_string \"NOT_A_MEMBER\"" }, "value": "NOT_A_MEMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_789719e83535ffb09d643a0bf25dd5104145ff4f4daf57b09a6a0db0bfdb8244", "typeString": "literal_string \"NOT_A_MEMBER\"" } ], "id": 752, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "12691:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 771, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12691:141:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 772, "nodeType": "ExpressionStatement", "src": "12691:141:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 781, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 774, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "12850:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 776, "indexExpression": { "argumentTypes": null, "id": 775, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 749, "src": "12858:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12850:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 777, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "12850:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 779, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12885:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 778, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "12877:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 780, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12877:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "12850:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f444f4d41494e", "id": 782, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12889:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_66e00f2b8f3be4c130536228bf87a78871a3dff90df414d3d5c6bb3cc868488f", "typeString": "literal_string \"NO_SUCH_DOMAIN\"" }, "value": "NO_SUCH_DOMAIN" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_66e00f2b8f3be4c130536228bf87a78871a3dff90df414d3d5c6bb3cc868488f", "typeString": "literal_string \"NO_SUCH_DOMAIN\"" } ], "id": 773, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "12842:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 783, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12842:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 784, "nodeType": "ExpressionStatement", "src": "12842:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 792, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 786, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "12924:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 788, "indexExpression": { "argumentTypes": null, "id": 787, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 749, "src": "12932:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12924:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 789, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "12924:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 790, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "12951:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 791, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "12951:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "12924:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415554484f52495a4544", "id": 793, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12963:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" }, "value": "NOT_AUTHORIZED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" } ], "id": 785, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "12916:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 794, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12916:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 795, "nodeType": "ExpressionStatement", "src": "12916:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, "id": 803, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 797, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "12998:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 799, "indexExpression": { "argumentTypes": null, "id": 798, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 749, "src": "13006:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12998:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 800, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 203, "src": "12998:24:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 801, "name": "DomainStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "13026:12:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_DomainStatus_$187_$", "typeString": "type(enum XBRNetwork.DomainStatus)" } }, "id": 802, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13026:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "src": "12998:47:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "444f4d41494e5f4e4f545f414354495645", "id": 804, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13047:19:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d5934f467c9994134820c728c49cf786b6afee1109118934e5958d7f51b528a0", "typeString": "literal_string \"DOMAIN_NOT_ACTIVE\"" }, "value": "DOMAIN_NOT_ACTIVE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_d5934f467c9994134820c728c49cf786b6afee1109118934e5958d7f51b528a0", "typeString": "literal_string \"DOMAIN_NOT_ACTIVE\"" } ], "id": 796, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "12990:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 805, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12990:77:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 806, "nodeType": "ExpressionStatement", "src": "12990:77:2" }, { "expression": { "argumentTypes": null, "id": 813, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 807, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "13160:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 809, "indexExpression": { "argumentTypes": null, "id": 808, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 749, "src": "13168:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13160:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 810, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 203, "src": "13160:24:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 811, "name": "DomainStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "13187:12:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_DomainStatus_$187_$", "typeString": "type(enum XBRNetwork.DomainStatus)" } }, "id": 812, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13187:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "src": "13160:46:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "id": 814, "nodeType": "ExpressionStatement", "src": "13160:46:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 816, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 749, "src": "13235:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 817, "name": "DomainStatus", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "13245:12:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_DomainStatus_$187_$", "typeString": "type(enum XBRNetwork.DomainStatus)" } }, "id": 818, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13245:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } ], "id": 815, "name": "DomainClosed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 327, "src": "13222:12:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_enum$_DomainStatus_$187_$returns$__$", "typeString": "function (bytes16,enum XBRNetwork.DomainStatus)" } }, "id": 819, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13222:43:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 820, "nodeType": "EmitStatement", "src": "13217:48:2" } ] }, "documentation": "Close an existing XBR domain. The sender must be owner of the domain, and the domain\nmust not have any nodes paired (anymore).\n * @param domainId The ID of the domain to close.", "id": 822, "implemented": true, "kind": "function", "modifiers": [], "name": "closeDomain", "nodeType": "FunctionDefinition", "parameters": { "id": 750, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 749, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 822, "src": "12656:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 748, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "12656:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "12655:18:2" }, "returnParameters": { "id": 751, "nodeType": "ParameterList", "parameters": [], "src": "12681:0:2" }, "scope": 2111, "src": "12634:638:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 834, "nodeType": "Block", "src": "13520:48:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 829, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "13537:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 831, "indexExpression": { "argumentTypes": null, "id": 830, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 824, "src": "13545:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13537:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 832, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 203, "src": "13537:24:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "functionReturnParameters": 828, "id": 833, "nodeType": "Return", "src": "13530:31:2" } ] }, "documentation": "Returns domain status.\n * @param domainId The ID of the domain to lookup status.\n@return The current status of the domain.", "id": 835, "implemented": true, "kind": "function", "modifiers": [], "name": "getDomainStatus", "nodeType": "FunctionDefinition", "parameters": { "id": 825, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 824, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 835, "src": "13467:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 823, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "13467:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "13466:18:2" }, "returnParameters": { "id": 828, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 827, "name": "", "nodeType": "VariableDeclaration", "scope": 835, "src": "13506:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" }, "typeName": { "contractScope": null, "id": 826, "name": "DomainStatus", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 187, "src": "13506:12:2", "typeDescriptions": { "typeIdentifier": "t_enum$_DomainStatus_$187", "typeString": "enum XBRNetwork.DomainStatus" } }, "value": null, "visibility": "internal" } ], "src": "13505:14:2" }, "scope": 2111, "src": "13442:126:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 847, "nodeType": "Block", "src": "13814:47:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 842, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "13831:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 844, "indexExpression": { "argumentTypes": null, "id": 843, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 837, "src": "13839:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13831:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 845, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "13831:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 841, "id": 846, "nodeType": "Return", "src": "13824:30:2" } ] }, "documentation": "Returns domain owner.\n * @param domainId The ID of the domain to lookup owner.\n@return The address of the owner of the domain.", "id": 848, "implemented": true, "kind": "function", "modifiers": [], "name": "getDomainOwner", "nodeType": "FunctionDefinition", "parameters": { "id": 838, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 837, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 848, "src": "13766:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 836, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "13766:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "13765:18:2" }, "returnParameters": { "id": 841, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 840, "name": "", "nodeType": "VariableDeclaration", "scope": 848, "src": "13805:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 839, "name": "address", "nodeType": "ElementaryTypeName", "src": "13805:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "13804:9:2" }, "scope": 2111, "src": "13742:119:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 860, "nodeType": "Block", "src": "14118:51:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 855, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "14135:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 857, "indexExpression": { "argumentTypes": null, "id": 856, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 850, "src": "14143:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14135:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 858, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "domainKey", "nodeType": "MemberAccess", "referencedDeclaration": 207, "src": "14135:27:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 854, "id": 859, "nodeType": "Return", "src": "14128:34:2" } ] }, "documentation": "Returns domain (signing) key.\n * @param domainId The ID of the domain to lookup key.\n@return The Ed25519 public signing key for the domain.", "id": 861, "implemented": true, "kind": "function", "modifiers": [], "name": "getDomainKey", "nodeType": "FunctionDefinition", "parameters": { "id": 851, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 850, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 861, "src": "14070:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 849, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "14070:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "14069:18:2" }, "returnParameters": { "id": 854, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 853, "name": "", "nodeType": "VariableDeclaration", "scope": 861, "src": "14109:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 852, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "14109:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "14108:9:2" }, "scope": 2111, "src": "14048:121:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 873, "nodeType": "Block", "src": "14442:49:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 868, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "14459:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 870, "indexExpression": { "argumentTypes": null, "id": 869, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 863, "src": "14467:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14459:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 871, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "license", "nodeType": "MemberAccess", "referencedDeclaration": 209, "src": "14459:25:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 867, "id": 872, "nodeType": "Return", "src": "14452:32:2" } ] }, "documentation": "Returns domain license.\n * @param domainId The ID of the domain to lookup license.\n@return IPFS Multihash pointer to domain license file on IPFS.", "id": 874, "implemented": true, "kind": "function", "modifiers": [], "name": "getDomainLicense", "nodeType": "FunctionDefinition", "parameters": { "id": 864, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 863, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 874, "src": "14388:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 862, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "14388:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "14387:18:2" }, "returnParameters": { "id": 867, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 866, "name": "", "nodeType": "VariableDeclaration", "scope": 874, "src": "14427:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 865, "name": "string", "nodeType": "ElementaryTypeName", "src": "14427:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "14426:15:2" }, "scope": 2111, "src": "14362:129:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 886, "nodeType": "Block", "src": "14751:47:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 881, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "14768:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 883, "indexExpression": { "argumentTypes": null, "id": 882, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 876, "src": "14776:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14768:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 884, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "terms", "nodeType": "MemberAccess", "referencedDeclaration": 211, "src": "14768:23:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 880, "id": 885, "nodeType": "Return", "src": "14761:30:2" } ] }, "documentation": "Returns domain terms.\n * @param domainId The ID of the domain to lookup terms.\n@return IPFS Multihash pointer to domain terms on IPFS.", "id": 887, "implemented": true, "kind": "function", "modifiers": [], "name": "getDomainTerms", "nodeType": "FunctionDefinition", "parameters": { "id": 877, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 876, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 887, "src": "14697:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 875, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "14697:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "14696:18:2" }, "returnParameters": { "id": 880, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 879, "name": "", "nodeType": "VariableDeclaration", "scope": 887, "src": "14736:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 878, "name": "string", "nodeType": "ElementaryTypeName", "src": "14736:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "14735:15:2" }, "scope": 2111, "src": "14673:125:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 899, "nodeType": "Block", "src": "15073:46:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 894, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "15090:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 896, "indexExpression": { "argumentTypes": null, "id": 895, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 889, "src": "15098:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15090:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 897, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "meta", "nodeType": "MemberAccess", "referencedDeclaration": 213, "src": "15090:22:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 893, "id": 898, "nodeType": "Return", "src": "15083:29:2" } ] }, "documentation": "Returns domain meta data.\n * @param domainId The ID of the domain to lookup meta data.\n@return IPFS Multihash pointer to domain metadata file on IPFS.", "id": 900, "implemented": true, "kind": "function", "modifiers": [], "name": "getDomainMeta", "nodeType": "FunctionDefinition", "parameters": { "id": 890, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 889, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 900, "src": "15019:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 888, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "15019:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "15018:18:2" }, "returnParameters": { "id": 893, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 892, "name": "", "nodeType": "VariableDeclaration", "scope": 900, "src": "15058:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 891, "name": "string", "nodeType": "ElementaryTypeName", "src": "15058:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "15057:15:2" }, "scope": 2111, "src": "14996:123:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1012, "nodeType": "Block", "src": "15728:659:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 921, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 914, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "15747:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 916, "indexExpression": { "argumentTypes": null, "id": 915, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "15755:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15747:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 917, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "15747:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "15782:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 918, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "15774:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 920, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15774:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "15747:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f444f4d41494e", "id": 922, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15786:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_66e00f2b8f3be4c130536228bf87a78871a3dff90df414d3d5c6bb3cc868488f", "typeString": "literal_string \"NO_SUCH_DOMAIN\"" }, "value": "NO_SUCH_DOMAIN" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_66e00f2b8f3be4c130536228bf87a78871a3dff90df414d3d5c6bb3cc868488f", "typeString": "literal_string \"NO_SUCH_DOMAIN\"" } ], "id": 913, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "15739:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 923, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15739:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 924, "nodeType": "ExpressionStatement", "src": "15739:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 932, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 926, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "15821:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 928, "indexExpression": { "argumentTypes": null, "id": 927, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "15829:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15821:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 929, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "15821:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 930, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "15848:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "15848:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "15821:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415554484f52495a4544", "id": 933, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15860:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" }, "value": "NOT_AUTHORIZED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" } ], "id": 925, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "15813:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 934, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15813:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 935, "nodeType": "ExpressionStatement", "src": "15813:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 938, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "15901:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 940, "indexExpression": { "argumentTypes": null, "id": 939, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 902, "src": "15907:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15901:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 941, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "nodeType", "nodeType": "MemberAccess", "referencedDeclaration": 221, "src": "15901:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } ], "id": 937, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "15895:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 942, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15895:29:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 943, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "15928:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "15895:34:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f44455f414c52454144595f504149524544", "id": 945, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15931:21:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_947f43fbe6957fe97ec59d1155f3d7661456dd2152a74433d4847d7685937676", "typeString": "literal_string \"NODE_ALREADY_PAIRED\"" }, "value": "NODE_ALREADY_PAIRED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_947f43fbe6957fe97ec59d1155f3d7661456dd2152a74433d4847d7685937676", "typeString": "literal_string \"NODE_ALREADY_PAIRED\"" } ], "id": 936, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "15887:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 946, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15887:66:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 947, "nodeType": "ExpressionStatement", "src": "15887:66:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "id": 955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 949, "name": "nodesByKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 465, "src": "15971:10:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes16_$", "typeString": "mapping(bytes32 => bytes16)" } }, "id": 951, "indexExpression": { "argumentTypes": null, "id": 950, "name": "nodeKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 908, "src": "15982:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15971:19:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "16002:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 952, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "15994:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes16_$", "typeString": "type(bytes16)" }, "typeName": "bytes16" }, "id": 954, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15994:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "15971:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4455504c49434154455f4e4f44455f4b4559", "id": 956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16006:20:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c983f70de7ce8b128c41fc15139109c4e51114479840ba67e65d247188782195", "typeString": "literal_string \"DUPLICATE_NODE_KEY\"" }, "value": "DUPLICATE_NODE_KEY" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c983f70de7ce8b128c41fc15139109c4e51114479840ba67e65d247188782195", "typeString": "literal_string \"DUPLICATE_NODE_KEY\"" } ], "id": 948, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "15963:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 957, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15963:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 958, "nodeType": "ExpressionStatement", "src": "15963:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 961, "name": "nodeType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 906, "src": "16051:8:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } ], "id": 960, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16045:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 962, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16045:15:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 964, "name": "NodeType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 192, "src": "16070:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_NodeType_$192_$", "typeString": "type(enum XBRNetwork.NodeType)" } }, "id": 965, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "MASTER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "16070:15:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } ], "id": 963, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16064:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16064:22:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "16045:41:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 975, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 969, "name": "nodeType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 906, "src": "16112:8:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } ], "id": 968, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16106:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 970, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16106:15:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 972, "name": "NodeType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 192, "src": "16131:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_NodeType_$192_$", "typeString": "type(enum XBRNetwork.NodeType)" } }, "id": 973, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "EDGE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "16131:13:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } ], "id": 971, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16125:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16125:20:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "16106:39:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "16045:100:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4e4f44455f54595045", "id": 977, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16147:19:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_82d65450c4fcda82ec7e0f71e6af3935b97b18a6ae8d6319dfa9c0d346e5fe20", "typeString": "literal_string \"INVALID_NODE_TYPE\"" }, "value": "INVALID_NODE_TYPE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_82d65450c4fcda82ec7e0f71e6af3935b97b18a6ae8d6319dfa9c0d346e5fe20", "typeString": "literal_string \"INVALID_NODE_TYPE\"" } ], "id": 959, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "16037:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 978, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16037:130:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 979, "nodeType": "ExpressionStatement", "src": "16037:130:2" }, { "expression": { "argumentTypes": null, "id": 989, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 980, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16178:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 982, "indexExpression": { "argumentTypes": null, "id": 981, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 902, "src": "16184:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "16178:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 984, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "16199:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 985, "name": "nodeType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 906, "src": "16209:8:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, { "argumentTypes": null, "id": 986, "name": "nodeKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 908, "src": "16219:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "id": 987, "name": "config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 910, "src": "16228:6:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 983, "name": "Node", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 226, "src": "16194:4:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Node_$226_storage_ptr_$", "typeString": "type(struct XBRNetwork.Node storage pointer)" } }, "id": 988, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16194:41:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_memory", "typeString": "struct XBRNetwork.Node memory" } }, "src": "16178:57:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 990, "nodeType": "ExpressionStatement", "src": "16178:57:2" }, { "expression": { "argumentTypes": null, "id": 995, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 991, "name": "nodesByKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 465, "src": "16245:10:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes16_$", "typeString": "mapping(bytes32 => bytes16)" } }, "id": 993, "indexExpression": { "argumentTypes": null, "id": 992, "name": "nodeKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 908, "src": "16256:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "16245:19:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 994, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 902, "src": "16267:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "16245:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 996, "nodeType": "ExpressionStatement", "src": "16245:28:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1002, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 902, "src": "16312:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 997, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "16283:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 999, "indexExpression": { "argumentTypes": null, "id": 998, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "16291:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16283:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 1000, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "nodes", "nodeType": "MemberAccess", "referencedDeclaration": 216, "src": "16283:23:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes16_$dyn_storage", "typeString": "bytes16[] storage ref" } }, "id": 1001, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "16283:28:2", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes16_$returns$_t_uint256_$", "typeString": "function (bytes16) returns (uint256)" } }, "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16283:36:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1004, "nodeType": "ExpressionStatement", "src": "16283:36:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1006, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 904, "src": "16346:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1007, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 902, "src": "16356:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1008, "name": "nodeKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 908, "src": "16364:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "argumentTypes": null, "id": 1009, "name": "config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 910, "src": "16373:6:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 1005, "name": "NodePaired", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 337, "src": "16335:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_bytes16_$_t_bytes32_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bytes16,bytes16,bytes32,string memory)" } }, "id": 1010, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16335:45:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1011, "nodeType": "EmitStatement", "src": "16330:50:2" } ] }, "documentation": "Pair a node with an existing XBR Domain. The sender must be owner of the domain.\n * @param nodeId The ID of the node to pair. Must be globally unique (not yet existing).\n@param domainId The ID of the domain to pair the node with.\n@param nodeType The type of node to pair the node under.\n@param nodeKey The Ed25519 public node key.\n@param config Optional IPFS Multihash pointing to node configuration stored on IPFS", "id": 1013, "implemented": true, "kind": "function", "modifiers": [], "name": "pairNode", "nodeType": "FunctionDefinition", "parameters": { "id": 911, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 902, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 1013, "src": "15621:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 901, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "15621:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 904, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 1013, "src": "15637:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 903, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "15637:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 906, "name": "nodeType", "nodeType": "VariableDeclaration", "scope": 1013, "src": "15655:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" }, "typeName": { "contractScope": null, "id": 905, "name": "NodeType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 192, "src": "15655:8:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 908, "name": "nodeKey", "nodeType": "VariableDeclaration", "scope": 1013, "src": "15674:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 907, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "15674:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 910, "name": "config", "nodeType": "VariableDeclaration", "scope": 1013, "src": "15699:20:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 909, "name": "string", "nodeType": "ElementaryTypeName", "src": "15699:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "15620:100:2" }, "returnParameters": { "id": 912, "nodeType": "ParameterList", "parameters": [], "src": "15728:0:2" }, "scope": 2111, "src": "15602:785:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1104, "nodeType": "Block", "src": "16612:513:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1020, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16636:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1022, "indexExpression": { "argumentTypes": null, "id": 1021, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16642:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16636:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1023, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "nodeType", "nodeType": "MemberAccess", "referencedDeclaration": 221, "src": "16636:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } ], "id": 1019, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16630:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1024, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16630:29:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1025, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "16663:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "16630:34:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4e4f4445", "id": 1027, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16666:14:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c397149c018319a1fa3bb02402bbe8eb6a69e75c489fa3116ff70d2b5db0219f", "typeString": "literal_string \"NO_SUCH_NODE\"" }, "value": "NO_SUCH_NODE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c397149c018319a1fa3bb02402bbe8eb6a69e75c489fa3116ff70d2b5db0219f", "typeString": "literal_string \"NO_SUCH_NODE\"" } ], "id": 1018, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "16622:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16622:59:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1029, "nodeType": "ExpressionStatement", "src": "16622:59:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1040, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1031, "name": "domains", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 457, "src": "16699:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Domain_$217_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Domain storage ref)" } }, "id": 1036, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1032, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16707:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1034, "indexExpression": { "argumentTypes": null, "id": 1033, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16713:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16707:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1035, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "domain", "nodeType": "MemberAccess", "referencedDeclaration": 219, "src": "16707:20:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16699:29:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Domain_$217_storage", "typeString": "struct XBRNetwork.Domain storage ref" } }, "id": 1037, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 205, "src": "16699:35:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1038, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "16738:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "16738:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "16699:49:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415554484f52495a4544", "id": 1041, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "16750:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" }, "value": "NOT_AUTHORIZED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" } ], "id": 1030, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "16691:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1042, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16691:76:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1043, "nodeType": "ExpressionStatement", "src": "16691:76:2" }, { "assignments": [ 1045 ], "declarations": [ { "constant": false, "id": 1045, "name": "domainId", "nodeType": "VariableDeclaration", "scope": 1104, "src": "16778:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1044, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "16778:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "id": 1050, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1046, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16797:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1048, "indexExpression": { "argumentTypes": null, "id": 1047, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16803:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16797:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1049, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "domain", "nodeType": "MemberAccess", "referencedDeclaration": 219, "src": "16797:20:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "VariableDeclarationStatement", "src": "16778:39:2" }, { "assignments": [ 1052 ], "declarations": [ { "constant": false, "id": 1052, "name": "nodeKey", "nodeType": "VariableDeclaration", "scope": 1104, "src": "16827:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 1051, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "16827:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "id": 1057, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1053, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16845:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1055, "indexExpression": { "argumentTypes": null, "id": 1054, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16851:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16845:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1056, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "key", "nodeType": "MemberAccess", "referencedDeclaration": 223, "src": "16845:17:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "16827:35:2" }, { "expression": { "argumentTypes": null, "id": 1065, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1058, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16873:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1060, "indexExpression": { "argumentTypes": null, "id": 1059, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16879:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16873:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1061, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "domain", "nodeType": "MemberAccess", "referencedDeclaration": 219, "src": "16873:20:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1063, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "16904:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1062, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16896:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes16_$", "typeString": "type(bytes16)" }, "typeName": "bytes16" }, "id": 1064, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16896:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "16873:33:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 1066, "nodeType": "ExpressionStatement", "src": "16873:33:2" }, { "expression": { "argumentTypes": null, "id": 1073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1067, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16916:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1069, "indexExpression": { "argumentTypes": null, "id": 1068, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16922:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16916:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1070, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "nodeType", "nodeType": "MemberAccess", "referencedDeclaration": 221, "src": "16916:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1071, "name": "NodeType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 192, "src": "16941:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_NodeType_$192_$", "typeString": "type(enum XBRNetwork.NodeType)" } }, "id": 1072, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "NULL", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "16941:13:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "src": "16916:38:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "id": 1074, "nodeType": "ExpressionStatement", "src": "16916:38:2" }, { "expression": { "argumentTypes": null, "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1075, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "16964:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1077, "indexExpression": { "argumentTypes": null, "id": 1076, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "16970:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16964:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1078, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "key", "nodeType": "MemberAccess", "referencedDeclaration": 223, "src": "16964:17:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1080, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "16992:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1079, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16984:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": "bytes32" }, "id": 1081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16984:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "16964:30:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 1083, "nodeType": "ExpressionStatement", "src": "16964:30:2" }, { "expression": { "argumentTypes": null, "id": 1089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1084, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "17004:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1086, "indexExpression": { "argumentTypes": null, "id": 1085, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "17010:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17004:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1087, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "config", "nodeType": "MemberAccess", "referencedDeclaration": 225, "src": "17004:20:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "", "id": 1088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "17027:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "src": "17004:25:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 1090, "nodeType": "ExpressionStatement", "src": "17004:25:2" }, { "expression": { "argumentTypes": null, "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1091, "name": "nodesByKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 465, "src": "17040:10:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes16_$", "typeString": "mapping(bytes32 => bytes16)" } }, "id": 1093, "indexExpression": { "argumentTypes": null, "id": 1092, "name": "nodeKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1052, "src": "17051:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "17040:19:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1095, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "17070:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1094, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "17062:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes16_$", "typeString": "type(bytes16)" }, "typeName": "bytes16" }, "id": 1096, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17062:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "17040:32:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 1098, "nodeType": "ExpressionStatement", "src": "17040:32:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1100, "name": "domainId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1045, "src": "17101:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1101, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1015, "src": "17111:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "id": 1099, "name": "NodeReleased", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 353, "src": "17088:12:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_bytes16_$returns$__$", "typeString": "function (bytes16,bytes16)" } }, "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17088:30:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1103, "nodeType": "EmitStatement", "src": "17083:35:2" } ] }, "documentation": "Release a node currently paired with an XBR domain. The sender must be owner of the domain.\n * @param nodeId The ID of the node to release.", "id": 1105, "implemented": true, "kind": "function", "modifiers": [], "name": "releaseNode", "nodeType": "FunctionDefinition", "parameters": { "id": 1016, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1015, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 1105, "src": "16589:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1014, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "16589:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "16588:16:2" }, "returnParameters": { "id": 1017, "nodeType": "ParameterList", "parameters": [], "src": "16612:0:2" }, "scope": 2111, "src": "16567:558:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1116, "nodeType": "Block", "src": "17368:43:2", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1112, "name": "nodesByKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 465, "src": "17385:10:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes16_$", "typeString": "mapping(bytes32 => bytes16)" } }, "id": 1114, "indexExpression": { "argumentTypes": null, "id": 1113, "name": "nodeKey", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1107, "src": "17396:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17385:19:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "functionReturnParameters": 1111, "id": 1115, "nodeType": "Return", "src": "17378:26:2" } ] }, "documentation": "Lookup node ID by node public key.\n * @param nodeKey The node public key to lookup\n@return The Ed25519 public key of the node.", "id": 1117, "implemented": true, "kind": "function", "modifiers": [], "name": "getNodeByKey", "nodeType": "FunctionDefinition", "parameters": { "id": 1108, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1107, "name": "nodeKey", "nodeType": "VariableDeclaration", "scope": 1117, "src": "17321:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 1106, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "17321:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "17320:17:2" }, "returnParameters": { "id": 1111, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1110, "name": "", "nodeType": "VariableDeclaration", "scope": 1117, "src": "17359:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1109, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "17359:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "17358:9:2" }, "scope": 2111, "src": "17299:112:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1129, "nodeType": "Block", "src": "17670:44:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1124, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "17687:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1126, "indexExpression": { "argumentTypes": null, "id": 1125, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1119, "src": "17693:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17687:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1127, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "domain", "nodeType": "MemberAccess", "referencedDeclaration": 219, "src": "17687:20:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "functionReturnParameters": 1123, "id": 1128, "nodeType": "Return", "src": "17680:27:2" } ] }, "documentation": "Returns domain for a node.\n * @param nodeId The ID of the node to lookup the domain for.\n@return The domain the node is currently paired with.", "id": 1130, "implemented": true, "kind": "function", "modifiers": [], "name": "getNodeDomain", "nodeType": "FunctionDefinition", "parameters": { "id": 1120, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1119, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 1130, "src": "17624:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1118, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "17624:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "17623:16:2" }, "returnParameters": { "id": 1123, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1122, "name": "", "nodeType": "VariableDeclaration", "scope": 1130, "src": "17661:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1121, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "17661:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "17660:9:2" }, "scope": 2111, "src": "17601:113:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1142, "nodeType": "Block", "src": "17947:46:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1137, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "17964:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1139, "indexExpression": { "argumentTypes": null, "id": 1138, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1132, "src": "17970:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17964:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1140, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "nodeType", "nodeType": "MemberAccess", "referencedDeclaration": 221, "src": "17964:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "functionReturnParameters": 1136, "id": 1141, "nodeType": "Return", "src": "17957:29:2" } ] }, "documentation": "Returns node type for a node.\n * @param nodeId The ID of the node to lookup the node type for.\n@return The node type.", "id": 1143, "implemented": true, "kind": "function", "modifiers": [], "name": "getNodeType", "nodeType": "FunctionDefinition", "parameters": { "id": 1133, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1132, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 1143, "src": "17900:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1131, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "17900:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "17899:16:2" }, "returnParameters": { "id": 1136, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1135, "name": "", "nodeType": "VariableDeclaration", "scope": 1143, "src": "17937:8:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" }, "typeName": { "contractScope": null, "id": 1134, "name": "NodeType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 192, "src": "17937:8:2", "typeDescriptions": { "typeIdentifier": "t_enum$_NodeType_$192", "typeString": "enum XBRNetwork.NodeType" } }, "value": null, "visibility": "internal" } ], "src": "17936:10:2" }, "scope": 2111, "src": "17879:114:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1155, "nodeType": "Block", "src": "18242:41:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1150, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "18259:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1152, "indexExpression": { "argumentTypes": null, "id": 1151, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1145, "src": "18265:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18259:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1153, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "key", "nodeType": "MemberAccess", "referencedDeclaration": 223, "src": "18259:17:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 1149, "id": 1154, "nodeType": "Return", "src": "18252:24:2" } ] }, "documentation": "Returns node public key for a node.\n * @param nodeId The ID of the node to lookup the node public key for.\n@return The node public key.", "id": 1156, "implemented": true, "kind": "function", "modifiers": [], "name": "getNodeKey", "nodeType": "FunctionDefinition", "parameters": { "id": 1146, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1145, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 1156, "src": "18196:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1144, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "18196:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "18195:16:2" }, "returnParameters": { "id": 1149, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1148, "name": "", "nodeType": "VariableDeclaration", "scope": 1156, "src": "18233:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 1147, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "18233:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "18232:9:2" }, "scope": 2111, "src": "18176:107:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1168, "nodeType": "Block", "src": "18541:44:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1163, "name": "nodes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "18558:5:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Node_$226_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Node storage ref)" } }, "id": 1165, "indexExpression": { "argumentTypes": null, "id": 1164, "name": "nodeId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1158, "src": "18564:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18558:13:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Node_$226_storage", "typeString": "struct XBRNetwork.Node storage ref" } }, "id": 1166, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "config", "nodeType": "MemberAccess", "referencedDeclaration": 225, "src": "18558:20:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 1162, "id": 1167, "nodeType": "Return", "src": "18551:27:2" } ] }, "documentation": "Returns config for a node.\n * @param nodeId The ID of the node to lookup the config for.\n@return IPFS Multihash pointer to node config.", "id": 1169, "implemented": true, "kind": "function", "modifiers": [], "name": "getNodeConfig", "nodeType": "FunctionDefinition", "parameters": { "id": 1159, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1158, "name": "nodeId", "nodeType": "VariableDeclaration", "scope": 1169, "src": "18489:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1157, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "18489:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "18488:16:2" }, "returnParameters": { "id": 1162, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1161, "name": "", "nodeType": "VariableDeclaration", "scope": 1169, "src": "18526:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1160, "name": "string", "nodeType": "ElementaryTypeName", "src": "18526:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "18525:15:2" }, "scope": 2111, "src": "18466:119:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1345, "nodeType": "Block", "src": "20065:1165:2", "statements": [ { "assignments": [ 1187 ], "declarations": [ { "constant": false, "id": 1187, "name": "_token", "nodeType": "VariableDeclaration", "scope": 1345, "src": "20076:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" }, "typeName": { "contractScope": null, "id": 1186, "name": "XBRToken", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2461, "src": "20076:8:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "value": null, "visibility": "internal" } ], "id": 1191, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1189, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 447, "src": "20103:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1188, "name": "XBRToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2461, "src": "20094:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRToken_$2461_$", "typeString": "type(contract XBRToken)" } }, "id": 1190, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20094:15:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "nodeType": "VariableDeclarationStatement", "src": "20076:33:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1193, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "20128:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1195, "indexExpression": { "argumentTypes": null, "id": 1194, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "20136:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "20128:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1196, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "20128:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1198, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20163:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1197, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "20155:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20155:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "20128:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4d41524b45545f414c52454144595f455849535453", "id": 1201, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20167:23:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3552295cc751e4e095198dc42169acb3ac345362c35654ec4e3d43e2517c8bb7", "typeString": "literal_string \"MARKET_ALREADY_EXISTS\"" }, "value": "MARKET_ALREADY_EXISTS" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3552295cc751e4e095198dc42169acb3ac345362c35654ec4e3d43e2517c8bb7", "typeString": "literal_string \"MARKET_ALREADY_EXISTS\"" } ], "id": 1192, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "20120:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20120:71:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1203, "nodeType": "ExpressionStatement", "src": "20120:71:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1205, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1177, "src": "20209:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1207, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20226:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1206, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "20218:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1208, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20218:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "20209:19:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4d414b4552", "id": 1210, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20230:15:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_484de75c7828c5b2a0283b1ac1380b81ce21dc59d4ce114b8a3a2805f796541d", "typeString": "literal_string \"INVALID_MAKER\"" }, "value": "INVALID_MAKER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_484de75c7828c5b2a0283b1ac1380b81ce21dc59d4ce114b8a3a2805f796541d", "typeString": "literal_string \"INVALID_MAKER\"" } ], "id": 1204, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "20201:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1211, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20201:45:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1212, "nodeType": "ExpressionStatement", "src": "20201:45:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "id": 1220, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1214, "name": "marketsByMaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 473, "src": "20264:14:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes16_$", "typeString": "mapping(address => bytes16)" } }, "id": 1216, "indexExpression": { "argumentTypes": null, "id": 1215, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1177, "src": "20279:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "20264:21:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1218, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20297:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1217, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "20289:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes16_$", "typeString": "type(bytes16)" }, "typeName": "bytes16" }, "id": 1219, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20289:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "20264:35:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4d414b45525f414c52454144595f574f524b494e475f464f525f4f544845525f4d41524b4554", "id": 1221, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20301:40:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3751e129b5a7571e64f354a7f42f886681fa373e9a3acd5dce27ce1f49603721", "typeString": "literal_string \"MAKER_ALREADY_WORKING_FOR_OTHER_MARKET\"" }, "value": "MAKER_ALREADY_WORKING_FOR_OTHER_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3751e129b5a7571e64f354a7f42f886681fa373e9a3acd5dce27ce1f49603721", "typeString": "literal_string \"MAKER_ALREADY_WORKING_FOR_OTHER_MARKET\"" } ], "id": 1213, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "20256:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1222, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20256:86:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1223, "nodeType": "ExpressionStatement", "src": "20256:86:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1225, "name": "providerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1179, "src": "20360:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1226, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20380:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "20360:21:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1228, "name": "providerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1179, "src": "20385:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1229, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1187, "src": "20405:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "id": 1230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 2793, "src": "20405:18:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1231, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20405:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "20385:40:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "20360:65:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f50524f56494445525f5345435552495459", "id": 1234, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20427:27:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f15698380491e2d2ebd4e2e3add0d03f2b8da43bd680b5e836c241ad8c8248a2", "typeString": "literal_string \"INVALID_PROVIDER_SECURITY\"" }, "value": "INVALID_PROVIDER_SECURITY" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f15698380491e2d2ebd4e2e3add0d03f2b8da43bd680b5e836c241ad8c8248a2", "typeString": "literal_string \"INVALID_PROVIDER_SECURITY\"" } ], "id": 1224, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "20352:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20352:103:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1236, "nodeType": "ExpressionStatement", "src": "20352:103:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1240, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1238, "name": "consumerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1181, "src": "20473:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1239, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20493:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "20473:21:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1241, "name": "consumerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1181, "src": "20498:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1242, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1187, "src": "20518:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "id": 1243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 2793, "src": "20518:18:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1244, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20518:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "20498:40:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "20473:65:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f434f4e53554d45525f5345435552495459", "id": 1247, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20540:27:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a5caf297f39d3aee2fe0659989a7e3e1766939219a557029ab88f9c9fb9b11da", "typeString": "literal_string \"INVALID_CONSUMER_SECURITY\"" }, "value": "INVALID_CONSUMER_SECURITY" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a5caf297f39d3aee2fe0659989a7e3e1766939219a557029ab88f9c9fb9b11da", "typeString": "literal_string \"INVALID_CONSUMER_SECURITY\"" } ], "id": 1237, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "20465:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1248, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20465:103:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1249, "nodeType": "ExpressionStatement", "src": "20465:103:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1251, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1183, "src": "20586:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1252, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20599:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "20586:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1254, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1183, "src": "20604:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1266, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1255, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1187, "src": "20617:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "id": 1256, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 2793, "src": "20617:18:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1257, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20617:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_10000000_by_1", "typeString": "int_const 10000000" }, "id": 1260, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 1258, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20640:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "37", "id": 1259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20644:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_7_by_1", "typeString": "int_const 7" }, "value": "7" }, "src": "20640:5:2", "typeDescriptions": { "typeIdentifier": "t_rational_10000000_by_1", "typeString": "int_const 10000000" } }, "src": "20617:28:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 1262, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "20616:30:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" }, "id": 1265, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 1263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20649:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "3138", "id": 1264, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20653:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "src": "20649:6:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" } }, "src": "20616:39:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "20604:51:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "20586:69:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4d41524b45545f464545", "id": 1269, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "20657:20:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e65d6919b4a612f70f93f2322e458a1f676002eb6f39256504d6cc3c7f932093", "typeString": "literal_string \"INVALID_MARKET_FEE\"" }, "value": "INVALID_MARKET_FEE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e65d6919b4a612f70f93f2322e458a1f676002eb6f39256504d6cc3c7f932093", "typeString": "literal_string \"INVALID_MARKET_FEE\"" } ], "id": 1250, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "20578:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1270, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20578:100:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1271, "nodeType": "ExpressionStatement", "src": "20578:100:2" }, { "expression": { "argumentTypes": null, "id": 1296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1272, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "20689:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1274, "indexExpression": { "argumentTypes": null, "id": 1273, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "20697:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "20689:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1276, "name": "marketSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 442, "src": "20716:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1277, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "20727:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "20727:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 1279, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1173, "src": "20739:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 1280, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1175, "src": "20746:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 1281, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1177, "src": "20752:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1282, "name": "providerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1179, "src": "20759:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1283, "name": "consumerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1181, "src": "20789:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1284, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1183, "src": "20807:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1288, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20832:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1287, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "20818:13:2", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 1285, "name": "address", "nodeType": "ElementaryTypeName", "src": "20822:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 1286, "length": null, "nodeType": "ArrayTypeName", "src": "20822:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, "id": 1289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20818:16:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1293, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20850:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1292, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "20836:13:2", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 1290, "name": "address", "nodeType": "ElementaryTypeName", "src": "20840:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 1291, "length": null, "nodeType": "ArrayTypeName", "src": "20840:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, "id": 1294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20836:16:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" }, { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } ], "id": 1275, "name": "Market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 253, "src": "20709:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Market_$253_storage_ptr_$", "typeString": "type(struct XBRNetwork.Market storage pointer)" } }, "id": 1295, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20709:144:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_memory", "typeString": "struct XBRNetwork.Market memory" } }, "src": "20689:164:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1297, "nodeType": "ExpressionStatement", "src": "20689:164:2" }, { "expression": { "argumentTypes": null, "id": 1310, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1298, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "20864:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1300, "indexExpression": { "argumentTypes": null, "id": 1299, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "20872:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "20864:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1301, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actors", "nodeType": "MemberAccess", "referencedDeclaration": 252, "src": "20864:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor storage ref)" } }, "id": 1304, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1302, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "20889:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "20889:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "20864:36:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1306, "name": "ActorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "20909:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$183_$", "typeString": "type(enum XBRNetwork.ActorType)" } }, "id": 1307, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "MARKET", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "20909:16:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, { "argumentTypes": null, "hexValue": "30", "id": 1308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20927:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1305, "name": "Actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 258, "src": "20903:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Actor_$258_storage_ptr_$", "typeString": "type(struct XBRNetwork.Actor storage pointer)" } }, "id": 1309, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20903:26:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_memory", "typeString": "struct XBRNetwork.Actor memory" } }, "src": "20864:65:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "id": 1311, "nodeType": "ExpressionStatement", "src": "20864:65:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1317, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1177, "src": "20977:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1312, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "20939:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1314, "indexExpression": { "argumentTypes": null, "id": 1313, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "20947:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "20939:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1315, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actorAddresses", "nodeType": "MemberAccess", "referencedDeclaration": 248, "src": "20939:32:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 1316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "20939:37:2", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, "id": 1318, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "20939:44:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1319, "nodeType": "ExpressionStatement", "src": "20939:44:2" }, { "expression": { "argumentTypes": null, "id": 1324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1320, "name": "marketsByMaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 473, "src": "20994:14:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes16_$", "typeString": "mapping(address => bytes16)" } }, "id": 1322, "indexExpression": { "argumentTypes": null, "id": 1321, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1177, "src": "21009:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "20994:21:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1323, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "21018:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "20994:32:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "id": 1325, "nodeType": "ExpressionStatement", "src": "20994:32:2" }, { "expression": { "argumentTypes": null, "id": 1330, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1326, "name": "marketSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 442, "src": "21037:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 1329, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1327, "name": "marketSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 442, "src": "21049:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 1328, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "21061:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "21049:13:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "21037:25:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 1331, "nodeType": "ExpressionStatement", "src": "21037:25:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1333, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1171, "src": "21092:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1334, "name": "marketSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 442, "src": "21102:9:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1335, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "21113:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "21113:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 1337, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1173, "src": "21125:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 1338, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1175, "src": "21132:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 1339, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1177, "src": "21138:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1340, "name": "providerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1179, "src": "21177:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1341, "name": "consumerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1181, "src": "21195:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1342, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1183, "src": "21213:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1332, "name": "MarketCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 373, "src": "21078:13:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_uint32_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (bytes16,uint32,address,string memory,string memory,address,uint256,uint256,uint256)" } }, "id": 1343, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "21078:145:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1344, "nodeType": "EmitStatement", "src": "21073:150:2" } ] }, "documentation": "Create a new XBR market. The sender of the transaction must be XBR network member\nand automatically becomes owner of the new market.\n * @param marketId The ID of the market to create. Must be unique (not yet existing).\n@param terms The XBR market terms set by the market owner. IPFS Multihash pointing\n to a ZIP archive file with market documents.\n@param meta The XBR market metadata published by the market owner. IPFS Multihash pointing\n to a RDF/Turtle file with market metadata.\n@param maker The address of the XBR market maker that will run this market. The delegate of the market owner.\n@param providerSecurity The amount of XBR tokens a XBR provider joining the market must deposit.\n@param consumerSecurity The amount of XBR tokens a XBR consumer joining the market must deposit.\n@param marketFee The fee taken by the market (beneficiary is the market owner). The fee is a percentage of\n the revenue of the XBR Provider that receives XBR Token paid for transactions.\n The fee must be between 0% (inclusive) and 99% (inclusive), and is expressed as\n a fraction of the total supply of XBR tokens.", "id": 1346, "implemented": true, "kind": "function", "modifiers": [], "name": "createMarket", "nodeType": "FunctionDefinition", "parameters": { "id": 1184, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1171, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1346, "src": "19905:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1170, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "19905:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1173, "name": "terms", "nodeType": "VariableDeclaration", "scope": 1346, "src": "19923:19:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1172, "name": "string", "nodeType": "ElementaryTypeName", "src": "19923:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1175, "name": "meta", "nodeType": "VariableDeclaration", "scope": 1346, "src": "19944:18:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1174, "name": "string", "nodeType": "ElementaryTypeName", "src": "19944:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1177, "name": "maker", "nodeType": "VariableDeclaration", "scope": 1346, "src": "19964:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1176, "name": "address", "nodeType": "ElementaryTypeName", "src": "19964:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1179, "name": "providerSecurity", "nodeType": "VariableDeclaration", "scope": 1346, "src": "19987:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1178, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19987:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1181, "name": "consumerSecurity", "nodeType": "VariableDeclaration", "scope": 1346, "src": "20013:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1180, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20013:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1183, "name": "marketFee", "nodeType": "VariableDeclaration", "scope": 1346, "src": "20039:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1182, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20039:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "19904:153:2" }, "returnParameters": { "id": 1185, "nodeType": "ParameterList", "parameters": [], "src": "20065:0:2" }, "scope": 2111, "src": "19882:1348:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1357, "nodeType": "Block", "src": "21485:45:2", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1353, "name": "marketsByMaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 473, "src": "21502:14:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes16_$", "typeString": "mapping(address => bytes16)" } }, "id": 1355, "indexExpression": { "argumentTypes": null, "id": 1354, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1348, "src": "21517:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "21502:21:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "functionReturnParameters": 1352, "id": 1356, "nodeType": "Return", "src": "21495:28:2" } ] }, "documentation": "Lookup market ID by market maker address.\n * @param maker The market maker address to lookup market for\n@return ID of the market maker.", "id": 1358, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketByMaker", "nodeType": "FunctionDefinition", "parameters": { "id": 1349, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1348, "name": "maker", "nodeType": "VariableDeclaration", "scope": 1358, "src": "21440:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1347, "name": "address", "nodeType": "ElementaryTypeName", "src": "21440:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "21439:15:2" }, "returnParameters": { "id": 1352, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1351, "name": "", "nodeType": "VariableDeclaration", "scope": 1358, "src": "21476:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1350, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "21476:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "21475:9:2" }, "scope": 2111, "src": "21413:117:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1370, "nodeType": "Block", "src": "21783:47:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1365, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "21800:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1367, "indexExpression": { "argumentTypes": null, "id": 1366, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1360, "src": "21808:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "21800:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1368, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "21800:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 1364, "id": 1369, "nodeType": "Return", "src": "21793:30:2" } ] }, "documentation": "Returns owner for a market.\n * @param marketId The ID of the market to lookup owner for.\n@return Address of the owner of the market.", "id": 1371, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketOwner", "nodeType": "FunctionDefinition", "parameters": { "id": 1361, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1360, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1371, "src": "21735:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1359, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "21735:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "21734:18:2" }, "returnParameters": { "id": 1364, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1363, "name": "", "nodeType": "VariableDeclaration", "scope": 1371, "src": "21774:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1362, "name": "address", "nodeType": "ElementaryTypeName", "src": "21774:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "21773:9:2" }, "scope": 2111, "src": "21710:120:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1383, "nodeType": "Block", "src": "22093:47:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1378, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "22110:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1380, "indexExpression": { "argumentTypes": null, "id": 1379, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1373, "src": "22118:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "22110:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1381, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "terms", "nodeType": "MemberAccess", "referencedDeclaration": 232, "src": "22110:23:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 1377, "id": 1382, "nodeType": "Return", "src": "22103:30:2" } ] }, "documentation": "Returns terms for a market.\n * @param marketId The ID of the market to lookup terms for.\n@return IPFS Multihash pointer to market terms.", "id": 1384, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketTerms", "nodeType": "FunctionDefinition", "parameters": { "id": 1374, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1373, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1384, "src": "22039:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1372, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "22039:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "22038:18:2" }, "returnParameters": { "id": 1377, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1376, "name": "", "nodeType": "VariableDeclaration", "scope": 1384, "src": "22078:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1375, "name": "string", "nodeType": "ElementaryTypeName", "src": "22078:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "22077:15:2" }, "scope": 2111, "src": "22014:126:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1396, "nodeType": "Block", "src": "22411:46:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1391, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "22428:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1393, "indexExpression": { "argumentTypes": null, "id": 1392, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1386, "src": "22436:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "22428:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1394, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "meta", "nodeType": "MemberAccess", "referencedDeclaration": 234, "src": "22428:22:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 1390, "id": 1395, "nodeType": "Return", "src": "22421:29:2" } ] }, "documentation": "Returns metadata for a market.\n * @param marketId The ID of the market to lookup metadata for.\n@return IPFS Multihash pointer to market metadata.", "id": 1397, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketMeta", "nodeType": "FunctionDefinition", "parameters": { "id": 1387, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1386, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1397, "src": "22357:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1385, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "22357:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "22356:18:2" }, "returnParameters": { "id": 1390, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1389, "name": "", "nodeType": "VariableDeclaration", "scope": 1397, "src": "22396:13:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1388, "name": "string", "nodeType": "ElementaryTypeName", "src": "22396:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "22395:15:2" }, "scope": 2111, "src": "22333:124:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1409, "nodeType": "Block", "src": "22781:47:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1404, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "22798:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1406, "indexExpression": { "argumentTypes": null, "id": 1405, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1399, "src": "22806:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "22798:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1407, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "maker", "nodeType": "MemberAccess", "referencedDeclaration": 236, "src": "22798:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 1403, "id": 1408, "nodeType": "Return", "src": "22791:30:2" } ] }, "documentation": "Returns market maker for a market.\n * @param marketId The ID of the market to lookup the market maker address for.\n@return The address of the (offchain) market maker delegate responsible for this market.", "id": 1410, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketMaker", "nodeType": "FunctionDefinition", "parameters": { "id": 1400, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1399, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1410, "src": "22733:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1398, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "22733:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "22732:18:2" }, "returnParameters": { "id": 1403, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1402, "name": "", "nodeType": "VariableDeclaration", "scope": 1410, "src": "22772:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1401, "name": "address", "nodeType": "ElementaryTypeName", "src": "22772:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "22771:9:2" }, "scope": 2111, "src": "22708:120:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1422, "nodeType": "Block", "src": "23125:58:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1417, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "23142:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1419, "indexExpression": { "argumentTypes": null, "id": 1418, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1412, "src": "23150:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "23142:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1420, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "providerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 238, "src": "23142:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1416, "id": 1421, "nodeType": "Return", "src": "23135:41:2" } ] }, "documentation": "Returns provider security for a market.\n * @param marketId The ID of the market to lookup provider security for.\n@return The provider security defined in the market.", "id": 1423, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketProviderSecurity", "nodeType": "FunctionDefinition", "parameters": { "id": 1413, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1412, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1423, "src": "23077:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1411, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "23077:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "23076:18:2" }, "returnParameters": { "id": 1416, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1415, "name": "", "nodeType": "VariableDeclaration", "scope": 1423, "src": "23116:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1414, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23116:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "23115:9:2" }, "scope": 2111, "src": "23041:142:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1435, "nodeType": "Block", "src": "23480:58:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1430, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "23497:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1432, "indexExpression": { "argumentTypes": null, "id": 1431, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1425, "src": "23505:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "23497:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1433, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "consumerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 240, "src": "23497:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1429, "id": 1434, "nodeType": "Return", "src": "23490:41:2" } ] }, "documentation": "Returns consumer security for a market.\n * @param marketId The ID of the market to lookup consumer security for.\n@return The consumer security defined in the market.", "id": 1436, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketConsumerSecurity", "nodeType": "FunctionDefinition", "parameters": { "id": 1426, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1425, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1436, "src": "23432:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1424, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "23432:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "23431:18:2" }, "returnParameters": { "id": 1429, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1428, "name": "", "nodeType": "VariableDeclaration", "scope": 1436, "src": "23471:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1427, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23471:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "23470:9:2" }, "scope": 2111, "src": "23396:142:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1448, "nodeType": "Block", "src": "23794:51:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1443, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "23811:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1445, "indexExpression": { "argumentTypes": null, "id": 1444, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1438, "src": "23819:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "23811:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1446, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketFee", "nodeType": "MemberAccess", "referencedDeclaration": 242, "src": "23811:27:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1442, "id": 1447, "nodeType": "Return", "src": "23804:34:2" } ] }, "documentation": "Returns market fee for a market.\n * @param marketId The ID of the market to lookup market fee for.\n@return The fee defined in the market.", "id": 1449, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketFee", "nodeType": "FunctionDefinition", "parameters": { "id": 1439, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1438, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1449, "src": "23746:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1437, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "23746:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "23745:18:2" }, "returnParameters": { "id": 1442, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1441, "name": "", "nodeType": "VariableDeclaration", "scope": 1449, "src": "23785:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1440, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23785:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "23784:9:2" }, "scope": 2111, "src": "23723:122:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1697, "nodeType": "Block", "src": "25346:1817:2", "statements": [ { "assignments": [ 1469 ], "declarations": [ { "constant": false, "id": 1469, "name": "market", "nodeType": "VariableDeclaration", "scope": 1697, "src": "25357:21:2", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market" }, "typeName": { "contractScope": null, "id": 1468, "name": "Market", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 253, "src": "25357:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market" } }, "value": null, "visibility": "internal" } ], "id": 1473, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1470, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "25381:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1472, "indexExpression": { "argumentTypes": null, "id": 1471, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "25389:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "25381:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "25357:41:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1480, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1475, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "25417:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1476, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "25417:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25441:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1477, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "25433:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1479, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25433:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "25417:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 1481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25445:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" }, "value": "NO_SUCH_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" } ], "id": 1474, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "25409:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1482, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25409:53:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1483, "nodeType": "ExpressionStatement", "src": "25409:53:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1485, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "25480:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1486, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "25480:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1487, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "25496:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1488, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "25496:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "25480:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415554484f52495a4544", "id": 1490, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25508:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" }, "value": "NOT_AUTHORIZED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" } ], "id": 1484, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "25472:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1491, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25472:53:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1492, "nodeType": "ExpressionStatement", "src": "25472:53:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1494, "name": "marketsByMaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 473, "src": "25543:14:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bytes16_$", "typeString": "mapping(address => bytes16)" } }, "id": 1496, "indexExpression": { "argumentTypes": null, "id": 1495, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1457, "src": "25558:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "25543:21:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25576:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1497, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "25568:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes16_$", "typeString": "type(bytes16)" }, "typeName": "bytes16" }, "id": 1499, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25568:10:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "src": "25543:35:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4d414b45525f414c52454144595f574f524b494e475f464f525f4f544845525f4d41524b4554", "id": 1501, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25580:40:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3751e129b5a7571e64f354a7f42f886681fa373e9a3acd5dce27ce1f49603721", "typeString": "literal_string \"MAKER_ALREADY_WORKING_FOR_OTHER_MARKET\"" }, "value": "MAKER_ALREADY_WORKING_FOR_OTHER_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3751e129b5a7571e64f354a7f42f886681fa373e9a3acd5dce27ce1f49603721", "typeString": "literal_string \"MAKER_ALREADY_WORKING_FOR_OTHER_MARKET\"" } ], "id": 1493, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "25535:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1502, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25535:86:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1503, "nodeType": "ExpressionStatement", "src": "25535:86:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1522, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1505, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1463, "src": "25639:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25652:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "25639:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1508, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1463, "src": "25657:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_990000000000000000000000000_by_1", "typeString": "int_const 990000000000000000000000000" }, "id": 1520, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_990000000_by_1", "typeString": "int_const 990000000" }, "id": 1515, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_1000000000_by_1", "typeString": "int_const 1000000000" }, "id": 1511, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 1509, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25670:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "39", "id": 1510, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25674:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_9_by_1", "typeString": "int_const 9" }, "value": "9" }, "src": "25670:5:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000_by_1", "typeString": "int_const 1000000000" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_10000000_by_1", "typeString": "int_const 10000000" }, "id": 1514, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 1512, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25678:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "37", "id": 1513, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25682:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_7_by_1", "typeString": "int_const 7" }, "value": "7" }, "src": "25678:5:2", "typeDescriptions": { "typeIdentifier": "t_rational_10000000_by_1", "typeString": "int_const 10000000" } }, "src": "25670:13:2", "typeDescriptions": { "typeIdentifier": "t_rational_990000000_by_1", "typeString": "int_const 990000000" } } ], "id": 1516, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "25669:15:2", "typeDescriptions": { "typeIdentifier": "t_rational_990000000_by_1", "typeString": "int_const 990000000" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" }, "id": 1519, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "3130", "id": 1517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25687:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "argumentTypes": null, "hexValue": "3138", "id": 1518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25691:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "src": "25687:6:2", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" } }, "src": "25669:24:2", "typeDescriptions": { "typeIdentifier": "t_rational_990000000000000000000000000_by_1", "typeString": "int_const 990000000000000000000000000" } }, "src": "25657:36:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "25639:54:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4d41524b45545f464545", "id": 1523, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "25695:20:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e65d6919b4a612f70f93f2322e458a1f676002eb6f39256504d6cc3c7f932093", "typeString": "literal_string \"INVALID_MARKET_FEE\"" }, "value": "INVALID_MARKET_FEE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e65d6919b4a612f70f93f2322e458a1f676002eb6f39256504d6cc3c7f932093", "typeString": "literal_string \"INVALID_MARKET_FEE\"" } ], "id": 1504, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "25631:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1524, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25631:85:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1525, "nodeType": "ExpressionStatement", "src": "25631:85:2" }, { "assignments": [ 1527 ], "declarations": [ { "constant": false, "id": 1527, "name": "wasChanged", "nodeType": "VariableDeclaration", "scope": 1697, "src": "25727:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1526, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25727:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "id": 1529, "initialValue": { "argumentTypes": null, "hexValue": "66616c7365", "id": 1528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "25745:5:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "nodeType": "VariableDeclarationStatement", "src": "25727:23:2" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1530, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1457, "src": "25835:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1532, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "25852:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1531, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "25844:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1533, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25844:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "25835:19:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1535, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1457, "src": "25858:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1536, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "25867:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1537, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "maker", "nodeType": "MemberAccess", "referencedDeclaration": 236, "src": "25867:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "25858:21:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "25835:44:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1552, "nodeType": "IfStatement", "src": "25831:137:2", "trueBody": { "id": 1551, "nodeType": "Block", "src": "25881:87:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1545, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1540, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "25895:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1542, "indexExpression": { "argumentTypes": null, "id": 1541, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "25903:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "25895:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1543, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "maker", "nodeType": "MemberAccess", "referencedDeclaration": 236, "src": "25895:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1544, "name": "maker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1457, "src": "25921:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "25895:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 1546, "nodeType": "ExpressionStatement", "src": "25895:31:2" }, { "expression": { "argumentTypes": null, "id": 1549, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1547, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "25940:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 1548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "25953:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "25940:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1550, "nodeType": "ExpressionStatement", "src": "25940:17:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1554, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1453, "src": "25987:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 1553, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "25981:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": "bytes" }, "id": 1555, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "25981:12:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 1556, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "25981:19:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1557, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "26003:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "25981:23:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 1572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1562, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1453, "src": "26029:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 1560, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3276, "src": "26018:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 1561, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "26018:10:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 1563, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26018:17:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 1559, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "26008:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 1564, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26008:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1568, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26061:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1569, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "terms", "nodeType": "MemberAccess", "referencedDeclaration": 232, "src": "26061:12:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } ], "expression": { "argumentTypes": null, "id": 1566, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3276, "src": "26050:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 1567, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "26050:10:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 1570, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26050:24:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 1565, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "26040:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 1571, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26040:35:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "26008:67:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "25981:94:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1586, "nodeType": "IfStatement", "src": "25977:187:2", "trueBody": { "id": 1585, "nodeType": "Block", "src": "26077:87:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1579, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1574, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "26091:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1576, "indexExpression": { "argumentTypes": null, "id": 1575, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "26099:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "26091:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1577, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "terms", "nodeType": "MemberAccess", "referencedDeclaration": 232, "src": "26091:23:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1578, "name": "terms", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1453, "src": "26117:5:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "26091:31:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 1580, "nodeType": "ExpressionStatement", "src": "26091:31:2" }, { "expression": { "argumentTypes": null, "id": 1583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1581, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "26136:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 1582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "26149:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "26136:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1584, "nodeType": "ExpressionStatement", "src": "26136:17:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1592, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1588, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1455, "src": "26183:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 1587, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "26177:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": "bytes" }, "id": 1589, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26177:11:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 1590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "26177:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1591, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "26198:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "26177:22:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 1606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1596, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1455, "src": "26224:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "argumentTypes": null, "id": 1594, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3276, "src": "26213:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 1595, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "26213:10:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 1597, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26213:16:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 1593, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "26203:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 1598, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26203:27:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1602, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26255:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1603, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "meta", "nodeType": "MemberAccess", "referencedDeclaration": 234, "src": "26255:11:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } ], "expression": { "argumentTypes": null, "id": 1600, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3276, "src": "26244:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 1601, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "26244:10:2", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 1604, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26244:23:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 1599, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3283, "src": "26234:9:2", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 1605, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26234:34:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "26203:65:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "26177:91:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1620, "nodeType": "IfStatement", "src": "26173:182:2", "trueBody": { "id": 1619, "nodeType": "Block", "src": "26270:85:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1613, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1608, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "26284:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1610, "indexExpression": { "argumentTypes": null, "id": 1609, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "26292:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "26284:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1611, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "meta", "nodeType": "MemberAccess", "referencedDeclaration": 234, "src": "26284:22:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1612, "name": "meta", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1455, "src": "26309:4:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "26284:29:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 1614, "nodeType": "ExpressionStatement", "src": "26284:29:2" }, { "expression": { "argumentTypes": null, "id": 1617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1615, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "26327:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 1616, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "26340:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "26327:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1618, "nodeType": "ExpressionStatement", "src": "26327:17:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1624, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1621, "name": "providerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1459, "src": "26429:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1622, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26449:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1623, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "providerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 238, "src": "26449:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "26429:43:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1637, "nodeType": "IfStatement", "src": "26425:158:2", "trueBody": { "id": 1636, "nodeType": "Block", "src": "26474:109:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1630, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1625, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "26488:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1627, "indexExpression": { "argumentTypes": null, "id": 1626, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "26496:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "26488:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1628, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "providerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 238, "src": "26488:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1629, "name": "providerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1459, "src": "26525:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "26488:53:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1631, "nodeType": "ExpressionStatement", "src": "26488:53:2" }, { "expression": { "argumentTypes": null, "id": 1634, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1632, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "26555:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 1633, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "26568:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "26555:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1635, "nodeType": "ExpressionStatement", "src": "26555:17:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1638, "name": "consumerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1461, "src": "26596:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1639, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26616:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1640, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "consumerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 240, "src": "26616:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "26596:43:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1654, "nodeType": "IfStatement", "src": "26592:158:2", "trueBody": { "id": 1653, "nodeType": "Block", "src": "26641:109:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1642, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "26655:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1644, "indexExpression": { "argumentTypes": null, "id": 1643, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "26663:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "26655:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1645, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "consumerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 240, "src": "26655:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1646, "name": "consumerSecurity", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1461, "src": "26692:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "26655:53:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1648, "nodeType": "ExpressionStatement", "src": "26655:53:2" }, { "expression": { "argumentTypes": null, "id": 1651, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1649, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "26722:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 1650, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "26735:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "26722:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1652, "nodeType": "ExpressionStatement", "src": "26722:17:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1658, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1655, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1463, "src": "26763:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1656, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26776:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1657, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketFee", "nodeType": "MemberAccess", "referencedDeclaration": 242, "src": "26776:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "26763:29:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1671, "nodeType": "IfStatement", "src": "26759:130:2", "trueBody": { "id": 1670, "nodeType": "Block", "src": "26794:95:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1659, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "26808:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1661, "indexExpression": { "argumentTypes": null, "id": 1660, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "26816:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "26808:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1662, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "marketFee", "nodeType": "MemberAccess", "referencedDeclaration": 242, "src": "26808:27:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1663, "name": "marketFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1463, "src": "26838:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "26808:39:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1665, "nodeType": "ExpressionStatement", "src": "26808:39:2" }, { "expression": { "argumentTypes": null, "id": 1668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1666, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "26861:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 1667, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "26874:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "26861:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 1669, "nodeType": "ExpressionStatement", "src": "26861:17:2" } ] } }, { "condition": { "argumentTypes": null, "id": 1672, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "26903:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1694, "nodeType": "IfStatement", "src": "26899:230:2", "trueBody": { "id": 1693, "nodeType": "Block", "src": "26915:214:2", "statements": [ { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1674, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1451, "src": "26948:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1675, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26958:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1676, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketSeq", "nodeType": "MemberAccess", "referencedDeclaration": 228, "src": "26958:16:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1677, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26976:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1678, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "26976:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1679, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "26990:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1680, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "terms", "nodeType": "MemberAccess", "referencedDeclaration": 232, "src": "26990:12:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1681, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "27004:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1682, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "meta", "nodeType": "MemberAccess", "referencedDeclaration": 234, "src": "27004:11:2", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1683, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "27017:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1684, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "maker", "nodeType": "MemberAccess", "referencedDeclaration": 236, "src": "27017:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1685, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "27051:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1686, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "providerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 238, "src": "27051:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1687, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "27076:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1688, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "consumerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 240, "src": "27076:23:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1689, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1469, "src": "27101:6:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage_ptr", "typeString": "struct XBRNetwork.Market storage pointer" } }, "id": 1690, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketFee", "nodeType": "MemberAccess", "referencedDeclaration": 242, "src": "27101:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1673, "name": "MarketUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 393, "src": "26934:13:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_uint32_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (bytes16,uint32,address,string memory,string memory,address,uint256,uint256,uint256)" } }, "id": 1691, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "26934:184:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1692, "nodeType": "EmitStatement", "src": "26929:189:2" } ] } }, { "expression": { "argumentTypes": null, "id": 1695, "name": "wasChanged", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, "src": "27146:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 1467, "id": 1696, "nodeType": "Return", "src": "27139:17:2" } ] }, "documentation": "Update market information, like market terms, metadata or maker address.\n * @param marketId The ID of the market to update.\n@param terms When terms should be updated, provide a string of non-zero length with\n an IPFS Multihash pointing to the new ZIP file with market terms.\n@param meta When metadata should be updated, provide a string of non-zero length with\n an IPFS Multihash pointing to the new RDF/Turtle file with market metadata.\n@param maker When maker should be updated, provide a non-zero address.\n@param providerSecurity Provider security to set that will apply for new members (providers) joining\n the market. It will NOT apply to current market members.\n@param consumerSecurity Consumer security to set that will apply for new members (consumers) joining\n the market. It will NOT apply to current market members.\n@param marketFee New market fee to set. The new market fee will apply to all new payment channels\n opened. It will NOT apply to already opened (or closed) payment channels.\n@return Flag indicating weather the market information was actually updated or left unchanged.", "id": 1698, "implemented": true, "kind": "function", "modifiers": [], "name": "updateMarket", "nodeType": "FunctionDefinition", "parameters": { "id": 1464, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1451, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25171:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1450, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "25171:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1453, "name": "terms", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25189:19:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1452, "name": "string", "nodeType": "ElementaryTypeName", "src": "25189:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1455, "name": "meta", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25210:18:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 1454, "name": "string", "nodeType": "ElementaryTypeName", "src": "25210:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1457, "name": "maker", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25230:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1456, "name": "address", "nodeType": "ElementaryTypeName", "src": "25230:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1459, "name": "providerSecurity", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25253:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1458, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25253:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1461, "name": "consumerSecurity", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25279:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1460, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25279:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1463, "name": "marketFee", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25305:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1462, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25305:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "25170:153:2" }, "returnParameters": { "id": 1467, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1466, "name": "", "nodeType": "VariableDeclaration", "scope": 1698, "src": "25340:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1465, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25340:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "25339:6:2" }, "scope": 2111, "src": "25149:2014:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1726, "nodeType": "Block", "src": "27370:172:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1704, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "27388:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1706, "indexExpression": { "argumentTypes": null, "id": 1705, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1700, "src": "27396:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "27388:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1707, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "27388:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1709, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "27423:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1708, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "27415:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1710, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27415:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "27388:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 1712, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "27427:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" }, "value": "NO_SUCH_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" } ], "id": 1703, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "27380:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1713, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27380:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1714, "nodeType": "ExpressionStatement", "src": "27380:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1722, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1716, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "27462:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1718, "indexExpression": { "argumentTypes": null, "id": 1717, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1700, "src": "27470:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "27462:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1719, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "27462:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1720, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "27489:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1721, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "27489:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "27462:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f545f415554484f52495a4544", "id": 1723, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "27501:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" }, "value": "NOT_AUTHORIZED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4", "typeString": "literal_string \"NOT_AUTHORIZED\"" } ], "id": 1715, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "27454:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1724, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27454:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1725, "nodeType": "ExpressionStatement", "src": "27454:64:2" } ] }, "documentation": "Close a market. A closed market will not accept new memberships.\n * @param marketId The ID of the market to close.", "id": 1727, "implemented": true, "kind": "function", "modifiers": [], "name": "closeMarket", "nodeType": "FunctionDefinition", "parameters": { "id": 1701, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1700, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1727, "src": "27340:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1699, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "27340:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "27339:18:2" }, "returnParameters": { "id": 1702, "nodeType": "ParameterList", "parameters": [], "src": "27370:0:2" }, "scope": 2111, "src": "27318:224:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1890, "nodeType": "Block", "src": "27904:1181:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1737, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "27922:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1739, "indexExpression": { "argumentTypes": null, "id": 1738, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "27930:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "27922:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1740, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "27922:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1742, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "27957:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1741, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "27949:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1743, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27949:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "27922:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 1745, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "27961:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" }, "value": "NO_SUCH_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" } ], "id": 1736, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "27914:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1746, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27914:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1747, "nodeType": "ExpressionStatement", "src": "27914:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1760, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1750, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "28002:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1752, "indexExpression": { "argumentTypes": null, "id": 1751, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "28010:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "28002:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1753, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actors", "nodeType": "MemberAccess", "referencedDeclaration": 252, "src": "28002:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor storage ref)" } }, "id": 1756, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1754, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "28027:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28027:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "28002:36:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "id": 1757, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actorType", "nodeType": "MemberAccess", "referencedDeclaration": 255, "src": "28002:46:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1749, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "27996:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1758, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27996:53:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1759, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "28053:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "27996:58:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4143544f525f414c52454144595f4a4f494e4544", "id": 1761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "28056:22:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b4b91ce69942812e0603344423e81407870009ac15b3d1fc68d6f7ed2644e231", "typeString": "literal_string \"ACTOR_ALREADY_JOINED\"" }, "value": "ACTOR_ALREADY_JOINED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b4b91ce69942812e0603344423e81407870009ac15b3d1fc68d6f7ed2644e231", "typeString": "literal_string \"ACTOR_ALREADY_JOINED\"" } ], "id": 1748, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "27988:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1762, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "27988:91:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1763, "nodeType": "ExpressionStatement", "src": "27988:91:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1790, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1781, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1766, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "28103:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1765, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28097:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1767, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28097:16:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1769, "name": "ActorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "28123:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$183_$", "typeString": "type(enum XBRNetwork.ActorType)" } }, "id": 1770, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "MARKET", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28123:16:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1768, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28117:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1771, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28117:23:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "28097:43:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1774, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "28162:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1773, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28156:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1775, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28156:16:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1777, "name": "ActorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "28182:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$183_$", "typeString": "type(enum XBRNetwork.ActorType)" } }, "id": 1778, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PROVIDER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28182:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1776, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28176:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1779, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28176:25:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "28156:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "28097:104:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1789, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1783, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "28211:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1782, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28205:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1784, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28205:16:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1786, "name": "ActorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "28231:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$183_$", "typeString": "type(enum XBRNetwork.ActorType)" } }, "id": 1787, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CONSUMER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28231:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1785, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28225:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1788, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28225:25:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "28205:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "28097:153:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 1764, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3292, "src": "28089:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 1791, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28089:162:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1792, "nodeType": "ExpressionStatement", "src": "28089:162:2" }, { "assignments": [ 1794 ], "declarations": [ { "constant": false, "id": 1794, "name": "security", "nodeType": "VariableDeclaration", "scope": 1890, "src": "28262:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1793, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28262:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1795, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "28262:16:2" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1803, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1797, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "28298:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1796, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28292:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1798, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28292:16:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1800, "name": "ActorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "28318:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$183_$", "typeString": "type(enum XBRNetwork.ActorType)" } }, "id": 1801, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PROVIDER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28318:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1799, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28312:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1802, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28312:25:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "28292:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, "id": 1819, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1813, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "28425:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1812, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28419:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1814, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28419:16:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1816, "name": "ActorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "28445:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$183_$", "typeString": "type(enum XBRNetwork.ActorType)" } }, "id": 1817, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CONSUMER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28445:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } ], "id": 1815, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28439:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 1818, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28439:25:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "src": "28419:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 1832, "nodeType": "Block", "src": "28542:37:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1830, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1828, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "28556:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "30", "id": 1829, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "28567:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "28556:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1831, "nodeType": "ExpressionStatement", "src": "28556:12:2" } ] }, "id": 1833, "nodeType": "IfStatement", "src": "28415:164:2", "trueBody": { "id": 1827, "nodeType": "Block", "src": "28466:70:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1820, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "28480:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1821, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "28491:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1823, "indexExpression": { "argumentTypes": null, "id": 1822, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "28499:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "28491:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1824, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "consumerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 240, "src": "28491:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "28480:45:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1826, "nodeType": "ExpressionStatement", "src": "28480:45:2" } ] } }, "id": 1834, "nodeType": "IfStatement", "src": "28288:291:2", "trueBody": { "id": 1811, "nodeType": "Block", "src": "28339:70:2", "statements": [ { "expression": { "argumentTypes": null, "id": 1809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1804, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "28353:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1805, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "28364:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1807, "indexExpression": { "argumentTypes": null, "id": 1806, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "28372:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "28364:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1808, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "providerSecurity", "nodeType": "MemberAccess", "referencedDeclaration": 238, "src": "28364:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "28353:45:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1810, "nodeType": "ExpressionStatement", "src": "28353:45:2" } ] } }, { "assignments": [ 1836 ], "declarations": [ { "constant": false, "id": 1836, "name": "_token", "nodeType": "VariableDeclaration", "scope": 1890, "src": "28589:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" }, "typeName": { "contractScope": null, "id": 1835, "name": "XBRToken", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2461, "src": "28589:8:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "value": null, "visibility": "internal" } ], "id": 1840, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1838, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 447, "src": "28616:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1837, "name": "XBRToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2461, "src": "28607:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRToken_$2461_$", "typeString": "type(contract XBRToken)" } }, "id": 1839, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28607:15:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "nodeType": "VariableDeclarationStatement", "src": "28589:33:2" }, { "assignments": [ 1842 ], "declarations": [ { "constant": false, "id": 1842, "name": "success", "nodeType": "VariableDeclaration", "scope": 1890, "src": "28632:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 1841, "name": "bool", "nodeType": "ElementaryTypeName", "src": "28632:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "id": 1852, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1845, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "28667:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28667:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1848, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3322, "src": "28687:4:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$2111", "typeString": "contract XBRNetwork" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRNetwork_$2111", "typeString": "contract XBRNetwork" } ], "id": 1847, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28679:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1849, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28679:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1850, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "28694:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 1843, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1836, "src": "28647:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "id": 1844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 2894, "src": "28647:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, "id": 1851, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28647:56:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", "src": "28632:71:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1854, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1842, "src": "28721:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4a4f494e5f4d41524b45545f5452414e534645525f46524f4d5f4641494c4544", "id": 1855, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "28730:34:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_bc36bbcd1f691e5b2bdc683c50eb7f571e587126cbd7ab6e7dcbd28836529dfe", "typeString": "literal_string \"JOIN_MARKET_TRANSFER_FROM_FAILED\"" }, "value": "JOIN_MARKET_TRANSFER_FROM_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_bc36bbcd1f691e5b2bdc683c50eb7f571e587126cbd7ab6e7dcbd28836529dfe", "typeString": "literal_string \"JOIN_MARKET_TRANSFER_FROM_FAILED\"" } ], "id": 1853, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "28713:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1856, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28713:52:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1857, "nodeType": "ExpressionStatement", "src": "28713:52:2" }, { "expression": { "argumentTypes": null, "id": 1869, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1858, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "28776:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1860, "indexExpression": { "argumentTypes": null, "id": 1859, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "28784:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "28776:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1861, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actors", "nodeType": "MemberAccess", "referencedDeclaration": 252, "src": "28776:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor storage ref)" } }, "id": 1864, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1862, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "28801:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1863, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28801:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "28776:36:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1866, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "28821:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, { "argumentTypes": null, "id": 1867, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "28832:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1865, "name": "Actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 258, "src": "28815:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Actor_$258_storage_ptr_$", "typeString": "type(struct XBRNetwork.Actor storage pointer)" } }, "id": 1868, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28815:26:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_memory", "typeString": "struct XBRNetwork.Actor memory" } }, "src": "28776:65:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "id": 1870, "nodeType": "ExpressionStatement", "src": "28776:65:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1876, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "28889:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1877, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28889:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1871, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "28851:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1873, "indexExpression": { "argumentTypes": null, "id": 1872, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "28859:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "28851:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1874, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actorAddresses", "nodeType": "MemberAccess", "referencedDeclaration": 248, "src": "28851:32:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 1875, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "28851:37:2", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, "id": 1878, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28851:49:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1879, "nodeType": "ExpressionStatement", "src": "28851:49:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1881, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1729, "src": "29010:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1882, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "29020:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1883, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "29020:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 1884, "name": "actorType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1731, "src": "29032:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, { "argumentTypes": null, "id": 1885, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "29043:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1880, "name": "ActorJoined", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 407, "src": "28998:11:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_address_$_t_enum$_ActorType_$183_$_t_uint256_$returns$__$", "typeString": "function (bytes16,address,enum XBRNetwork.ActorType,uint256)" } }, "id": 1886, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "28998:54:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1887, "nodeType": "EmitStatement", "src": "28993:59:2" }, { "expression": { "argumentTypes": null, "id": 1888, "name": "security", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1794, "src": "29070:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1735, "id": 1889, "nodeType": "Return", "src": "29063:15:2" } ] }, "documentation": "Join the given XBR market as the specified type of actor, which must be PROVIDER or CONSUMER.\n * @param marketId The ID of the XBR data market to join.\n@param actorType The type of actor under which to join: PROVIDER or CONSUMER.", "id": 1891, "implemented": true, "kind": "function", "modifiers": [], "name": "joinMarket", "nodeType": "FunctionDefinition", "parameters": { "id": 1732, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1729, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1891, "src": "27840:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1728, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "27840:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1731, "name": "actorType", "nodeType": "VariableDeclaration", "scope": 1891, "src": "27858:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, "typeName": { "contractScope": null, "id": 1730, "name": "ActorType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 183, "src": "27858:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, "value": null, "visibility": "internal" } ], "src": "27839:39:2" }, "returnParameters": { "id": 1735, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1734, "name": "", "nodeType": "VariableDeclaration", "scope": 1891, "src": "27895:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1733, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "27895:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "27894:9:2" }, "scope": 2111, "src": "27819:1266:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1904, "nodeType": "Block", "src": "29373:56:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1899, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "29390:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1901, "indexExpression": { "argumentTypes": null, "id": 1900, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1893, "src": "29398:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "29390:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1902, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actorAddresses", "nodeType": "MemberAccess", "referencedDeclaration": 248, "src": "29390:32:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "functionReturnParameters": 1898, "id": 1903, "nodeType": "Return", "src": "29383:39:2" } ] }, "documentation": "Returns all actors in a given market.\n * @param marketId The ID of the market to lookup actors.\n@return List of addresses of market actors in the market.", "id": 1905, "implemented": true, "kind": "function", "modifiers": [], "name": "getAllMarketActors", "nodeType": "FunctionDefinition", "parameters": { "id": 1894, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1893, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1905, "src": "29316:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1892, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "29316:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "29315:18:2" }, "returnParameters": { "id": 1898, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1897, "name": "", "nodeType": "VariableDeclaration", "scope": 1905, "src": "29355:16:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 1895, "name": "address", "nodeType": "ElementaryTypeName", "src": "29355:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 1896, "length": null, "nodeType": "ArrayTypeName", "src": "29355:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], "src": "29354:18:2" }, "scope": 2111, "src": "29287:142:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1922, "nodeType": "Block", "src": "29798:65:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1914, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "29815:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1916, "indexExpression": { "argumentTypes": null, "id": 1915, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1907, "src": "29823:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "29815:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1917, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actors", "nodeType": "MemberAccess", "referencedDeclaration": 252, "src": "29815:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor storage ref)" } }, "id": 1919, "indexExpression": { "argumentTypes": null, "id": 1918, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1909, "src": "29840:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "29815:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "id": 1920, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actorType", "nodeType": "MemberAccess", "referencedDeclaration": 255, "src": "29815:41:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, "functionReturnParameters": 1913, "id": 1921, "nodeType": "Return", "src": "29808:48:2" } ] }, "documentation": "Returns the type of an actor within a market.\n * @param marketId The ID of the market to lookup actor type.\n@param actor The address of the actor to lookup.\n@return The type under which the actor is joined in the market.", "id": 1923, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketActorType", "nodeType": "FunctionDefinition", "parameters": { "id": 1910, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1907, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1923, "src": "29733:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1906, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "29733:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1909, "name": "actor", "nodeType": "VariableDeclaration", "scope": 1923, "src": "29751:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1908, "name": "address", "nodeType": "ElementaryTypeName", "src": "29751:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "29732:33:2" }, "returnParameters": { "id": 1913, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1912, "name": "", "nodeType": "VariableDeclaration", "scope": 1923, "src": "29787:9:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" }, "typeName": { "contractScope": null, "id": 1911, "name": "ActorType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 183, "src": "29787:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$183", "typeString": "enum XBRNetwork.ActorType" } }, "value": null, "visibility": "internal" } ], "src": "29786:11:2" }, "scope": 2111, "src": "29704:159:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1940, "nodeType": "Block", "src": "30253:64:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1932, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "30270:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1934, "indexExpression": { "argumentTypes": null, "id": 1933, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1925, "src": "30278:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "30270:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1935, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actors", "nodeType": "MemberAccess", "referencedDeclaration": 252, "src": "30270:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Actor_$258_storage_$", "typeString": "mapping(address => struct XBRNetwork.Actor storage ref)" } }, "id": 1937, "indexExpression": { "argumentTypes": null, "id": 1936, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1927, "src": "30295:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "30270:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Actor_$258_storage", "typeString": "struct XBRNetwork.Actor storage ref" } }, "id": 1938, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "security", "nodeType": "MemberAccess", "referencedDeclaration": 257, "src": "30270:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 1931, "id": 1939, "nodeType": "Return", "src": "30263:47:2" } ] }, "documentation": "Returns the current security deposit of an actor within a market.\n * @param marketId The ID of the market to lookup actor type.\n@param actor The address of the actor to lookup.\n@return The security deposit of the actor in the given market.", "id": 1941, "implemented": true, "kind": "function", "modifiers": [], "name": "getMarketActorSecurity", "nodeType": "FunctionDefinition", "parameters": { "id": 1928, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1925, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1941, "src": "30190:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1924, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "30190:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1927, "name": "actor", "nodeType": "VariableDeclaration", "scope": 1941, "src": "30208:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1926, "name": "address", "nodeType": "ElementaryTypeName", "src": "30208:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "30189:33:2" }, "returnParameters": { "id": 1931, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1930, "name": "", "nodeType": "VariableDeclaration", "scope": 1941, "src": "30244:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1929, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30244:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "30243:9:2" }, "scope": 2111, "src": "30157:160:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 1958, "nodeType": "Block", "src": "30638:98:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1954, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1947, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "30656:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1949, "indexExpression": { "argumentTypes": null, "id": 1948, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1943, "src": "30664:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "30656:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1950, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "30656:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1952, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "30691:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1951, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "30683:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30683:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "30656:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 1955, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "30695:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" }, "value": "NO_SUCH_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" } ], "id": 1946, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "30648:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1956, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "30648:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1957, "nodeType": "ExpressionStatement", "src": "30648:64:2" } ] }, "documentation": "As a market actor (participant) currently member of a market, leave that market.\nA market can only be left when all payment channels of the sender are closed (or expired).\n * @param marketId The ID of the market to leave.", "id": 1959, "implemented": true, "kind": "function", "modifiers": [], "name": "leaveMarket", "nodeType": "FunctionDefinition", "parameters": { "id": 1944, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1943, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 1959, "src": "30608:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1942, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "30608:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "30607:18:2" }, "returnParameters": { "id": 1945, "nodeType": "ParameterList", "parameters": [], "src": "30638:0:2" }, "scope": 2111, "src": "30586:150:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 2048, "nodeType": "Block", "src": "31238:803:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1978, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1971, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "31257:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 1973, "indexExpression": { "argumentTypes": null, "id": 1972, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1961, "src": "31265:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "31257:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 1974, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "31257:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1976, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "31292:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1975, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "31284:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1977, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31284:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "31257:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 1979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "31296:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" }, "value": "NO_SUCH_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" } ], "id": 1970, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "31249:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1980, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31249:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1981, "nodeType": "ExpressionStatement", "src": "31249:64:2" }, { "assignments": [ 1983 ], "declarations": [ { "constant": false, "id": 1983, "name": "channel", "nodeType": "VariableDeclaration", "scope": 2048, "src": "31437:25:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" }, "typeName": { "contractScope": null, "id": 1982, "name": "XBRPaymentChannel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2428, "src": "31437:17:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } }, "value": null, "visibility": "internal" } ], "id": 1996, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1986, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1961, "src": "31487:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1987, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "31497:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1988, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "31497:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 1989, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1963, "src": "31509:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1991, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "31527:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 1990, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "31519:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1992, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31519:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 1993, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1965, "src": "31531:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "hexValue": "3630", "id": 1994, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "31539:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_60_by_1", "typeString": "int_const 60" }, "value": "60" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_60_by_1", "typeString": "int_const 60" } ], "id": 1985, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "31465:21:2", "typeDescriptions": { "typeIdentifier": "t_function_creation_nonpayable$_t_bytes16_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$returns$_t_contract$_XBRPaymentChannel_$2428_$", "typeString": "function (bytes16,address,address,address,uint256,uint32) returns (contract XBRPaymentChannel)" }, "typeName": { "contractScope": null, "id": 1984, "name": "XBRPaymentChannel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2428, "src": "31469:17:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } } }, "id": 1995, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31465:77:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } }, "nodeType": "VariableDeclarationStatement", "src": "31437:105:2" }, { "assignments": [ 1998 ], "declarations": [ { "constant": false, "id": 1998, "name": "_token", "nodeType": "VariableDeclaration", "scope": 2048, "src": "31553:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" }, "typeName": { "contractScope": null, "id": 1997, "name": "XBRToken", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2461, "src": "31553:8:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "value": null, "visibility": "internal" } ], "id": 2002, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2000, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 447, "src": "31580:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1999, "name": "XBRToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2461, "src": "31571:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRToken_$2461_$", "typeString": "type(contract XBRToken)" } }, "id": 2001, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31571:15:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "nodeType": "VariableDeclarationStatement", "src": "31553:33:2" }, { "assignments": [ 2004 ], "declarations": [ { "constant": false, "id": 2004, "name": "success", "nodeType": "VariableDeclaration", "scope": 2048, "src": "31596:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2003, "name": "bool", "nodeType": "ElementaryTypeName", "src": "31596:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "id": 2014, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2007, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "31631:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "31631:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2010, "name": "channel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1983, "src": "31651:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } ], "id": 2009, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "31643:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 2011, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31643:16:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 2012, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1965, "src": "31661:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 2005, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1998, "src": "31611:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$2461", "typeString": "contract XBRToken" } }, "id": 2006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 2894, "src": "31611:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, "id": 2013, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31611:57:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", "src": "31596:72:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2016, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2004, "src": "31686:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4f50454e5f4348414e4e454c5f5452414e534645525f46524f4d5f4641494c4544", "id": 2017, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "31695:35:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ebe393bb10dfca2074efb2b380a27c042cb8e246788d4413cb67e7e6852618e2", "typeString": "literal_string \"OPEN_CHANNEL_TRANSFER_FROM_FAILED\"" }, "value": "OPEN_CHANNEL_TRANSFER_FROM_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_ebe393bb10dfca2074efb2b380a27c042cb8e246788d4413cb67e7e6852618e2", "typeString": "literal_string \"OPEN_CHANNEL_TRANSFER_FROM_FAILED\"" } ], "id": 2015, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "31678:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2018, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31678:53:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2019, "nodeType": "ExpressionStatement", "src": "31678:53:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2026, "name": "channel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1983, "src": "31782:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } ], "id": 2025, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "31774:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 2027, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31774:16:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2020, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "31742:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 2022, "indexExpression": { "argumentTypes": null, "id": 2021, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1961, "src": "31750:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "31742:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 2023, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "channels", "nodeType": "MemberAccess", "referencedDeclaration": 245, "src": "31742:26:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 2024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "31742:31:2", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, "id": 2028, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31742:49:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 2029, "nodeType": "ExpressionStatement", "src": "31742:49:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2031, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1961, "src": "31926:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2032, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "31936:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "31936:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 2034, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1963, "src": "31948:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2035, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "31958:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 2037, "indexExpression": { "argumentTypes": null, "id": 2036, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1961, "src": "31966:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "31958:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 2038, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "31958:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2040, "name": "channel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1983, "src": "31991:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } ], "id": 2039, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "31983:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 2041, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31983:16:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2030, "name": "PaymentChannelCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 425, "src": "31904:21:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", "typeString": "function (bytes16,address,address,address,address)" } }, "id": 2042, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "31904:96:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2043, "nodeType": "EmitStatement", "src": "31899:101:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2045, "name": "channel", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1983, "src": "32026:7:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRPaymentChannel_$2428", "typeString": "contract XBRPaymentChannel" } ], "id": 2044, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "32018:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 2046, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "32018:16:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 1969, "id": 2047, "nodeType": "Return", "src": "32011:23:2" } ] }, "documentation": "Open a new payment channel and deposit an amount of XBR token into a market.\n * @param marketId The ID of the market to open a payment channel within.\n@param consumer The address of the (offchain) consumer delegate allowed to consumer the channel.\n@param amount Amount of XBR Token to deposit into the payment channel.", "id": 2049, "implemented": true, "kind": "function", "modifiers": [], "name": "openPaymentChannel", "nodeType": "FunctionDefinition", "parameters": { "id": 1966, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1961, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 2049, "src": "31138:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1960, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "31138:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1963, "name": "consumer", "nodeType": "VariableDeclaration", "scope": 2049, "src": "31156:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1962, "name": "address", "nodeType": "ElementaryTypeName", "src": "31156:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1965, "name": "amount", "nodeType": "VariableDeclaration", "scope": 2049, "src": "31174:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1964, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "31174:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "31137:52:2" }, "returnParameters": { "id": 1969, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1968, "name": "paymentChannel", "nodeType": "VariableDeclaration", "scope": 2049, "src": "31214:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1967, "name": "address", "nodeType": "ElementaryTypeName", "src": "31214:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "31213:24:2" }, "scope": 2111, "src": "31109:932:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 2062, "nodeType": "Block", "src": "32361:50:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2057, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "32378:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 2059, "indexExpression": { "argumentTypes": null, "id": 2058, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2051, "src": "32386:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "32378:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 2060, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "channels", "nodeType": "MemberAccess", "referencedDeclaration": 245, "src": "32378:26:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "functionReturnParameters": 2056, "id": 2061, "nodeType": "Return", "src": "32371:33:2" } ] }, "documentation": "Lookup all payment channels for a XBR Market.\n * @param marketId The XBR Market to get payment channels for.\n@return List of contract addresses of payment channels in the market.", "id": 2063, "implemented": true, "kind": "function", "modifiers": [], "name": "getAllMarketPaymentChannels", "nodeType": "FunctionDefinition", "parameters": { "id": 2052, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2051, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 2063, "src": "32304:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 2050, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "32304:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" } ], "src": "32303:18:2" }, "returnParameters": { "id": 2056, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2055, "name": "", "nodeType": "VariableDeclaration", "scope": 2063, "src": "32343:16:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 2053, "name": "address", "nodeType": "ElementaryTypeName", "src": "32343:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 2054, "length": null, "nodeType": "ArrayTypeName", "src": "32343:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "value": null, "visibility": "internal" } ], "src": "32342:18:2" }, "scope": 2111, "src": "32267:144:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 2109, "nodeType": "Block", "src": "33484:390:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2073, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "33503:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 2075, "indexExpression": { "argumentTypes": null, "id": 2074, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2065, "src": "33511:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "33503:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 2076, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 230, "src": "33503:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 2078, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "33538:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2077, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "33530:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 2079, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33530:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "33503:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 2081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "33542:16:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" }, "value": "NO_SUCH_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a1c1e336118f0668bcb7c75adc2cc2afb67adbfb649ff84f5f8c877e9392dff7", "typeString": "literal_string \"NO_SUCH_MARKET\"" } ], "id": 2072, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "33495:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2082, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33495:64:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2083, "nodeType": "ExpressionStatement", "src": "33495:64:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 2092, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2085, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "33577:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 2087, "indexExpression": { "argumentTypes": null, "id": 2086, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2065, "src": "33585:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "33577:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 2088, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "maker", "nodeType": "MemberAccess", "referencedDeclaration": 236, "src": "33577:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 2090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "33612:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2089, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "33604:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 2091, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33604:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "33577:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f4143544956455f4d41524b45545f4d414b4552", "id": 2093, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "33616:24:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_74b6ff9e5c5b95a44d98635a314056303693bb981633f9d7a0f185a4b5ecf4fc", "typeString": "literal_string \"NO_ACTIVE_MARKET_MAKER\"" }, "value": "NO_ACTIVE_MARKET_MAKER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_74b6ff9e5c5b95a44d98635a314056303693bb981633f9d7a0f185a4b5ecf4fc", "typeString": "literal_string \"NO_ACTIVE_MARKET_MAKER\"" } ], "id": 2084, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3292, 3293 ], "referencedDeclaration": 3293, "src": "33569:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2094, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33569:72:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2095, "nodeType": "ExpressionStatement", "src": "33569:72:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2097, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2065, "src": "33799:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2098, "name": "markets", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, "src": "33809:7:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Market_$253_storage_$", "typeString": "mapping(bytes16 => struct XBRNetwork.Market storage ref)" } }, "id": 2100, "indexExpression": { "argumentTypes": null, "id": 2099, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2065, "src": "33817:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "33809:17:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Market_$253_storage", "typeString": "struct XBRNetwork.Market storage ref" } }, "id": 2101, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "maker", "nodeType": "MemberAccess", "referencedDeclaration": 236, "src": "33809:23:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 2102, "name": "provider", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2067, "src": "33834:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 2103, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3289, "src": "33844:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 2104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "33844:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { "argumentTypes": null, "id": 2105, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2069, "src": "33856:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "hexValue": "3130", "id": 2106, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "33864:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" } ], "id": 2096, "name": "PayingChannelRequestCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 439, "src": "33771:27:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes16_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$returns$__$", "typeString": "function (bytes16,address,address,address,uint256,uint32)" } }, "id": 2107, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "33771:96:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2108, "nodeType": "EmitStatement", "src": "33766:101:2" } ] }, "documentation": "As a data provider, request a new payment channel to get paid by the market maker. Given sufficient\nsecurity amount (deposited by the data provider when joining the marker) to cover the request amount,\nthe market maker will open a payment (state) channel to allow the market maker buying data keys in\nmicrotransactions, and offchain. The creation of the payment channel is asynchronously: the market maker\nis watching the global blockchain filtering for events relevant to the market managed by the maker.\nWhen a request to open a payment channel is recognized by the market maker, it will check the provider\nfor sufficient security deposit covering the requested amount, and if all is fine, create a new payment\nchannel and store the contract address for the channel request ID, so the data provider can retrieve it.\n * @param marketId The ID of the market to request a paying channel within.", "id": 2110, "implemented": true, "kind": "function", "modifiers": [], "name": "requestPayingChannel", "nodeType": "FunctionDefinition", "parameters": { "id": 2070, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2065, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 2110, "src": "33425:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 2064, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "33425:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2067, "name": "provider", "nodeType": "VariableDeclaration", "scope": 2110, "src": "33443:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2066, "name": "address", "nodeType": "ElementaryTypeName", "src": "33443:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2069, "name": "amount", "nodeType": "VariableDeclaration", "scope": 2110, "src": "33461:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2068, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "33461:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "33424:52:2" }, "returnParameters": { "id": 2071, "nodeType": "ParameterList", "parameters": [], "src": "33484:0:2" }, "scope": 2111, "src": "33394:480:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 2112, "src": "1116:32760:2" } ], "src": "805:33072:2" }, "compiler": { "name": "solc", "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.0.5", "updatedAt": "2019-06-04T10:01:11.450Z", "devdoc": { "author": "The XBR Project", "methods": { "addMaintainer(address)": { "params": { "account": "The account to grant maintainer rights to." } }, "closeDomain(bytes16)": { "params": { "domainId": "The ID of the domain to close." } }, "closeMarket(bytes16)": { "params": { "marketId": "The ID of the market to close." } }, "constructor": { "params": { "organization_": "The network technology provider and ecosystem sponsor.", "token_": "The token to run this network on." } }, "createDomain(bytes16,bytes32,string,string,string)": { "params": { "domainId": "The ID of the domain to create. Must be globally unique (not yet existing).", "domainKey": "The domain signing key. A Ed25519 (https://ed25519.cr.yp.to/) public key.", "license": "The license for the software stack running the domain. IPFS Multihash pointing to a JSON/YAML file signed by the project release key." } }, "createMarket(bytes16,string,string,address,uint256,uint256,uint256)": { "params": { "consumerSecurity": "The amount of XBR tokens a XBR consumer joining the market must deposit.", "maker": "The address of the XBR market maker that will run this market. The delegate of the market owner.", "marketFee": "The fee taken by the market (beneficiary is the market owner). The fee is a percentage of the revenue of the XBR Provider that receives XBR Token paid for transactions. The fee must be between 0% (inclusive) and 99% (inclusive), and is expressed as a fraction of the total supply of XBR tokens.", "marketId": "The ID of the market to create. Must be unique (not yet existing).", "meta": "The XBR market metadata published by the market owner. IPFS Multihash pointing to a RDF/Turtle file with market metadata.", "providerSecurity": "The amount of XBR tokens a XBR provider joining the market must deposit.", "terms": "The XBR market terms set by the market owner. IPFS Multihash pointing to a ZIP archive file with market documents." } }, "getAllMarketActors(bytes16)": { "params": { "marketId": "The ID of the market to lookup actors." }, "return": "List of addresses of market actors in the market." }, "getAllMarketPaymentChannels(bytes16)": { "params": { "marketId": "The XBR Market to get payment channels for." }, "return": "List of contract addresses of payment channels in the market." }, "getDomainKey(bytes16)": { "params": { "domainId": "The ID of the domain to lookup key." }, "return": "The Ed25519 public signing key for the domain." }, "getDomainLicense(bytes16)": { "params": { "domainId": "The ID of the domain to lookup license." }, "return": "IPFS Multihash pointer to domain license file on IPFS." }, "getDomainMeta(bytes16)": { "params": { "domainId": "The ID of the domain to lookup meta data." }, "return": "IPFS Multihash pointer to domain metadata file on IPFS." }, "getDomainOwner(bytes16)": { "params": { "domainId": "The ID of the domain to lookup owner." }, "return": "The address of the owner of the domain." }, "getDomainStatus(bytes16)": { "params": { "domainId": "The ID of the domain to lookup status." }, "return": "The current status of the domain." }, "getDomainTerms(bytes16)": { "params": { "domainId": "The ID of the domain to lookup terms." }, "return": "IPFS Multihash pointer to domain terms on IPFS." }, "getMarketActorSecurity(bytes16,address)": { "params": { "actor": "The address of the actor to lookup.", "marketId": "The ID of the market to lookup actor type." }, "return": "The security deposit of the actor in the given market." }, "getMarketActorType(bytes16,address)": { "params": { "actor": "The address of the actor to lookup.", "marketId": "The ID of the market to lookup actor type." }, "return": "The type under which the actor is joined in the market." }, "getMarketByMaker(address)": { "params": { "maker": "The market maker address to lookup market for" }, "return": "ID of the market maker." }, "getMarketConsumerSecurity(bytes16)": { "params": { "marketId": "The ID of the market to lookup consumer security for." }, "return": "The consumer security defined in the market." }, "getMarketFee(bytes16)": { "params": { "marketId": "The ID of the market to lookup market fee for." }, "return": "The fee defined in the market." }, "getMarketMaker(bytes16)": { "params": { "marketId": "The ID of the market to lookup the market maker address for." }, "return": "The address of the (offchain) market maker delegate responsible for this market." }, "getMarketMeta(bytes16)": { "params": { "marketId": "The ID of the market to lookup metadata for." }, "return": "IPFS Multihash pointer to market metadata." }, "getMarketOwner(bytes16)": { "params": { "marketId": "The ID of the market to lookup owner for." }, "return": "Address of the owner of the market." }, "getMarketProviderSecurity(bytes16)": { "params": { "marketId": "The ID of the market to lookup provider security for." }, "return": "The provider security defined in the market." }, "getMarketTerms(bytes16)": { "params": { "marketId": "The ID of the market to lookup terms for." }, "return": "IPFS Multihash pointer to market terms." }, "getMemberEula(address)": { "params": { "member": "The address to lookup the XBR Network member EULA for." }, "return": "IPFS Multihash pointing to XBR Network EULA file on IPFS." }, "getMemberLevel(address)": { "params": { "member": "The address to lookup the XBR Network member level for." }, "return": "The current member level of the member." }, "getMemberProfile(address)": { "params": { "member": "The address to lookup the XBR Network member profile for." }, "return": "IPFS Multihash pointing to member profile file on IPFS." }, "getNodeByKey(bytes32)": { "params": { "nodeKey": "The node public key to lookup" }, "return": "The Ed25519 public key of the node." }, "getNodeConfig(bytes16)": { "params": { "nodeId": "The ID of the node to lookup the config for." }, "return": "IPFS Multihash pointer to node config." }, "getNodeDomain(bytes16)": { "params": { "nodeId": "The ID of the node to lookup the domain for." }, "return": "The domain the node is currently paired with." }, "getNodeKey(bytes16)": { "params": { "nodeId": "The ID of the node to lookup the node public key for." }, "return": "The node public key." }, "getNodeType(bytes16)": { "params": { "nodeId": "The ID of the node to lookup the node type for." }, "return": "The node type." }, "isMaintainer(address)": { "params": { "account": "The account to check." }, "return": "`true` if the account is maintainer, otherwise `false`." }, "joinMarket(bytes16,uint8)": { "params": { "actorType": "The type of actor under which to join: PROVIDER or CONSUMER.", "marketId": "The ID of the XBR data market to join." } }, "leaveMarket(bytes16)": { "params": { "marketId": "The ID of the market to leave." } }, "openPaymentChannel(bytes16,address,uint256)": { "params": { "amount": "Amount of XBR Token to deposit into the payment channel.", "consumer": "The address of the (offchain) consumer delegate allowed to consumer the channel.", "marketId": "The ID of the market to open a payment channel within." } }, "pairNode(bytes16,bytes16,uint8,bytes32,string)": { "params": { "config": "Optional IPFS Multihash pointing to node configuration stored on IPFS", "domainId": "The ID of the domain to pair the node with.", "nodeId": "The ID of the node to pair. Must be globally unique (not yet existing).", "nodeKey": "The Ed25519 public node key.", "nodeType": "The type of node to pair the node under." } }, "register(string,string)": { "params": { "eula": "The IPFS Multihash of the XBR EULA being agreed to and stored as one ZIP file archive on IPFS. Currently, this must be equal to \"QmU7Gizbre17x6V2VR1Q2GJEjz6m8S1bXmBtVxS2vmvb81\"", "profile": "Optional public member profile: the IPFS Multihash of the member profile stored in IPFS." } }, "releaseNode(bytes16)": { "params": { "nodeId": "The ID of the node to release." } }, "requestPayingChannel(bytes16,address,uint256)": { "params": { "marketId": "The ID of the market to request a paying channel within." } }, "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." } }, "updateMarket(bytes16,string,string,address,uint256,uint256,uint256)": { "params": { "consumerSecurity": "Consumer security to set that will apply for new members (consumers) joining the market. It will NOT apply to current market members.", "maker": "When maker should be updated, provide a non-zero address.", "marketFee": "New market fee to set. The new market fee will apply to all new payment channels opened. It will NOT apply to already opened (or closed) payment channels.", "marketId": "The ID of the market to update.", "meta": "When metadata should be updated, provide a string of non-zero length with an IPFS Multihash pointing to the new RDF/Turtle file with market metadata.", "providerSecurity": "Provider security to set that will apply for new members (providers) joining the market. It will NOT apply to current market members.", "terms": "When terms should be updated, provide a string of non-zero length with an IPFS Multihash pointing to the new ZIP file with market terms." }, "return": "Flag indicating weather the market information was actually updated or left unchanged." } }, "title": "XBR Network main smart contract." }, "userdoc": { "methods": { "addMaintainer(address)": { "notice": "Add a new maintainer to the list of maintainers." }, "closeDomain(bytes16)": { "notice": "Close an existing XBR domain. The sender must be owner of the domain, and the domain must not have any nodes paired (anymore)." }, "closeMarket(bytes16)": { "notice": "Close a market. A closed market will not accept new memberships." }, "constructor": "Create a new network.", "createDomain(bytes16,bytes32,string,string,string)": { "notice": "Create a new XBR domain. Then sender to the transaction must be XBR network member and automatically becomes owner of the new domain." }, "createMarket(bytes16,string,string,address,uint256,uint256,uint256)": { "notice": "Create a new XBR market. The sender of the transaction must be XBR network member and automatically becomes owner of the new market." }, "getAllMarketActors(bytes16)": { "notice": "Returns all actors in a given market." }, "getAllMarketPaymentChannels(bytes16)": { "notice": "Lookup all payment channels for a XBR Market." }, "getDomainKey(bytes16)": { "notice": "Returns domain (signing) key." }, "getDomainLicense(bytes16)": { "notice": "Returns domain license." }, "getDomainMeta(bytes16)": { "notice": "Returns domain meta data." }, "getDomainOwner(bytes16)": { "notice": "Returns domain owner." }, "getDomainStatus(bytes16)": { "notice": "Returns domain status." }, "getDomainTerms(bytes16)": { "notice": "Returns domain terms." }, "getMarketActorSecurity(bytes16,address)": { "notice": "Returns the current security deposit of an actor within a market." }, "getMarketActorType(bytes16,address)": { "notice": "Returns the type of an actor within a market." }, "getMarketByMaker(address)": { "notice": "Lookup market ID by market maker address." }, "getMarketConsumerSecurity(bytes16)": { "notice": "Returns consumer security for a market." }, "getMarketFee(bytes16)": { "notice": "Returns market fee for a market." }, "getMarketMaker(bytes16)": { "notice": "Returns market maker for a market." }, "getMarketMeta(bytes16)": { "notice": "Returns metadata for a market." }, "getMarketOwner(bytes16)": { "notice": "Returns owner for a market." }, "getMarketProviderSecurity(bytes16)": { "notice": "Returns provider security for a market." }, "getMarketTerms(bytes16)": { "notice": "Returns terms for a market." }, "getMemberEula(address)": { "notice": "Returns XBR Network member EULA given an address." }, "getMemberLevel(address)": { "notice": "Returns XBR Network member level given an address." }, "getMemberProfile(address)": { "notice": "Returns XBR Network member profile given an address." }, "getNodeByKey(bytes32)": { "notice": "Lookup node ID by node public key." }, "getNodeConfig(bytes16)": { "notice": "Returns config for a node." }, "getNodeDomain(bytes16)": { "notice": "Returns domain for a node." }, "getNodeKey(bytes16)": { "notice": "Returns node public key for a node." }, "getNodeType(bytes16)": { "notice": "Returns node type for a node." }, "isMaintainer(address)": { "notice": "Check if the given address is currently a maintainer." }, "joinMarket(bytes16,uint8)": { "notice": "Join the given XBR market as the specified type of actor, which must be PROVIDER or CONSUMER." }, "leaveMarket(bytes16)": { "notice": "As a market actor (participant) currently member of a market, leave that market. A market can only be left when all payment channels of the sender are closed (or expired)." }, "openPaymentChannel(bytes16,address,uint256)": { "notice": "Open a new payment channel and deposit an amount of XBR token into a market." }, "pairNode(bytes16,bytes16,uint8,bytes32,string)": { "notice": "Pair a node with an existing XBR Domain. The sender must be owner of the domain." }, "register(string,string)": { "notice": "Join the XBR Network. All XBR stakeholders, namely XBR Data Providers, XBR Data Consumers, XBR Data Markets and XBR Data Clouds, must register with the XBR Network on the global blockchain by calling this function." }, "releaseNode(bytes16)": { "notice": "Release a node currently paired with an XBR domain. The sender must be owner of the domain." }, "renounceMaintainer()": { "notice": "Give away maintainer rights." }, "requestPayingChannel(bytes16,address,uint256)": { "notice": "As a data provider, request a new payment channel to get paid by the market maker. Given sufficient security amount (deposited by the data provider when joining the marker) to cover the request amount, the market maker will open a payment (state) channel to allow the market maker buying data keys in microtransactions, and offchain. The creation of the payment channel is asynchronously: the market maker is watching the global blockchain filtering for events relevant to the market managed by the maker. When a request to open a payment channel is recognized by the market maker, it will check the provider for sufficient security deposit covering the requested amount, and if all is fine, create a new payment channel and store the contract address for the channel request ID, so the data provider can retrieve it." }, "setMemberLevel(address,uint8)": { "notice": "Manually override 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" }, "unregister()": { "notice": "Leave the XBR Network." }, "updateMarket(bytes16,string,string,address,uint256,uint256,uint256)": { "notice": "Update market information, like market terms, metadata or maker address." } } } }