{ "contractName": "XBRChannel", "abi": [ { "inputs": [ { "internalType": "address", "name": "marketAdr", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum XBRTypes.ChannelType", "name": "ctype", "type": "uint8" }, { "indexed": true, "internalType": "bytes16", "name": "marketId", "type": "bytes16" }, { "indexed": true, "internalType": "bytes16", "name": "channelId", "type": "bytes16" }, { "indexed": false, "internalType": "uint256", "name": "payout", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "refund", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "closedAt", "type": "uint256" } ], "name": "Closed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum XBRTypes.ChannelType", "name": "ctype", "type": "uint8" }, { "indexed": true, "internalType": "bytes16", "name": "marketId", "type": "bytes16" }, { "indexed": true, "internalType": "bytes16", "name": "channelId", "type": "bytes16" }, { "indexed": false, "internalType": "uint256", "name": "payout", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "refund", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "timeoutAt", "type": "uint256" } ], "name": "Closing", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MaintainerAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MaintainerRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum XBRTypes.ChannelType", "name": "ctype", "type": "uint8" }, { "indexed": true, "internalType": "bytes16", "name": "marketId", "type": "bytes16" }, { "indexed": true, "internalType": "bytes16", "name": "channelId", "type": "bytes16" }, { "indexed": false, "internalType": "address", "name": "actor", "type": "address" }, { "indexed": false, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "address", "name": "marketmaker", "type": "address" }, { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "Opened", "type": "event" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addMaintainer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes16", "name": "", "type": "bytes16" } ], "name": "channelClosingStates", "outputs": [ { "internalType": "enum XBRTypes.ChannelState", "name": "state", "type": "uint8" }, { "internalType": "uint256", "name": "closingAt", "type": "uint256" }, { "internalType": "uint32", "name": "closingSeq", "type": "uint32" }, { "internalType": "uint256", "name": "closingBalance", "type": "uint256" }, { "internalType": "uint256", "name": "closedAt", "type": "uint256" }, { "internalType": "uint32", "name": "closedSeq", "type": "uint32" }, { "internalType": "uint256", "name": "closedBalance", "type": "uint256" }, { "internalType": "bytes", "name": "delegateSignature", "type": "bytes" }, { "internalType": "bytes", "name": "marketmakerSignature", "type": "bytes" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "bytes16", "name": "", "type": "bytes16" } ], "name": "channels", "outputs": [ { "internalType": "uint256", "name": "created", "type": "uint256" }, { "internalType": "uint32", "name": "seq", "type": "uint32" }, { "internalType": "enum XBRTypes.ChannelType", "name": "ctype", "type": "uint8" }, { "internalType": "bytes16", "name": "marketId", "type": "bytes16" }, { "internalType": "bytes16", "name": "channelId", "type": "bytes16" }, { "internalType": "address", "name": "actor", "type": "address" }, { "internalType": "address", "name": "delegate", "type": "address" }, { "internalType": "address", "name": "marketmaker", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isMaintainer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "market", "outputs": [ { "internalType": "contract XBRMarket", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "renounceMaintainer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "enum XBRTypes.ChannelType", "name": "ctype", "type": "uint8" }, { "internalType": "uint256", "name": "openedAt", "type": "uint256" }, { "internalType": "bytes16", "name": "marketId", "type": "bytes16" }, { "internalType": "bytes16", "name": "channelId", "type": "bytes16" }, { "internalType": "address", "name": "actor", "type": "address" }, { "internalType": "address", "name": "delegate", "type": "address" }, { "internalType": "address", "name": "marketmaker", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "openChannel", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "bytes16", "name": "channelId", "type": "bytes16" }, { "internalType": "uint256", "name": "closeAt", "type": "uint256" }, { "internalType": "uint32", "name": "closingChannelSeq", "type": "uint32" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "bool", "name": "isFinal", "type": "bool" }, { "internalType": "bytes", "name": "delegateSignature", "type": "bytes" }, { "internalType": "bytes", "name": "marketmakerSignature", "type": "bytes" } ], "name": "closeChannel", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"marketAdr\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum XBRTypes.ChannelType\",\"name\":\"ctype\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"marketId\",\"type\":\"bytes16\"},{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"channelId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"refund\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"}],\"name\":\"Closed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum XBRTypes.ChannelType\",\"name\":\"ctype\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"marketId\",\"type\":\"bytes16\"},{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"channelId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"refund\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeoutAt\",\"type\":\"uint256\"}],\"name\":\"Closing\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MaintainerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MaintainerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum XBRTypes.ChannelType\",\"name\":\"ctype\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"marketId\",\"type\":\"bytes16\"},{\"indexed\":true,\"internalType\":\"bytes16\",\"name\":\"channelId\",\"type\":\"bytes16\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"marketmaker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"Opened\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMaintainer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"\",\"type\":\"bytes16\"}],\"name\":\"channelClosingStates\",\"outputs\":[{\"internalType\":\"enum XBRTypes.ChannelState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"closingAt\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"closingSeq\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"closingBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"closedSeq\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"closedBalance\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"delegateSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"marketmakerSignature\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"\",\"type\":\"bytes16\"}],\"name\":\"channels\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"created\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"seq\",\"type\":\"uint32\"},{\"internalType\":\"enum XBRTypes.ChannelType\",\"name\":\"ctype\",\"type\":\"uint8\"},{\"internalType\":\"bytes16\",\"name\":\"marketId\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"channelId\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"marketmaker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"channelId\",\"type\":\"bytes16\"},{\"internalType\":\"uint256\",\"name\":\"closeAt\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"closingChannelSeq\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isFinal\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"delegateSignature\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"marketmakerSignature\",\"type\":\"bytes\"}],\"name\":\"closeChannel\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMaintainer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"market\",\"outputs\":[{\"internalType\":\"contract XBRMarket\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"enum XBRTypes.ChannelType\",\"name\":\"ctype\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"openedAt\",\"type\":\"uint256\"},{\"internalType\":\"bytes16\",\"name\":\"marketId\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"channelId\",\"type\":\"bytes16\"},{\"internalType\":\"address\",\"name\":\"actor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"marketmaker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"openChannel\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMaintainer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"addMaintainer(address)\":{\"params\":{\"account\":\"The account to grant maintainer rights to.\"}},\"constructor\":{\"params\":{\"marketAdr\":\"The XBR markets contract this instance is associated with.\"}},\"isMaintainer(address)\":{\"params\":{\"account\":\"The account to check.\"},\"return\":\"`true` if the account is maintainer, otherwise `false`.\"},\"openChannel(uint8,uint256,bytes16,bytes16,address,address,address,address,uint256,bytes)\":{\"params\":{\"actor\":\"The actor (buyer/seller in the market) that opened this channel.\",\"amount\":\"The amount initially transfered to and held in the channel until closed.\",\"channelId\":\"The ID of the new XBR channel (must be unique).\",\"ctype\":\"Channel type: payment or paying channel.\",\"delegate\":\"The delegate (off-chain) allowed to spend/earn-on this channel (off-chain) in the name of the actor (buyer/seller in the market).\",\"marketId\":\"The ID of the XBR market this channel is associated with.\",\"marketmaker\":\"The off-chain market maker executing the channel.\",\"openedAt\":\"Block number when the channel opening signature was created.\",\"recipient\":\"The receiver (on-chain) of the channel payout.\",\"signature\":\"EIP712 signature, signed by the member.\"}}}},\"userdoc\":{\"methods\":{\"addMaintainer(address)\":{\"notice\":\"Add a new maintainer to the list of maintainers.\"},\"closeChannel(bytes16,uint256,uint32,uint256,bool,bytes,bytes)\":{\"notice\":\"Trigger closing this payment channel. When the first participant has called `close()` submitting its latest transaction/state, a timeout period begins during which the other party of the payment channel has to submit its latest transaction/state too. When both transaction have been submitted, and the submitted transactions/states agree, the channel immediately closes, and the consumed amount of token in the channel is transferred to the channel recipient, and the remaining amount of token is transferred back to the original sender.\"},\"constructor\":\"Constructor for this contract, only called once (when deploying the network). \",\"isMaintainer(address)\":{\"notice\":\"Check if the given address is currently a maintainer.\"},\"openChannel(uint8,uint256,bytes16,bytes16,address,address,address,address,uint256,bytes)\":{\"notice\":\"Open a new XBR payment/paying channel for processing off-chain micro-transactions. \"},\"renounceMaintainer()\":{\"notice\":\"Give away maintainer rights.\"}},\"notice\":\"XBR Payment/Paying Channel between a XBR data consumer and the XBR market maker, or the XBR Market Maker and a XBR data provider.\"}},\"settings\":{\"compilationTarget\":{\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRChannel.sol\":\"XBRChannel\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRCatalog.sol\":{\"keccak256\":\"0xe348489559b4067fb48fdda5f284c026bb6e69654cfe6cf3ed04369605da8fd3\",\"urls\":[\"bzz-raw://b9b373ce93b6811c66294f7875f1499fa0baa4506665f04d1afa97e742227831\",\"dweb:/ipfs/QmSJnw3abCaVanF8NYJ1sTYgrzVNCdtgdRVbNDMzfAt5Mz\"]},\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRChannel.sol\":{\"keccak256\":\"0x12425fe6641fe72afe543a8ed54decc97dab97d533e0c8006a60fa99a90df9b7\",\"urls\":[\"bzz-raw://3793ce4874437f979f5a0acfcb17da60e208a2b636fffd08a3c7c516a584ce9b\",\"dweb:/ipfs/QmNa7Mb8trNfjJCotyWgt2sbHGXPjjBwuAvWfEQHNViQsa\"]},\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRMaintained.sol\":{\"keccak256\":\"0x2d3c274d75b270759fd8d6822d0690595cdae6d3878abc7eb33c3d19ce358dfe\",\"urls\":[\"bzz-raw://f5995d408d9a328f36a76e9c9e09828a0ff114757f7c25650944367bcd403389\",\"dweb:/ipfs/QmPNqFpo6x9pF7xkC28eEyTqAcT9WwTvUYsVEKbTVywqs3\"]},\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRMarket.sol\":{\"keccak256\":\"0x9d896c5da724c7a70fdb9fa7a0af2998831214a3b64c1318a7d78a32c01c2d46\",\"urls\":[\"bzz-raw://afdb4eca2904ab2e6310f5ee46a66b4896b8415f53b97fab5cf3c66c2eb37d6e\",\"dweb:/ipfs/Qmb9gbBk1KnQ8e1nP98tNQCLujCabrPij3gqhMfrjktMaF\"]},\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRNetwork.sol\":{\"keccak256\":\"0x32ad15ae4bb11302ab25ede12755a8fbb99feb054b6eabe48bfc7dfd24aad936\",\"urls\":[\"bzz-raw://ab4f124a80210614079733243fdbade7d310cd37b8cd7a94db9bc1bf4ba712d6\",\"dweb:/ipfs/QmfUbd8SWju2XZRYtmujEnc6dYGndtUE7LBmqdLJ33337X\"]},\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRToken.sol\":{\"keccak256\":\"0xe356783413d9d169270eddee3718f6761cf1a46cd6bf634a78a46627cf036fa8\",\"urls\":[\"bzz-raw://986c7122987c421a25e4c22af312f05c2dc4cd9904cf1c33c45ccd71faf8e98f\",\"dweb:/ipfs/QmZN9MAy9qprWcA1cUjsZnMZopcw7XdoWifznU2zE3MrZp\"]},\"/home/travis/build/crossbario/xbr-protocol/contracts/XBRTypes.sol\":{\"keccak256\":\"0xb7d784604c76b74c4f0fcaf2960e48e25c068beaf70a07ac2146d48d24d245b4\",\"urls\":[\"bzz-raw://7f00b3af2ba72b830d5ed24a88175c117d1cf56d94001239946e872037f27aa0\",\"dweb:/ipfs/QmdGZPFtodRLhuXZ2Nmxq7SU8NiaaFxy65WU2YUhdNBbyK\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xb15af804e2bc97db51e4e103f13de9fe13f87e6b835d7a88c897966c0e58506e\",\"urls\":[\"bzz-raw://1e8cff8437557fc915a3bed968fcd8f2df9809599e665ef69c2c9ce628548055\",\"dweb:/ipfs/QmP5spYP8vs2jvLF8zNrXUbqB79hMsoEvMHiLcBxerWKcm\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0x4a3a810b7ebe742e897e1fd428b3eeed2196d3acea58eaf9c566ed10d545d2ed\",\"urls\":[\"bzz-raw://28d03f328e19e4099d5013de0649afaeaabac1a614e130767ab1cb4aca9775b6\",\"dweb:/ipfs/Qmb9iW7yNuYehB2NfhRMs9TakqbLVQhBhmGMkaDZ5g1Eb4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}", "bytecode": "0x60806040526001805463ffffffff60a01b1916600160a01b1790553480156200002757600080fd5b5060405162005160380380620051608339810160408190526200004a9162000195565b6200005e336001600160e01b036200008416565b600180546001600160a01b0319166001600160a01b039290921691909117905562000298565b6200009f816000620000d660201b620038bc1790919060201c565b6040516001600160a01b038216907f1390a149489c82e9e2e89927bdb17ad1ea3f0cc314fce06c96369721d3afb8f090600090a250565b620000eb82826001600160e01b036200013916565b15620001145760405162461bcd60e51b81526004016200010b906200023f565b60405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620001645760405162461bcd60e51b81526004016200010b9062000251565b506001600160a01b03811660009081526020839052604090205460ff165b92915050565b805162000182816200027e565b600060208284031215620001a857600080fd5b6000620001b6848462000188565b949350505050565b6000620001cd601f8362000263565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b60006200020860228362000263565b7f526f6c65733a206163636f756e7420697320746865207a65726f206164647265815261737360f01b602082015260400192915050565b602080825281016200018281620001be565b602080825281016200018281620001f9565b90815260200190565b60006001600160a01b03821662000182565b62000289816200026c565b81146200029557600080fd5b50565b614eb880620002a86000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80636b453c1f1161005b5780636b453c1f1461010557806380f556051461011857806395424f361461012d578063dd57366a1461014057610088565b806323a658271461008d578063314db06b146100be5780635b10a199146100c85780635d5d5ad8146100f2575b600080fd5b6100a061009b366004613b74565b610160565b6040516100b5999897969594939291906148c5565b60405180910390f35b6100c66102cd565b005b6100db6100d6366004613b74565b6102d8565b6040516100b59b9a99989796959493929190614c32565b6100c6610100366004613b92565b6103e1565b6100c6610113366004613b12565b610f40565b610120610f5e565b6040516100b591906148b7565b6100c661013b366004613c7c565b610f6d565b61015361014e366004613b12565b61260a565b6040516100b59190614873565b6003602081815260009283526040928390208054600180830154600280850154968501546004860154600587015460068801546007890180548d51601f6000199a831615610100029a909a01909116969096049788018b90048b0286018b01909c5286855260ff9097169a949963ffffffff908116999398929791169590949193928301828280156102335780601f1061020857610100808354040283529160200191610233565b820191906000526020600020905b81548152906001019060200180831161021657829003601f168201915b5050505060088301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156102c35780601f10610298576101008083540402835291602001916102c3565b820191906000526020600020905b8154815290600101906020018083116102a657829003601f168201915b5050505050905089565b6102d633612624565b565b6002602081815260009283526040928390208054600180830154838601546003850154600486015460058701546006880154600789015460088a0180548e516101009a8216159a909a0260001901169c909c04601f81018c90048c0289018c01909d528c8852979b63ffffffff87169b640100000000880460ff169b600160281b909804608090811b9b97901b996001600160a01b039687169995871698948716979690931695929492939091908301828280156103d75780601f106103ac576101008083540402835291602001916103d7565b820191906000526020600020905b8154815290600101906020018083116103ba57829003601f168201915b505050505090508b565b6001600160801b031987166000908152600260205260409020600301546001600160a01b031661042c5760405162461bcd60e51b815260040161042390614bc2565b60405180910390fd5b6001600160801b0319871660009081526003602052604081205460ff16600481111561045457fe5b14156104725760405162461bcd60e51b815260040161042390614bc2565b60016001600160801b0319881660009081526003602052604090205460ff16600481111561049c57fe5b14806104cf575060026001600160801b0319881660009081526003602052604090205460ff1660048111156104cd57fe5b145b6104eb5760405162461bcd60e51b815260040161042390614a32565b4386111580156106f15750600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561054457600080fd5b505afa158015610558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061057c9190810190613c5e565b6001600160a01b031663b4cd23916040518163ffffffff1660e01b815260040160206040518083038186803b1580156105b457600080fd5b505afa1580156105c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105ec9190810190613d6d565b431115806106f15750600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561064357600080fd5b505afa158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067b9190810190613c5e565b6001600160a01b031663b4cd23916040518163ffffffff1660e01b815260040160206040518083038186803b1580156106b357600080fd5b505afa1580156106c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106eb9190810190613d6d565b43038610155b61070d5760405162461bcd60e51b815260040161042390614bb2565b6001600160801b03198716600090815260026020908152604091829020600401548251610100810180855260015463339cd7e560e11b909152935173__XBRTypes______________________________9463989a750a946001600160a01b03948516948493921691636739afca916101048086019290818703018186803b15801561079757600080fd5b505afa1580156107ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107cf9190810190613c5e565b6001600160a01b03166359c8e6036040518163ffffffff1660e01b815260040160206040518083038186803b15801561080757600080fd5b505afa15801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061083f9190810190613d6d565b81526001546040805163339cd7e560e11b815290516020938401936001600160a01b0390931692636739afca9260048082019391829003018186803b15801561088757600080fd5b505afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108bf9190810190613c5e565b6001600160a01b031663a787d61b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156108f757600080fd5b505afa15801561090b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061092f9190810190613b38565b6001600160a01b0316815260208082018c90526001600160801b0319808e166000818152600290935260409283902060010154600160281b9004608090811b90921683850152606084015263ffffffff8c169083015260a082018a905288151560c090920191909152516001600160e01b031960e085901b1681526109ba92919087906004016147ea565b60206040518083038186803b1580156109d257600080fd5b505af41580156109e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a0a9190810190613b56565b610a265760405162461bcd60e51b815260040161042390614bf2565b6001600160801b03198716600090815260026020908152604091829020600501548251610100810180855260015463339cd7e560e11b909152935173__XBRTypes______________________________9463989a750a946001600160a01b03948516948493921691636739afca916101048086019290818703018186803b158015610ab057600080fd5b505afa158015610ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ae89190810190613c5e565b6001600160a01b03166359c8e6036040518163ffffffff1660e01b815260040160206040518083038186803b158015610b2057600080fd5b505afa158015610b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b589190810190613d6d565b81526001546040805163339cd7e560e11b815290516020938401936001600160a01b0390931692636739afca9260048082019391829003018186803b158015610ba057600080fd5b505afa158015610bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bd89190810190613c5e565b6001600160a01b031663a787d61b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c489190810190613b38565b6001600160a01b0316815260208082018c90526001600160801b0319808e166000818152600290935260409283902060010154600160281b9004608090811b90921683850152606084015263ffffffff8c169083015260a082018a905288151560c090920191909152516001600160e01b031960e085901b168152610cd392919086906004016147ea565b60206040518083038186803b158015610ceb57600080fd5b505af4158015610cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d239190810190613b56565b610d3f5760405162461bcd60e51b815260040161042390614b72565b6001600160801b03198716600090815260026020526040902060070154841115610d7b5760405162461bcd60e51b815260040161042390614b82565b60018563ffffffff161015610da25760405162461bcd60e51b815260040161042390614a92565b60026001600160801b0319881660009081526003602052604090205460ff166004811115610dcc57fe5b1415610e8b576001600160801b0319871660009081526003602052604090206004015415610e0c5760405162461bcd60e51b815260040161042390614ab2565b6001600160801b031987166000908152600360205260409020600101544210610e475760405162461bcd60e51b815260040161042390614a82565b6001600160801b0319871660009081526003602052604090206002015463ffffffff808716911610610e8b5760405162461bcd60e51b815260040161042390614ad2565b6001600160801b0319871660009081526003602052604090206002015463ffffffff9081169086161115610ec457610ec487868661266c565b8280610ece575083155b80610f27575060026001600160801b0319881660009081526003602052604090205460ff166004811115610efe57fe5b148015610f2757506001600160801b031987166000908152600360205260409020600101544210155b15610f3757610f37878686612c8e565b50505050505050565b610f493361260a565b610f5257600080fd5b610f5b816137e0565b50565b6001546001600160a01b031681565b600154604051630ab3a2e760e31b81526000916001600160a01b03169063559d173890610f9e908c90600401614881565b60206040518083038186803b158015610fb657600080fd5b505afa158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fee9190810190613b38565b6001600160a01b031614156110155760405162461bcd60e51b815260040161042390614b42565b6001600160801b031987166000908152600260205260409020600301546001600160a01b0316156110585760405162461bcd60e51b815260040161042390614aa2565b6001546040805163339cd7e560e11b815290516000926001600160a01b031691636739afca916004808301926020929190829003018186803b15801561109d57600080fd5b505afa1580156110b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110d59190810190613c5e565b6001600160a01b03166308ae4b0c886040518263ffffffff1660e01b815260040161110091906147b4565b60006040518083038186803b15801561111857600080fd5b505afa15801561112c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111549190810190613d8b565b50935060019250611163915050565b81600581111561116f57fe5b14806111865750600281600581111561118457fe5b145b6111a25760405162461bcd60e51b815260040161042390614ba2565b6001600160a01b0386166111c85760405162461bcd60e51b815260040161042390614a72565b60015460405163bc385fcd60e01b81526001600160a01b039091169063bc385fcd906111f8908c90600401614881565b60206040518083038186803b15801561121057600080fd5b505afa158015611224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112489190810190613b38565b6001600160a01b0316856001600160a01b0316146112785760405162461bcd60e51b815260040161042390614ac2565b6001546040805163339cd7e560e11b815290516000926001600160a01b031691636739afca916004808301926020929190829003018186803b1580156112bd57600080fd5b505afa1580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112f59190810190613c5e565b6001600160a01b03166308ae4b0c866040518263ffffffff1660e01b815260040161132091906147b4565b60006040518083038186803b15801561133857600080fd5b505afa15801561134c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113749190810190613d8b565b50935060019250611383915050565b81600581111561138f57fe5b14806113a6575060028160058111156113a457fe5b145b6113c25760405162461bcd60e51b815260040161042390614b12565b438b111580156115c85750600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561141b57600080fd5b505afa15801561142f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114539190810190613c5e565b6001600160a01b031663b4cd23916040518163ffffffff1660e01b815260040160206040518083038186803b15801561148b57600080fd5b505afa15801561149f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114c39190810190613d6d565b431115806115c85750600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561151a57600080fd5b505afa15801561152e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115529190810190613c5e565b6001600160a01b031663b4cd23916040518163ffffffff1660e01b815260040160206040518083038186803b15801561158a57600080fd5b505afa15801561159e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115c29190810190613d6d565b43038b10155b6115e45760405162461bcd60e51b815260040161042390614bb2565b6000841180156116e35750600154604051631a45505360e21b81526001600160a01b0390911690636915414c9061161f908d90600401614881565b60206040518083038186803b15801561163757600080fd5b505afa15801561164b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061166f9190810190613b38565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116a757600080fd5b505afa1580156116bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116df9190810190613d6d565b8411155b6116ff5760405162461bcd60e51b815260040161042390614a22565b611707613908565b604051806101600160405280600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561176157600080fd5b505afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117999190810190613c5e565b6001600160a01b03166359c8e6036040518163ffffffff1660e01b815260040160206040518083038186803b1580156117d157600080fd5b505afa1580156117e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118099190810190613d6d565b81526001546040805163339cd7e560e11b815290516020938401936001600160a01b0390931692636739afca9260048082019391829003018186803b15801561185157600080fd5b505afa158015611865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118899190810190613c5e565b6001600160a01b031663a787d61b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118c157600080fd5b505afa1580156118d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118f99190810190613b38565b6001600160a01b031681526020018e600281111561191357fe5b60ff1681526020018d81526020018c6001600160801b03191681526020018b6001600160801b03191681526020018a6001600160a01b03168152602001896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b0316815260200186815250905073__XBRTypes______________________________6310e78f7d8a83876040518463ffffffff1660e01b81526004016119be93929190614822565b60206040518083038186803b1580156119d657600080fd5b505af41580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a0e9190810190613b56565b611a2a5760405162461bcd60e51b815260040161042390614bd2565b60018d6002811115611a3857fe5b1415611dff5760015460405163bc385fcd60e01b81526001600160a01b039091169063bc385fcd90611a6e908e90600401614881565b60206040518083038186803b158015611a8657600080fd5b505afa158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611abe9190810190613b38565b6001600160a01b0316336001600160a01b03161480611ae55750336001600160a01b038a16145b611b015760405162461bcd60e51b815260040161042390614be2565b600154604051633d1fbba160e01b81526001600160a01b0390911690633d1fbba190611b36908e908d9060029060040161488f565b60206040518083038186803b158015611b4e57600080fd5b505afa158015611b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b869190810190613b56565b80611c115750600154604051633d1fbba160e01b81526001600160a01b0390911690633d1fbba190611bc1908e908d9060039060040161488f565b60206040518083038186803b158015611bd957600080fd5b505afa158015611bed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c119190810190613b56565b611c2d5760405162461bcd60e51b815260040161042390614af2565b600154604051630ab3a2e760e31b81526001600160a01b039091169063559d173890611c5d908e90600401614881565b60206040518083038186803b158015611c7557600080fd5b505afa158015611c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611cad9190810190613b38565b6001600160a01b0316866001600160a01b031614611cdd5760405162461bcd60e51b815260040161042390614b62565b600154604051631a45505360e21b81526001600160a01b0390911690636915414c90611d0d908e90600401614881565b60206040518083038186803b158015611d2557600080fd5b505afa158015611d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5d9190810190613b38565b6001600160a01b03166323b872dd8a30886040518463ffffffff1660e01b8152600401611d8c939291906147c2565b602060405180830381600087803b158015611da657600080fd5b505af1158015611dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dde9190810190613b56565b611dfa5760405162461bcd60e51b815260040161042390614a62565b61227f565b60028d6002811115611e0d57fe5b14156122675760015460405163bc385fcd60e01b81526001600160a01b039091169063bc385fcd90611e43908e90600401614881565b60206040518083038186803b158015611e5b57600080fd5b505afa158015611e6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e939190810190613b38565b6001600160a01b0316336001600160a01b03161480611f425750600154604051630ab3a2e760e31b81526001600160a01b039091169063559d173890611edd908e90600401614881565b60206040518083038186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f2d9190810190613b38565b6001600160a01b0316336001600160a01b0316145b611f5e5760405162461bcd60e51b815260040161042390614b92565b60018054604051633d1fbba160e01b81526001600160a01b0390911691633d1fbba191611f92918f918e919060040161488f565b60206040518083038186803b158015611faa57600080fd5b505afa158015611fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611fe29190810190613b56565b8061206d5750600154604051633d1fbba160e01b81526001600160a01b0390911690633d1fbba19061201d908e908d9060039060040161488f565b60206040518083038186803b15801561203557600080fd5b505afa158015612049573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061206d9190810190613b56565b6120895760405162461bcd60e51b815260040161042390614ae2565b886001600160a01b0316866001600160a01b0316146120ba5760405162461bcd60e51b815260040161042390614a52565b600154604051631a45505360e21b81526001600160a01b0390911690636915414c906120ea908e90600401614881565b60206040518083038186803b15801561210257600080fd5b505afa158015612116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061213a9190810190613b38565b6001600160a01b03166323b872dd600160009054906101000a90046001600160a01b03166001600160a01b031663bc385fcd8e6040518263ffffffff1660e01b81526004016121899190614881565b60206040518083038186803b1580156121a157600080fd5b505afa1580156121b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121d99190810190613b38565b30886040518463ffffffff1660e01b81526004016121f9939291906147c2565b602060405180830381600087803b15801561221357600080fd5b505af1158015612227573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061224b9190810190613b56565b611dfa5760405162461bcd60e51b815260040161042390614b52565b60405162461bcd60e51b815260040161042390614c12565b60408051610160810182528d8152600154600160a01b900463ffffffff1660208201529081018e60028111156122b157fe5b81526001600160801b03198d8116602080840191909152908d1660408084018290526001600160a01b038e811660608601528d811660808601528c811660a08601528b1660c085015260e084018a90526101009093018890526000908152600280835290839020845181559184015160018301805463ffffffff191663ffffffff90921691909117808255938501519293909164ff00000000199091169064010000000090849081111561236157fe5b0217905550606082015160018201805474ffffffffffffffffffffffffffffffff00000000001916600160281b608093841c02179055808301516002830180546001600160801b0319169190921c17905560a08201516003820180546001600160a01b03199081166001600160a01b039384161790915560c0840151600484018054831691841691909117905560e08401516005840180548316918416919091179055610100840151600684018054909216921691909117905561012082015160078201556101408201518051612442916008840191602090910190613964565b505060408051610120810190915290508060018152600060208083018290526040808401839052606084018390526080840183905260a0840183905260c084018390528051808301825283815260e085015280518083018252838152610100909401939093526001600160801b03198e168252600390522081518154829060ff191660018360048111156124d257fe5b02179055506020828101516001830155604083015160028301805463ffffffff92831663ffffffff1991821617909155606085015160038501556080850151600485015560a085015160058501805491909316911617905560c0830151600683015560e0830151805161254b9260078501920190613964565b506101008201518051612568916008840191602090910190613964565b50905050600160149054906101000a900463ffffffff16600101600160146101000a81548163ffffffff021916908363ffffffff160217905550896001600160801b0319168b6001600160801b0319167fa0d8097922181d29fdae187c105eb752af1521063a1fb708d66ad8128ecbaf758f8c8c8c8c8c8c6040516125f39796959493929190614958565b60405180910390a350505050505050505050505050565b600061261c818363ffffffff61382816565b90505b919050565b61263560008263ffffffff61387416565b6040516001600160a01b038216907fa7b36d52bea726c3aa90d876d0e52a1089a347b3e3408a03f08eae32f96fdbb490600090a250565b600180546001600160801b03198516600090815260026020526040808220909301549251631a45505360e21b815290926001600160a01b0390921691636915414c916126c591600160281b900460801b90600401614881565b60206040518083038186803b1580156126dd57600080fd5b505afa1580156126f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127159190810190613b38565b6001600160801b0319851660009081526002602090815260408083206007015481516318160ddd60e01b81529151949550869003936001600160a01b038616926318160ddd9260048082019391829003018186803b15801561277657600080fd5b505afa15801561278a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127ae9190810190613d6d565b600180546001600160801b031989166000908152600260205260409081902090920154915163d4dba11360e01b81526001600160a01b039091169163d4dba1139161280691600160281b900460801b90600401614881565b60206040518083038186803b15801561281e57600080fd5b505afa158015612832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128569190810190613d6d565b83028161285f57fe5b0490506000600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128b257600080fd5b505afa1580156128c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128ea9190810190613c5e565b6001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561292257600080fd5b505afa158015612936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061295a9190810190613c5e565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561299257600080fd5b505afa1580156129a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129ca9190810190613d6d565b600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a1857600080fd5b505afa158015612a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a509190810190613c5e565b6001600160a01b03166350520b1f6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8857600080fd5b505afa158015612a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ac09190810190613d6d565b830281612ac957fe5b6001600160801b03198916600090815260036020526040902060020154919004915063ffffffff1615612b33576001600160801b0319871660009081526003602081905260409091200154851115612b335760405162461bcd60e51b815260040161042390614c22565b6001600160801b031987166000908152600360208181526040928390208054600260ff19909116811782558101805463ffffffff191663ffffffff8c161790559091018790556001548251637e77cd2f60e01b815292516001600160a01b0390911692637e77cd2f926004808301939192829003018186803b158015612bb857600080fd5b505afa158015612bcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612bf09190810190613d6d565b6001600160801b031988811660008181526003602081815260408084204297909701600197880181905560028352938190209096015491905293519193600160281b810460801b909316927f3b3f5c6d3fe73989434e575835dbf86682d6db29a61466ead97abce42c3ae08692612c7d9264010000000090920460ff1691888a0391888a03918d916149c6565b60405180910390a350505050505050565b600180546001600160801b03198516600090815260026020526040808220909301549251631a45505360e21b815290926001600160a01b0390921691636915414c91612ce791600160281b900460801b90600401614881565b60206040518083038186803b158015612cff57600080fd5b505afa158015612d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d379190810190613b38565b6001600160801b0319851660009081526002602090815260408083206007015481516318160ddd60e01b81529151949550869003936001600160a01b038616926318160ddd9260048082019391829003018186803b158015612d9857600080fd5b505afa158015612dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612dd09190810190613d6d565b600180546001600160801b031989166000908152600260205260409081902090920154915163d4dba11360e01b81526001600160a01b039091169163d4dba11391612e2891600160281b900460801b90600401614881565b60206040518083038186803b158015612e4057600080fd5b505afa158015612e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612e789190810190613d6d565b830281612e8157fe5b0490506000600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ed457600080fd5b505afa158015612ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f0c9190810190613c5e565b6001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b158015612f4457600080fd5b505afa158015612f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f7c9190810190613c5e565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612fb457600080fd5b505afa158015612fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612fec9190810190613d6d565b600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561303a57600080fd5b505afa15801561304e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506130729190810190613c5e565b6001600160a01b03166350520b1f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156130aa57600080fd5b505afa1580156130be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506130e29190810190613d6d565b8302816130eb57fe5b049050818303156132b65760016001600160801b03198816600090815260026020819052604090912060010154640100000000900460ff169081111561312d57fe5b14156131f7576001600160801b031987166000908152600260205260409081902060050154905163a9059cbb60e01b81526001600160a01b038681169263a9059cbb92613184929091169086880390600401614851565b602060405180830381600087803b15801561319e57600080fd5b505af11580156131b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131d69190810190613b56565b6131f25760405162461bcd60e51b815260040161042390614c02565b6132b6565b6001600160801b031987166000908152600260205260409081902060030154905163a9059cbb60e01b81526001600160a01b038681169263a9059cbb92613248929091169086880390600401614851565b602060405180830381600087803b15801561326257600080fd5b505af1158015613276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061329a9190810190613b56565b6132b65760405162461bcd60e51b815260040161042390614c02565b84156134785760016001600160801b03198816600090815260026020819052604090912060010154640100000000900460ff16908111156132f357fe5b14156133bb576001600160801b031987166000908152600260205260409081902060030154905163a9059cbb60e01b81526001600160a01b038681169263a9059cbb9261334892909116908990600401614851565b602060405180830381600087803b15801561336257600080fd5b505af1158015613376573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061339a9190810190613b56565b6133b65760405162461bcd60e51b815260040161042390614b32565b613478565b6001600160801b031987166000908152600260205260409081902060050154905163a9059cbb60e01b81526001600160a01b038681169263a9059cbb9261340a92909116908990600401614851565b602060405180830381600087803b15801561342457600080fd5b505af1158015613438573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061345c9190810190613b56565b6134785760405162461bcd60e51b815260040161042390614b32565b811561375057600180546001600160801b0319891660009081526002602052604090819020909201549151630ab3a2e760e31b81526001600160a01b038088169363a9059cbb939091169163559d1738916134e191600160281b90910460801b90600401614881565b60206040518083038186803b1580156134f957600080fd5b505afa15801561350d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506135319190810190613b38565b8385036040518363ffffffff1660e01b8152600401613551929190614851565b602060405180830381600087803b15801561356b57600080fd5b505af115801561357f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506135a39190810190613b56565b6135bf5760405162461bcd60e51b815260040161042390614a42565b836001600160a01b031663a9059cbb600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561361c57600080fd5b505afa158015613630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506136549190810190613c5e565b6001600160a01b03166323bd4d7a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561368c57600080fd5b505afa1580156136a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506136c49190810190613b38565b836040518363ffffffff1660e01b81526004016136e2929190614851565b602060405180830381600087803b1580156136fc57600080fd5b505af1158015613710573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506137349190810190613b56565b6137505760405162461bcd60e51b815260040161042390614a42565b6001600160801b031987811660008181526003602081815260408084204260048201819055815460ff191690941790556002909152918290206001015491519293600160281b830460801b16927f2fe87406c6d55a2f235383dcc9a76d29f7fad13d38d12ae7186aeaeb3e1d84eb92612c7d9264010000000090910460ff1691888a0391888a03918d91906149c6565b6137f160008263ffffffff6138bc16565b6040516001600160a01b038216907f1390a149489c82e9e2e89927bdb17ad1ea3f0cc314fce06c96369721d3afb8f090600090a250565b60006001600160a01b0382166138505760405162461bcd60e51b815260040161042390614b22565b506001600160a01b03811660009081526020839052604090205460ff165b92915050565b61387e8282613828565b61389a5760405162461bcd60e51b815260040161042390614b02565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6138c68282613828565b156138e35760405162461bcd60e51b815260040161042390614a12565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106139a557805160ff19168380011785556139d2565b828001600101855582156139d2579182015b828111156139d25782518255916020019190600101906139b7565b506139de9291506139e2565b5090565b6139fc91905b808211156139de57600081556001016139e8565b90565b803561386e81614e1a565b805161386e81614e1a565b803561386e81614e2e565b805161386e81614e2e565b803561386e81614e37565b600082601f830112613a4757600080fd5b8151613a5a613a5582614d03565b614cdc565b91508082526020830160208301858383011115613a7657600080fd5b613a81838284614dc6565b50505092915050565b600082601f830112613a9b57600080fd5b8135613aa9613a5582614d03565b91508082526020830160208301858383011115613ac557600080fd5b613a81838284614dba565b805161386e81614e40565b803561386e81614e49565b805161386e81614e56565b803561386e81614e63565b805161386e81614e63565b803561386e81614e6c565b600060208284031215613b2457600080fd5b6000613b3084846139ff565b949350505050565b600060208284031215613b4a57600080fd5b6000613b308484613a0a565b600060208284031215613b6857600080fd5b6000613b308484613a20565b600060208284031215613b8657600080fd5b6000613b308484613a2b565b600080600080600080600060e0888a031215613bad57600080fd5b6000613bb98a8a613a2b565b9750506020613bca8a828b01613af1565b9650506040613bdb8a828b01613b07565b9550506060613bec8a828b01613af1565b9450506080613bfd8a828b01613a15565b93505060a088013567ffffffffffffffff811115613c1a57600080fd5b613c268a828b01613a8a565b92505060c088013567ffffffffffffffff811115613c4357600080fd5b613c4f8a828b01613a8a565b91505092959891949750929550565b600060208284031215613c7057600080fd5b6000613b308484613ad0565b6000806000806000806000806000806101408b8d031215613c9c57600080fd5b6000613ca88d8d613adb565b9a50506020613cb98d828e01613af1565b9950506040613cca8d828e01613a2b565b9850506060613cdb8d828e01613a2b565b9750506080613cec8d828e016139ff565b96505060a0613cfd8d828e016139ff565b95505060c0613d0e8d828e016139ff565b94505060e0613d1f8d828e016139ff565b935050610100613d318d828e01613af1565b9250506101208b013567ffffffffffffffff811115613d4f57600080fd5b613d5b8d828e01613a8a565b9150509295989b9194979a5092959850565b600060208284031215613d7f57600080fd5b6000613b308484613afc565b600080600080600060a08688031215613da357600080fd5b6000613daf8888613afc565b955050602086015167ffffffffffffffff811115613dcc57600080fd5b613dd888828901613a36565b945050604086015167ffffffffffffffff811115613df557600080fd5b613e0188828901613a36565b9350506060613e1288828901613ae6565b925050608086015167ffffffffffffffff811115613e2f57600080fd5b613e3b88828901613a36565b9150509295509295909350565b613e5181614d38565b82525050565b613e5181614d43565b613e5181614d48565b6000613e7482614d2b565b613e7e8185614d2f565b9350613e8e818560208601614dc6565b613e9781614df2565b9093019392505050565b613e5181614d55565b613e5181614d99565b613e5181614da4565b613e5181614daf565b6000613ed2601f83614d2f565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b6000613f0b601683614d2f565b751253959053125117d0d2105393915317d05353d5539560521b815260200192915050565b6000613f3d601083614d2f565b6f21a420a72722a62fa727aa2fa7a822a760811b815260200192915050565b6000613f69602183614d2f565b7f4348414e4e454c5f434c4f53455f4645455f5452414e534645525f4641494c458152601160fa1b602082015260400192915050565b6000613fac601383614d2f565b722922a1a4a824a2a72a2fa727aa2fa0a1aa27a960691b815260200192915050565b6000613fdb602783614d2f565b7f4f50454e5f4348414e4e454c5f5452414e534645525f46524f4d5f4143544f5281526617d1905253115160ca1b602082015260400192915050565b6000614024601883614d2f565b7f494e56414c49445f4348414e4e454c5f44454c45474154450000000000000000815260200192915050565b600061405d600f83614d2f565b6e10d2105393915317d512535153d555608a1b815260200192915050565b6000614088601383614d2f565b72494e56414c49445f434c4f53494e475f53455160681b815260200192915050565b60006140b7601e83614d2f565b7f494e56414c49445f4348414e4e454c5f414c52454144595f4558495354530000815260200192915050565b60006140f0602083614d2f565b7f494e5445524e414c5f4552524f525f434c4f5345445f41545f4e4f4e5a45524f815260200192915050565b6000614129601b83614d2f565b7f494e56414c49445f4348414e4e454c5f4d41524b45544d414b45520000000000815260200192915050565b6000614162601483614d2f565b7327aaaa2220aa22a22faa2920a729a0a1aa24a7a760611b815260200192915050565b6000614192601283614d2f565b7120a1aa27a92fa727aa2fa82927ab24a222a960711b815260200192915050565b60006141c0601283614d2f565b7120a1aa27a92fa727aa2fa1a7a729aaa6a2a960711b815260200192915050565b60006141ee602183614d2f565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c8152606560f81b602082015260400192915050565b6000614231601983614d2f565b7f494e56414c49445f4348414e4e454c5f524543495049454e5400000000000000815260200192915050565b600061426a602283614d2f565b7f526f6c65733a206163636f756e7420697320746865207a65726f206164647265815261737360f01b602082015260400192915050565b60006142ae602483614d2f565b7f4348414e4e454c5f434c4f53455f524546554e445f5452414e534645525f46418152631253115160e21b602082015260400192915050565b60006142f4600e83614d2f565b6d1393d7d4d550d217d3505492d15560921b815260200192915050565b600061431e602d83614d2f565b7f4f50454e5f4348414e4e454c5f5452414e534645525f46524f4d5f4d41524b4581526c15135052d15497d19052531151609a1b602082015260400192915050565b600061436d601483614d2f565b73149150d2541251539517d393d517d3505492d15560621b815260200192915050565b600061439d601d83614d2f565b7f494e56414c49445f4d41524b45544d414b45525f5349474e4154555245000000815260200192915050565b60006143d6601783614d2f565b7f494e56414c49445f434c4f53494e475f42414c414e4345000000000000000000815260200192915050565b600061440f601f83614d2f565b7f53454e4445525f4e4f545f4d41524b45544d414b45525f4f525f4f574e455200815260200192915050565b6000614448601583614d2f565b7424a72b20a624a22fa1a420a72722a62fa0a1aa27a960591b815260200192915050565b6000614479601c83614d2f565b7f494e56414c49445f4348414e4e454c5f424c4f434b5f4e554d42455200000000815260200192915050565b60006144b2600f83614d2f565b6e1393d7d4d550d217d0d21053939153608a1b815260200192915050565b60006144dd601983614d2f565b7f494e56414c49445f4348414e4e454c5f5349474e415455524500000000000000815260200192915050565b6000614516601f83614d2f565b7f53454e4445525f4e4f545f4d41524b45544d414b45525f4f525f425559455200815260200192915050565b600061454f601a83614d2f565b7f494e56414c49445f44454c45474154455f5349474e4154555245000000000000815260200192915050565b6000614588602483614d2f565b7f4348414e4e454c5f434c4f53455f5041594f55545f5452414e534645525f46418152631253115160e21b602082015260400192915050565b60006145ce601483614d2f565b73494e56414c49445f4348414e4e454c5f5459504560601b815260200192915050565b60006145fe601c83614d2f565b7f5452414e53414354494f4e5f42414c414e43455f4f5554444154454400000000815260200192915050565b805161010083019061463c8482614799565b50602082015161464f6020850182613e48565b5060408201516146626040850182614799565b5060608201516146756060850182613e60565b5060808201516146886080850182613e60565b5060a082015161469b60a08501826147a2565b5060c08201516146ae60c0850182614799565b5060e08201516146c160e0850182613e57565b50505050565b80516101608301906146d98482614799565b5060208201516146ec6020850182613e48565b5060408201516146ff60408501826147ab565b5060608201516147126060850182614799565b5060808201516147256080850182613e60565b5060a082015161473860a0850182613e60565b5060c082015161474b60c0850182613e48565b5060e082015161475e60e0850182613e48565b50610100820151614773610100850182613e48565b50610120820151614788610120850182613e48565b506101408201516146c16101408501825b613e51816139fc565b613e5181614d8a565b613e5181614d93565b6020810161386e8284613e48565b606081016147d08286613e48565b6147dd6020830185613e48565b613b306040830184614799565b61014081016147f98286613e48565b614806602083018561462a565b8181036101208301526148198184613e69565b95945050505050565b6101a081016148318286613e48565b61483e60208301856146c7565b8181036101808301526148198184613e69565b6040810161485f8285613e48565b61486c6020830184614799565b9392505050565b6020810161386e8284613e57565b6020810161386e8284613e60565b6060810161489d8286613e60565b6148aa6020830185613e48565b613b306040830184613eaa565b6020810161386e8284613ea1565b61012081016148d4828c613eb3565b6148e1602083018b614799565b6148ee604083018a6147a2565b6148fb6060830189614799565b6149086080830188614799565b61491560a08301876147a2565b61492260c0830186614799565b81810360e08301526149348185613e69565b90508181036101008301526149498184613e69565b9b9a5050505050505050505050565b60e08101614966828a613ebc565b6149736020830189613e48565b6149806040830188613e48565b61498d6060830187613e48565b61499a6080830186613e48565b6149a760a0830185614799565b81810360c08301526149b98184613e69565b9998505050505050505050565b60a081016149d48288613ebc565b6149e16020830187614799565b6149ee6040830186614799565b6149fb6060830185614799565b614a086080830184614799565b9695505050505050565b6020808252810161261c81613ec5565b6020808252810161261c81613efe565b6020808252810161261c81613f30565b6020808252810161261c81613f5c565b6020808252810161261c81613f9f565b6020808252810161261c81613fce565b6020808252810161261c81614017565b6020808252810161261c81614050565b6020808252810161261c8161407b565b6020808252810161261c816140aa565b6020808252810161261c816140e3565b6020808252810161261c8161411c565b6020808252810161261c81614155565b6020808252810161261c81614185565b6020808252810161261c816141b3565b6020808252810161261c816141e1565b6020808252810161261c81614224565b6020808252810161261c8161425d565b6020808252810161261c816142a1565b6020808252810161261c816142e7565b6020808252810161261c81614311565b6020808252810161261c81614360565b6020808252810161261c81614390565b6020808252810161261c816143c9565b6020808252810161261c81614402565b6020808252810161261c8161443b565b6020808252810161261c8161446c565b6020808252810161261c816144a5565b6020808252810161261c816144d0565b6020808252810161261c81614509565b6020808252810161261c81614542565b6020808252810161261c8161457b565b6020808252810161261c816145c1565b6020808252810161261c816145f1565b6101608101614c41828e614799565b614c4e602083018d6147a2565b614c5b604083018c613ebc565b614c68606083018b613e60565b614c75608083018a613e60565b614c8260a0830189613e48565b614c8f60c0830188613e48565b614c9c60e0830187613e48565b614caa610100830186613e48565b614cb8610120830185614799565b818103610140830152614ccb8184613e69565b9d9c50505050505050505050505050565b60405181810167ffffffffffffffff81118282101715614cfb57600080fd5b604052919050565b600067ffffffffffffffff821115614d1a57600080fd5b506020601f91909101601f19160190565b5190565b90815260200190565b600061261c82614d7e565b151590565b6001600160801b03191690565b600061261c82614d38565b8061261f81614dfc565b8061261f81614e06565b8061261f81614e10565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b600061261c82614d60565b600061261c82614d6a565b600061261c82614d74565b82818337506000910152565b60005b83811015614de1578181015183820152602001614dc9565b838111156146c15750506000910152565b601f01601f191690565b60048110610f5b57fe5b60058110610f5b57fe5b60038110610f5b57fe5b614e2381614d38565b8114610f5b57600080fd5b614e2381614d43565b614e2381614d48565b614e2381614d55565b60038110610f5b57600080fd5b60068110610f5b57600080fd5b614e23816139fc565b614e2381614d8a56fea365627a7a72315820aa277496f568e1f4258cab94bf6147659cd698356b99d1d7c6f7adb372a5eb9c6c6578706572696d656e74616cf564736f6c63430005100040", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80636b453c1f1161005b5780636b453c1f1461010557806380f556051461011857806395424f361461012d578063dd57366a1461014057610088565b806323a658271461008d578063314db06b146100be5780635b10a199146100c85780635d5d5ad8146100f2575b600080fd5b6100a061009b366004613b74565b610160565b6040516100b5999897969594939291906148c5565b60405180910390f35b6100c66102cd565b005b6100db6100d6366004613b74565b6102d8565b6040516100b59b9a99989796959493929190614c32565b6100c6610100366004613b92565b6103e1565b6100c6610113366004613b12565b610f40565b610120610f5e565b6040516100b591906148b7565b6100c661013b366004613c7c565b610f6d565b61015361014e366004613b12565b61260a565b6040516100b59190614873565b6003602081815260009283526040928390208054600180830154600280850154968501546004860154600587015460068801546007890180548d51601f6000199a831615610100029a909a01909116969096049788018b90048b0286018b01909c5286855260ff9097169a949963ffffffff908116999398929791169590949193928301828280156102335780601f1061020857610100808354040283529160200191610233565b820191906000526020600020905b81548152906001019060200180831161021657829003601f168201915b5050505060088301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156102c35780601f10610298576101008083540402835291602001916102c3565b820191906000526020600020905b8154815290600101906020018083116102a657829003601f168201915b5050505050905089565b6102d633612624565b565b6002602081815260009283526040928390208054600180830154838601546003850154600486015460058701546006880154600789015460088a0180548e516101009a8216159a909a0260001901169c909c04601f81018c90048c0289018c01909d528c8852979b63ffffffff87169b640100000000880460ff169b600160281b909804608090811b9b97901b996001600160a01b039687169995871698948716979690931695929492939091908301828280156103d75780601f106103ac576101008083540402835291602001916103d7565b820191906000526020600020905b8154815290600101906020018083116103ba57829003601f168201915b505050505090508b565b6001600160801b031987166000908152600260205260409020600301546001600160a01b031661042c5760405162461bcd60e51b815260040161042390614bc2565b60405180910390fd5b6001600160801b0319871660009081526003602052604081205460ff16600481111561045457fe5b14156104725760405162461bcd60e51b815260040161042390614bc2565b60016001600160801b0319881660009081526003602052604090205460ff16600481111561049c57fe5b14806104cf575060026001600160801b0319881660009081526003602052604090205460ff1660048111156104cd57fe5b145b6104eb5760405162461bcd60e51b815260040161042390614a32565b4386111580156106f15750600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561054457600080fd5b505afa158015610558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061057c9190810190613c5e565b6001600160a01b031663b4cd23916040518163ffffffff1660e01b815260040160206040518083038186803b1580156105b457600080fd5b505afa1580156105c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105ec9190810190613d6d565b431115806106f15750600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561064357600080fd5b505afa158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067b9190810190613c5e565b6001600160a01b031663b4cd23916040518163ffffffff1660e01b815260040160206040518083038186803b1580156106b357600080fd5b505afa1580156106c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106eb9190810190613d6d565b43038610155b61070d5760405162461bcd60e51b815260040161042390614bb2565b6001600160801b03198716600090815260026020908152604091829020600401548251610100810180855260015463339cd7e560e11b909152935173__XBRTypes______________________________9463989a750a946001600160a01b03948516948493921691636739afca916101048086019290818703018186803b15801561079757600080fd5b505afa1580156107ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107cf9190810190613c5e565b6001600160a01b03166359c8e6036040518163ffffffff1660e01b815260040160206040518083038186803b15801561080757600080fd5b505afa15801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061083f9190810190613d6d565b81526001546040805163339cd7e560e11b815290516020938401936001600160a01b0390931692636739afca9260048082019391829003018186803b15801561088757600080fd5b505afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108bf9190810190613c5e565b6001600160a01b031663a787d61b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156108f757600080fd5b505afa15801561090b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061092f9190810190613b38565b6001600160a01b0316815260208082018c90526001600160801b0319808e166000818152600290935260409283902060010154600160281b9004608090811b90921683850152606084015263ffffffff8c169083015260a082018a905288151560c090920191909152516001600160e01b031960e085901b1681526109ba92919087906004016147ea565b60206040518083038186803b1580156109d257600080fd5b505af41580156109e6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a0a9190810190613b56565b610a265760405162461bcd60e51b815260040161042390614bf2565b6001600160801b03198716600090815260026020908152604091829020600501548251610100810180855260015463339cd7e560e11b909152935173__XBRTypes______________________________9463989a750a946001600160a01b03948516948493921691636739afca916101048086019290818703018186803b158015610ab057600080fd5b505afa158015610ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ae89190810190613c5e565b6001600160a01b03166359c8e6036040518163ffffffff1660e01b815260040160206040518083038186803b158015610b2057600080fd5b505afa158015610b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b589190810190613d6d565b81526001546040805163339cd7e560e11b815290516020938401936001600160a01b0390931692636739afca9260048082019391829003018186803b158015610ba057600080fd5b505afa158015610bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bd89190810190613c5e565b6001600160a01b031663a787d61b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c489190810190613b38565b6001600160a01b0316815260208082018c90526001600160801b0319808e166000818152600290935260409283902060010154600160281b9004608090811b90921683850152606084015263ffffffff8c169083015260a082018a905288151560c090920191909152516001600160e01b031960e085901b168152610cd392919086906004016147ea565b60206040518083038186803b158015610ceb57600080fd5b505af4158015610cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d239190810190613b56565b610d3f5760405162461bcd60e51b815260040161042390614b72565b6001600160801b03198716600090815260026020526040902060070154841115610d7b5760405162461bcd60e51b815260040161042390614b82565b60018563ffffffff161015610da25760405162461bcd60e51b815260040161042390614a92565b60026001600160801b0319881660009081526003602052604090205460ff166004811115610dcc57fe5b1415610e8b576001600160801b0319871660009081526003602052604090206004015415610e0c5760405162461bcd60e51b815260040161042390614ab2565b6001600160801b031987166000908152600360205260409020600101544210610e475760405162461bcd60e51b815260040161042390614a82565b6001600160801b0319871660009081526003602052604090206002015463ffffffff808716911610610e8b5760405162461bcd60e51b815260040161042390614ad2565b6001600160801b0319871660009081526003602052604090206002015463ffffffff9081169086161115610ec457610ec487868661266c565b8280610ece575083155b80610f27575060026001600160801b0319881660009081526003602052604090205460ff166004811115610efe57fe5b148015610f2757506001600160801b031987166000908152600360205260409020600101544210155b15610f3757610f37878686612c8e565b50505050505050565b610f493361260a565b610f5257600080fd5b610f5b816137e0565b50565b6001546001600160a01b031681565b600154604051630ab3a2e760e31b81526000916001600160a01b03169063559d173890610f9e908c90600401614881565b60206040518083038186803b158015610fb657600080fd5b505afa158015610fca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fee9190810190613b38565b6001600160a01b031614156110155760405162461bcd60e51b815260040161042390614b42565b6001600160801b031987166000908152600260205260409020600301546001600160a01b0316156110585760405162461bcd60e51b815260040161042390614aa2565b6001546040805163339cd7e560e11b815290516000926001600160a01b031691636739afca916004808301926020929190829003018186803b15801561109d57600080fd5b505afa1580156110b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110d59190810190613c5e565b6001600160a01b03166308ae4b0c886040518263ffffffff1660e01b815260040161110091906147b4565b60006040518083038186803b15801561111857600080fd5b505afa15801561112c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111549190810190613d8b565b50935060019250611163915050565b81600581111561116f57fe5b14806111865750600281600581111561118457fe5b145b6111a25760405162461bcd60e51b815260040161042390614ba2565b6001600160a01b0386166111c85760405162461bcd60e51b815260040161042390614a72565b60015460405163bc385fcd60e01b81526001600160a01b039091169063bc385fcd906111f8908c90600401614881565b60206040518083038186803b15801561121057600080fd5b505afa158015611224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112489190810190613b38565b6001600160a01b0316856001600160a01b0316146112785760405162461bcd60e51b815260040161042390614ac2565b6001546040805163339cd7e560e11b815290516000926001600160a01b031691636739afca916004808301926020929190829003018186803b1580156112bd57600080fd5b505afa1580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112f59190810190613c5e565b6001600160a01b03166308ae4b0c866040518263ffffffff1660e01b815260040161132091906147b4565b60006040518083038186803b15801561133857600080fd5b505afa15801561134c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113749190810190613d8b565b50935060019250611383915050565b81600581111561138f57fe5b14806113a6575060028160058111156113a457fe5b145b6113c25760405162461bcd60e51b815260040161042390614b12565b438b111580156115c85750600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561141b57600080fd5b505afa15801561142f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114539190810190613c5e565b6001600160a01b031663b4cd23916040518163ffffffff1660e01b815260040160206040518083038186803b15801561148b57600080fd5b505afa15801561149f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114c39190810190613d6d565b431115806115c85750600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561151a57600080fd5b505afa15801561152e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115529190810190613c5e565b6001600160a01b031663b4cd23916040518163ffffffff1660e01b815260040160206040518083038186803b15801561158a57600080fd5b505afa15801561159e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115c29190810190613d6d565b43038b10155b6115e45760405162461bcd60e51b815260040161042390614bb2565b6000841180156116e35750600154604051631a45505360e21b81526001600160a01b0390911690636915414c9061161f908d90600401614881565b60206040518083038186803b15801561163757600080fd5b505afa15801561164b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061166f9190810190613b38565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116a757600080fd5b505afa1580156116bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116df9190810190613d6d565b8411155b6116ff5760405162461bcd60e51b815260040161042390614a22565b611707613908565b604051806101600160405280600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561176157600080fd5b505afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117999190810190613c5e565b6001600160a01b03166359c8e6036040518163ffffffff1660e01b815260040160206040518083038186803b1580156117d157600080fd5b505afa1580156117e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118099190810190613d6d565b81526001546040805163339cd7e560e11b815290516020938401936001600160a01b0390931692636739afca9260048082019391829003018186803b15801561185157600080fd5b505afa158015611865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118899190810190613c5e565b6001600160a01b031663a787d61b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118c157600080fd5b505afa1580156118d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118f99190810190613b38565b6001600160a01b031681526020018e600281111561191357fe5b60ff1681526020018d81526020018c6001600160801b03191681526020018b6001600160801b03191681526020018a6001600160a01b03168152602001896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b0316815260200186815250905073__XBRTypes______________________________6310e78f7d8a83876040518463ffffffff1660e01b81526004016119be93929190614822565b60206040518083038186803b1580156119d657600080fd5b505af41580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a0e9190810190613b56565b611a2a5760405162461bcd60e51b815260040161042390614bd2565b60018d6002811115611a3857fe5b1415611dff5760015460405163bc385fcd60e01b81526001600160a01b039091169063bc385fcd90611a6e908e90600401614881565b60206040518083038186803b158015611a8657600080fd5b505afa158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611abe9190810190613b38565b6001600160a01b0316336001600160a01b03161480611ae55750336001600160a01b038a16145b611b015760405162461bcd60e51b815260040161042390614be2565b600154604051633d1fbba160e01b81526001600160a01b0390911690633d1fbba190611b36908e908d9060029060040161488f565b60206040518083038186803b158015611b4e57600080fd5b505afa158015611b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b869190810190613b56565b80611c115750600154604051633d1fbba160e01b81526001600160a01b0390911690633d1fbba190611bc1908e908d9060039060040161488f565b60206040518083038186803b158015611bd957600080fd5b505afa158015611bed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c119190810190613b56565b611c2d5760405162461bcd60e51b815260040161042390614af2565b600154604051630ab3a2e760e31b81526001600160a01b039091169063559d173890611c5d908e90600401614881565b60206040518083038186803b158015611c7557600080fd5b505afa158015611c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611cad9190810190613b38565b6001600160a01b0316866001600160a01b031614611cdd5760405162461bcd60e51b815260040161042390614b62565b600154604051631a45505360e21b81526001600160a01b0390911690636915414c90611d0d908e90600401614881565b60206040518083038186803b158015611d2557600080fd5b505afa158015611d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d5d9190810190613b38565b6001600160a01b03166323b872dd8a30886040518463ffffffff1660e01b8152600401611d8c939291906147c2565b602060405180830381600087803b158015611da657600080fd5b505af1158015611dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dde9190810190613b56565b611dfa5760405162461bcd60e51b815260040161042390614a62565b61227f565b60028d6002811115611e0d57fe5b14156122675760015460405163bc385fcd60e01b81526001600160a01b039091169063bc385fcd90611e43908e90600401614881565b60206040518083038186803b158015611e5b57600080fd5b505afa158015611e6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e939190810190613b38565b6001600160a01b0316336001600160a01b03161480611f425750600154604051630ab3a2e760e31b81526001600160a01b039091169063559d173890611edd908e90600401614881565b60206040518083038186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f2d9190810190613b38565b6001600160a01b0316336001600160a01b0316145b611f5e5760405162461bcd60e51b815260040161042390614b92565b60018054604051633d1fbba160e01b81526001600160a01b0390911691633d1fbba191611f92918f918e919060040161488f565b60206040518083038186803b158015611faa57600080fd5b505afa158015611fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611fe29190810190613b56565b8061206d5750600154604051633d1fbba160e01b81526001600160a01b0390911690633d1fbba19061201d908e908d9060039060040161488f565b60206040518083038186803b15801561203557600080fd5b505afa158015612049573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061206d9190810190613b56565b6120895760405162461bcd60e51b815260040161042390614ae2565b886001600160a01b0316866001600160a01b0316146120ba5760405162461bcd60e51b815260040161042390614a52565b600154604051631a45505360e21b81526001600160a01b0390911690636915414c906120ea908e90600401614881565b60206040518083038186803b15801561210257600080fd5b505afa158015612116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061213a9190810190613b38565b6001600160a01b03166323b872dd600160009054906101000a90046001600160a01b03166001600160a01b031663bc385fcd8e6040518263ffffffff1660e01b81526004016121899190614881565b60206040518083038186803b1580156121a157600080fd5b505afa1580156121b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121d99190810190613b38565b30886040518463ffffffff1660e01b81526004016121f9939291906147c2565b602060405180830381600087803b15801561221357600080fd5b505af1158015612227573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061224b9190810190613b56565b611dfa5760405162461bcd60e51b815260040161042390614b52565b60405162461bcd60e51b815260040161042390614c12565b60408051610160810182528d8152600154600160a01b900463ffffffff1660208201529081018e60028111156122b157fe5b81526001600160801b03198d8116602080840191909152908d1660408084018290526001600160a01b038e811660608601528d811660808601528c811660a08601528b1660c085015260e084018a90526101009093018890526000908152600280835290839020845181559184015160018301805463ffffffff191663ffffffff90921691909117808255938501519293909164ff00000000199091169064010000000090849081111561236157fe5b0217905550606082015160018201805474ffffffffffffffffffffffffffffffff00000000001916600160281b608093841c02179055808301516002830180546001600160801b0319169190921c17905560a08201516003820180546001600160a01b03199081166001600160a01b039384161790915560c0840151600484018054831691841691909117905560e08401516005840180548316918416919091179055610100840151600684018054909216921691909117905561012082015160078201556101408201518051612442916008840191602090910190613964565b505060408051610120810190915290508060018152600060208083018290526040808401839052606084018390526080840183905260a0840183905260c084018390528051808301825283815260e085015280518083018252838152610100909401939093526001600160801b03198e168252600390522081518154829060ff191660018360048111156124d257fe5b02179055506020828101516001830155604083015160028301805463ffffffff92831663ffffffff1991821617909155606085015160038501556080850151600485015560a085015160058501805491909316911617905560c0830151600683015560e0830151805161254b9260078501920190613964565b506101008201518051612568916008840191602090910190613964565b50905050600160149054906101000a900463ffffffff16600101600160146101000a81548163ffffffff021916908363ffffffff160217905550896001600160801b0319168b6001600160801b0319167fa0d8097922181d29fdae187c105eb752af1521063a1fb708d66ad8128ecbaf758f8c8c8c8c8c8c6040516125f39796959493929190614958565b60405180910390a350505050505050505050505050565b600061261c818363ffffffff61382816565b90505b919050565b61263560008263ffffffff61387416565b6040516001600160a01b038216907fa7b36d52bea726c3aa90d876d0e52a1089a347b3e3408a03f08eae32f96fdbb490600090a250565b600180546001600160801b03198516600090815260026020526040808220909301549251631a45505360e21b815290926001600160a01b0390921691636915414c916126c591600160281b900460801b90600401614881565b60206040518083038186803b1580156126dd57600080fd5b505afa1580156126f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127159190810190613b38565b6001600160801b0319851660009081526002602090815260408083206007015481516318160ddd60e01b81529151949550869003936001600160a01b038616926318160ddd9260048082019391829003018186803b15801561277657600080fd5b505afa15801561278a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127ae9190810190613d6d565b600180546001600160801b031989166000908152600260205260409081902090920154915163d4dba11360e01b81526001600160a01b039091169163d4dba1139161280691600160281b900460801b90600401614881565b60206040518083038186803b15801561281e57600080fd5b505afa158015612832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128569190810190613d6d565b83028161285f57fe5b0490506000600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128b257600080fd5b505afa1580156128c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128ea9190810190613c5e565b6001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561292257600080fd5b505afa158015612936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061295a9190810190613c5e565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561299257600080fd5b505afa1580156129a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129ca9190810190613d6d565b600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a1857600080fd5b505afa158015612a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a509190810190613c5e565b6001600160a01b03166350520b1f6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8857600080fd5b505afa158015612a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ac09190810190613d6d565b830281612ac957fe5b6001600160801b03198916600090815260036020526040902060020154919004915063ffffffff1615612b33576001600160801b0319871660009081526003602081905260409091200154851115612b335760405162461bcd60e51b815260040161042390614c22565b6001600160801b031987166000908152600360208181526040928390208054600260ff19909116811782558101805463ffffffff191663ffffffff8c161790559091018790556001548251637e77cd2f60e01b815292516001600160a01b0390911692637e77cd2f926004808301939192829003018186803b158015612bb857600080fd5b505afa158015612bcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612bf09190810190613d6d565b6001600160801b031988811660008181526003602081815260408084204297909701600197880181905560028352938190209096015491905293519193600160281b810460801b909316927f3b3f5c6d3fe73989434e575835dbf86682d6db29a61466ead97abce42c3ae08692612c7d9264010000000090920460ff1691888a0391888a03918d916149c6565b60405180910390a350505050505050565b600180546001600160801b03198516600090815260026020526040808220909301549251631a45505360e21b815290926001600160a01b0390921691636915414c91612ce791600160281b900460801b90600401614881565b60206040518083038186803b158015612cff57600080fd5b505afa158015612d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d379190810190613b38565b6001600160801b0319851660009081526002602090815260408083206007015481516318160ddd60e01b81529151949550869003936001600160a01b038616926318160ddd9260048082019391829003018186803b158015612d9857600080fd5b505afa158015612dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612dd09190810190613d6d565b600180546001600160801b031989166000908152600260205260409081902090920154915163d4dba11360e01b81526001600160a01b039091169163d4dba11391612e2891600160281b900460801b90600401614881565b60206040518083038186803b158015612e4057600080fd5b505afa158015612e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612e789190810190613d6d565b830281612e8157fe5b0490506000600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ed457600080fd5b505afa158015612ee8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f0c9190810190613c5e565b6001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b158015612f4457600080fd5b505afa158015612f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f7c9190810190613c5e565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612fb457600080fd5b505afa158015612fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612fec9190810190613d6d565b600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561303a57600080fd5b505afa15801561304e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506130729190810190613c5e565b6001600160a01b03166350520b1f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156130aa57600080fd5b505afa1580156130be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506130e29190810190613d6d565b8302816130eb57fe5b049050818303156132b65760016001600160801b03198816600090815260026020819052604090912060010154640100000000900460ff169081111561312d57fe5b14156131f7576001600160801b031987166000908152600260205260409081902060050154905163a9059cbb60e01b81526001600160a01b038681169263a9059cbb92613184929091169086880390600401614851565b602060405180830381600087803b15801561319e57600080fd5b505af11580156131b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131d69190810190613b56565b6131f25760405162461bcd60e51b815260040161042390614c02565b6132b6565b6001600160801b031987166000908152600260205260409081902060030154905163a9059cbb60e01b81526001600160a01b038681169263a9059cbb92613248929091169086880390600401614851565b602060405180830381600087803b15801561326257600080fd5b505af1158015613276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061329a9190810190613b56565b6132b65760405162461bcd60e51b815260040161042390614c02565b84156134785760016001600160801b03198816600090815260026020819052604090912060010154640100000000900460ff16908111156132f357fe5b14156133bb576001600160801b031987166000908152600260205260409081902060030154905163a9059cbb60e01b81526001600160a01b038681169263a9059cbb9261334892909116908990600401614851565b602060405180830381600087803b15801561336257600080fd5b505af1158015613376573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061339a9190810190613b56565b6133b65760405162461bcd60e51b815260040161042390614b32565b613478565b6001600160801b031987166000908152600260205260409081902060050154905163a9059cbb60e01b81526001600160a01b038681169263a9059cbb9261340a92909116908990600401614851565b602060405180830381600087803b15801561342457600080fd5b505af1158015613438573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061345c9190810190613b56565b6134785760405162461bcd60e51b815260040161042390614b32565b811561375057600180546001600160801b0319891660009081526002602052604090819020909201549151630ab3a2e760e31b81526001600160a01b038088169363a9059cbb939091169163559d1738916134e191600160281b90910460801b90600401614881565b60206040518083038186803b1580156134f957600080fd5b505afa15801561350d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506135319190810190613b38565b8385036040518363ffffffff1660e01b8152600401613551929190614851565b602060405180830381600087803b15801561356b57600080fd5b505af115801561357f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506135a39190810190613b56565b6135bf5760405162461bcd60e51b815260040161042390614a42565b836001600160a01b031663a9059cbb600160009054906101000a90046001600160a01b03166001600160a01b0316636739afca6040518163ffffffff1660e01b815260040160206040518083038186803b15801561361c57600080fd5b505afa158015613630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506136549190810190613c5e565b6001600160a01b03166323bd4d7a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561368c57600080fd5b505afa1580156136a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506136c49190810190613b38565b836040518363ffffffff1660e01b81526004016136e2929190614851565b602060405180830381600087803b1580156136fc57600080fd5b505af1158015613710573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506137349190810190613b56565b6137505760405162461bcd60e51b815260040161042390614a42565b6001600160801b031987811660008181526003602081815260408084204260048201819055815460ff191690941790556002909152918290206001015491519293600160281b830460801b16927f2fe87406c6d55a2f235383dcc9a76d29f7fad13d38d12ae7186aeaeb3e1d84eb92612c7d9264010000000090910460ff1691888a0391888a03918d91906149c6565b6137f160008263ffffffff6138bc16565b6040516001600160a01b038216907f1390a149489c82e9e2e89927bdb17ad1ea3f0cc314fce06c96369721d3afb8f090600090a250565b60006001600160a01b0382166138505760405162461bcd60e51b815260040161042390614b22565b506001600160a01b03811660009081526020839052604090205460ff165b92915050565b61387e8282613828565b61389a5760405162461bcd60e51b815260040161042390614b02565b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6138c68282613828565b156138e35760405162461bcd60e51b815260040161042390614a12565b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106139a557805160ff19168380011785556139d2565b828001600101855582156139d2579182015b828111156139d25782518255916020019190600101906139b7565b506139de9291506139e2565b5090565b6139fc91905b808211156139de57600081556001016139e8565b90565b803561386e81614e1a565b805161386e81614e1a565b803561386e81614e2e565b805161386e81614e2e565b803561386e81614e37565b600082601f830112613a4757600080fd5b8151613a5a613a5582614d03565b614cdc565b91508082526020830160208301858383011115613a7657600080fd5b613a81838284614dc6565b50505092915050565b600082601f830112613a9b57600080fd5b8135613aa9613a5582614d03565b91508082526020830160208301858383011115613ac557600080fd5b613a81838284614dba565b805161386e81614e40565b803561386e81614e49565b805161386e81614e56565b803561386e81614e63565b805161386e81614e63565b803561386e81614e6c565b600060208284031215613b2457600080fd5b6000613b3084846139ff565b949350505050565b600060208284031215613b4a57600080fd5b6000613b308484613a0a565b600060208284031215613b6857600080fd5b6000613b308484613a20565b600060208284031215613b8657600080fd5b6000613b308484613a2b565b600080600080600080600060e0888a031215613bad57600080fd5b6000613bb98a8a613a2b565b9750506020613bca8a828b01613af1565b9650506040613bdb8a828b01613b07565b9550506060613bec8a828b01613af1565b9450506080613bfd8a828b01613a15565b93505060a088013567ffffffffffffffff811115613c1a57600080fd5b613c268a828b01613a8a565b92505060c088013567ffffffffffffffff811115613c4357600080fd5b613c4f8a828b01613a8a565b91505092959891949750929550565b600060208284031215613c7057600080fd5b6000613b308484613ad0565b6000806000806000806000806000806101408b8d031215613c9c57600080fd5b6000613ca88d8d613adb565b9a50506020613cb98d828e01613af1565b9950506040613cca8d828e01613a2b565b9850506060613cdb8d828e01613a2b565b9750506080613cec8d828e016139ff565b96505060a0613cfd8d828e016139ff565b95505060c0613d0e8d828e016139ff565b94505060e0613d1f8d828e016139ff565b935050610100613d318d828e01613af1565b9250506101208b013567ffffffffffffffff811115613d4f57600080fd5b613d5b8d828e01613a8a565b9150509295989b9194979a5092959850565b600060208284031215613d7f57600080fd5b6000613b308484613afc565b600080600080600060a08688031215613da357600080fd5b6000613daf8888613afc565b955050602086015167ffffffffffffffff811115613dcc57600080fd5b613dd888828901613a36565b945050604086015167ffffffffffffffff811115613df557600080fd5b613e0188828901613a36565b9350506060613e1288828901613ae6565b925050608086015167ffffffffffffffff811115613e2f57600080fd5b613e3b88828901613a36565b9150509295509295909350565b613e5181614d38565b82525050565b613e5181614d43565b613e5181614d48565b6000613e7482614d2b565b613e7e8185614d2f565b9350613e8e818560208601614dc6565b613e9781614df2565b9093019392505050565b613e5181614d55565b613e5181614d99565b613e5181614da4565b613e5181614daf565b6000613ed2601f83614d2f565b7f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500815260200192915050565b6000613f0b601683614d2f565b751253959053125117d0d2105393915317d05353d5539560521b815260200192915050565b6000613f3d601083614d2f565b6f21a420a72722a62fa727aa2fa7a822a760811b815260200192915050565b6000613f69602183614d2f565b7f4348414e4e454c5f434c4f53455f4645455f5452414e534645525f4641494c458152601160fa1b602082015260400192915050565b6000613fac601383614d2f565b722922a1a4a824a2a72a2fa727aa2fa0a1aa27a960691b815260200192915050565b6000613fdb602783614d2f565b7f4f50454e5f4348414e4e454c5f5452414e534645525f46524f4d5f4143544f5281526617d1905253115160ca1b602082015260400192915050565b6000614024601883614d2f565b7f494e56414c49445f4348414e4e454c5f44454c45474154450000000000000000815260200192915050565b600061405d600f83614d2f565b6e10d2105393915317d512535153d555608a1b815260200192915050565b6000614088601383614d2f565b72494e56414c49445f434c4f53494e475f53455160681b815260200192915050565b60006140b7601e83614d2f565b7f494e56414c49445f4348414e4e454c5f414c52454144595f4558495354530000815260200192915050565b60006140f0602083614d2f565b7f494e5445524e414c5f4552524f525f434c4f5345445f41545f4e4f4e5a45524f815260200192915050565b6000614129601b83614d2f565b7f494e56414c49445f4348414e4e454c5f4d41524b45544d414b45520000000000815260200192915050565b6000614162601483614d2f565b7327aaaa2220aa22a22faa2920a729a0a1aa24a7a760611b815260200192915050565b6000614192601283614d2f565b7120a1aa27a92fa727aa2fa82927ab24a222a960711b815260200192915050565b60006141c0601283614d2f565b7120a1aa27a92fa727aa2fa1a7a729aaa6a2a960711b815260200192915050565b60006141ee602183614d2f565b7f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c8152606560f81b602082015260400192915050565b6000614231601983614d2f565b7f494e56414c49445f4348414e4e454c5f524543495049454e5400000000000000815260200192915050565b600061426a602283614d2f565b7f526f6c65733a206163636f756e7420697320746865207a65726f206164647265815261737360f01b602082015260400192915050565b60006142ae602483614d2f565b7f4348414e4e454c5f434c4f53455f524546554e445f5452414e534645525f46418152631253115160e21b602082015260400192915050565b60006142f4600e83614d2f565b6d1393d7d4d550d217d3505492d15560921b815260200192915050565b600061431e602d83614d2f565b7f4f50454e5f4348414e4e454c5f5452414e534645525f46524f4d5f4d41524b4581526c15135052d15497d19052531151609a1b602082015260400192915050565b600061436d601483614d2f565b73149150d2541251539517d393d517d3505492d15560621b815260200192915050565b600061439d601d83614d2f565b7f494e56414c49445f4d41524b45544d414b45525f5349474e4154555245000000815260200192915050565b60006143d6601783614d2f565b7f494e56414c49445f434c4f53494e475f42414c414e4345000000000000000000815260200192915050565b600061440f601f83614d2f565b7f53454e4445525f4e4f545f4d41524b45544d414b45525f4f525f4f574e455200815260200192915050565b6000614448601583614d2f565b7424a72b20a624a22fa1a420a72722a62fa0a1aa27a960591b815260200192915050565b6000614479601c83614d2f565b7f494e56414c49445f4348414e4e454c5f424c4f434b5f4e554d42455200000000815260200192915050565b60006144b2600f83614d2f565b6e1393d7d4d550d217d0d21053939153608a1b815260200192915050565b60006144dd601983614d2f565b7f494e56414c49445f4348414e4e454c5f5349474e415455524500000000000000815260200192915050565b6000614516601f83614d2f565b7f53454e4445525f4e4f545f4d41524b45544d414b45525f4f525f425559455200815260200192915050565b600061454f601a83614d2f565b7f494e56414c49445f44454c45474154455f5349474e4154555245000000000000815260200192915050565b6000614588602483614d2f565b7f4348414e4e454c5f434c4f53455f5041594f55545f5452414e534645525f46418152631253115160e21b602082015260400192915050565b60006145ce601483614d2f565b73494e56414c49445f4348414e4e454c5f5459504560601b815260200192915050565b60006145fe601c83614d2f565b7f5452414e53414354494f4e5f42414c414e43455f4f5554444154454400000000815260200192915050565b805161010083019061463c8482614799565b50602082015161464f6020850182613e48565b5060408201516146626040850182614799565b5060608201516146756060850182613e60565b5060808201516146886080850182613e60565b5060a082015161469b60a08501826147a2565b5060c08201516146ae60c0850182614799565b5060e08201516146c160e0850182613e57565b50505050565b80516101608301906146d98482614799565b5060208201516146ec6020850182613e48565b5060408201516146ff60408501826147ab565b5060608201516147126060850182614799565b5060808201516147256080850182613e60565b5060a082015161473860a0850182613e60565b5060c082015161474b60c0850182613e48565b5060e082015161475e60e0850182613e48565b50610100820151614773610100850182613e48565b50610120820151614788610120850182613e48565b506101408201516146c16101408501825b613e51816139fc565b613e5181614d8a565b613e5181614d93565b6020810161386e8284613e48565b606081016147d08286613e48565b6147dd6020830185613e48565b613b306040830184614799565b61014081016147f98286613e48565b614806602083018561462a565b8181036101208301526148198184613e69565b95945050505050565b6101a081016148318286613e48565b61483e60208301856146c7565b8181036101808301526148198184613e69565b6040810161485f8285613e48565b61486c6020830184614799565b9392505050565b6020810161386e8284613e57565b6020810161386e8284613e60565b6060810161489d8286613e60565b6148aa6020830185613e48565b613b306040830184613eaa565b6020810161386e8284613ea1565b61012081016148d4828c613eb3565b6148e1602083018b614799565b6148ee604083018a6147a2565b6148fb6060830189614799565b6149086080830188614799565b61491560a08301876147a2565b61492260c0830186614799565b81810360e08301526149348185613e69565b90508181036101008301526149498184613e69565b9b9a5050505050505050505050565b60e08101614966828a613ebc565b6149736020830189613e48565b6149806040830188613e48565b61498d6060830187613e48565b61499a6080830186613e48565b6149a760a0830185614799565b81810360c08301526149b98184613e69565b9998505050505050505050565b60a081016149d48288613ebc565b6149e16020830187614799565b6149ee6040830186614799565b6149fb6060830185614799565b614a086080830184614799565b9695505050505050565b6020808252810161261c81613ec5565b6020808252810161261c81613efe565b6020808252810161261c81613f30565b6020808252810161261c81613f5c565b6020808252810161261c81613f9f565b6020808252810161261c81613fce565b6020808252810161261c81614017565b6020808252810161261c81614050565b6020808252810161261c8161407b565b6020808252810161261c816140aa565b6020808252810161261c816140e3565b6020808252810161261c8161411c565b6020808252810161261c81614155565b6020808252810161261c81614185565b6020808252810161261c816141b3565b6020808252810161261c816141e1565b6020808252810161261c81614224565b6020808252810161261c8161425d565b6020808252810161261c816142a1565b6020808252810161261c816142e7565b6020808252810161261c81614311565b6020808252810161261c81614360565b6020808252810161261c81614390565b6020808252810161261c816143c9565b6020808252810161261c81614402565b6020808252810161261c8161443b565b6020808252810161261c8161446c565b6020808252810161261c816144a5565b6020808252810161261c816144d0565b6020808252810161261c81614509565b6020808252810161261c81614542565b6020808252810161261c8161457b565b6020808252810161261c816145c1565b6020808252810161261c816145f1565b6101608101614c41828e614799565b614c4e602083018d6147a2565b614c5b604083018c613ebc565b614c68606083018b613e60565b614c75608083018a613e60565b614c8260a0830189613e48565b614c8f60c0830188613e48565b614c9c60e0830187613e48565b614caa610100830186613e48565b614cb8610120830185614799565b818103610140830152614ccb8184613e69565b9d9c50505050505050505050505050565b60405181810167ffffffffffffffff81118282101715614cfb57600080fd5b604052919050565b600067ffffffffffffffff821115614d1a57600080fd5b506020601f91909101601f19160190565b5190565b90815260200190565b600061261c82614d7e565b151590565b6001600160801b03191690565b600061261c82614d38565b8061261f81614dfc565b8061261f81614e06565b8061261f81614e10565b6001600160a01b031690565b63ffffffff1690565b60ff1690565b600061261c82614d60565b600061261c82614d6a565b600061261c82614d74565b82818337506000910152565b60005b83811015614de1578181015183820152602001614dc9565b838111156146c15750506000910152565b601f01601f191690565b60048110610f5b57fe5b60058110610f5b57fe5b60038110610f5b57fe5b614e2381614d38565b8114610f5b57600080fd5b614e2381614d43565b614e2381614d48565b614e2381614d55565b60038110610f5b57600080fd5b60068110610f5b57600080fd5b614e23816139fc565b614e2381614d8a56fea365627a7a72315820aa277496f568e1f4258cab94bf6147659cd698356b99d1d7c6f7adb372a5eb9c6c6578706572696d656e74616cf564736f6c63430005100040", "sourceMap": "1393:17763:2:-;;;2994:1;2966:29;;-1:-1:-1;;;;2966:29:2;-1:-1:-1;;;2966:29:2;;;3406:85;5:2:-1;;;;30:1;27;20:12;5:2;3406:85:2;;;;;;;;;;;;;;;;;;;;;1843:26:3;1858:10;-1:-1:-1;;;;;1843:14:3;:26;:::i;:::-;3455:6:2;:29;;-1:-1:-1;;;;;;3455:29:2;-1:-1:-1;;;;;3455:29:2;;;;;;;;;;1393:17763;;2784:131:3;2845:24;2861:7;2845:11;:15;;;;;;:24;;;;:::i;:::-;2884;;-1:-1:-1;;;;;2884:24:3;;;;;;;;2784:131;:::o;260:175:11:-;337:18;341:4;347:7;-1:-1:-1;;;;;337:3:11;:18;:::i;:::-;336:19;328:63;;;;-1:-1:-1;;;328:63:11;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:11;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:11;424:4;401:27;;;260:175::o;779:200::-;851:4;-1:-1:-1;;;;;875:21:11;;867:68;;;;-1:-1:-1;;;867:68:11;;;;;;;;;-1:-1:-1;;;;;;952:20:11;;:11;:20;;;;;;;;;;;;;779:200;;;;;:::o;5:134:-1:-;83:13;;101:33;83:13;101:33;;146:263;;261:2;249:9;240:7;236:23;232:32;229:2;;;277:1;274;267:12;229:2;312:1;329:64;385:7;365:9;329:64;;;319:74;223:186;-1:-1;;;;223:186;417:331;;577:67;641:2;636:3;577:67;;;677:33;657:54;;739:2;730:12;;563:185;-1:-1;;563:185;757:371;;917:67;981:2;976:3;917:67;;;1017:34;997:55;;-1:-1;;;1081:2;1072:12;;1065:26;1119:2;1110:12;;903:225;-1:-1;;903:225;1136:407;1327:2;1341:47;;;1312:18;;1402:131;1312:18;1402:131;;1550:407;1741:2;1755:47;;;1726:18;;1816:131;1726:18;1816:131;;1965:163;2068:19;;;2117:4;2108:14;;2061:67;2136:91;;-1:-1;;;;;2296:54;;2198:24;2279:76;2362:117;2431:24;2449:5;2431:24;;;2424:5;2421:35;2411:2;;2470:1;2467;2460:12;2411:2;2405:74;;;1393:17763:2;;;;;;", "deployedSourceMap": "1393:17763:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1393:17763:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3145:76;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2694:84:3;;;:::i;:::-;;3037:52:2;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;10833:3236;;;;;;;;;:::i;2533:103:3:-;;;;;;;;;:::i;2813:23:2:-;;;:::i;:::-;;;;;;;;4456:5768;;;;;;;;;:::i;2268:115:3:-;;;;;;;;;:::i;:::-;;;;;;;;3145:76:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3145:76:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3145:76:2;;;;;;;;;;;;;;;;-1:-1:-1;;3145:76:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3145:76:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2694:84:3:-;2742:29;2760:10;2742:17;:29::i;:::-;2694:84::o;3037:52:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3037:52:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3037:52:2;;;;;;;;;;;;-1:-1:-1;;;;;3037:52:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10833:3236::-;-1:-1:-1;;;;;;11080:19:2;;11117:1;11080:19;;;:8;:19;;;;;:25;;;-1:-1:-1;;;;;11080:25:2;11072:67;;;;-1:-1:-1;;;11072:67:2;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11234:31:2;;11275:26;11234:31;;;:20;:31;;;;;:37;;;:67;;;;;;;;;;11226:95;;;;-1:-1:-1;;;11226:95:2;;;;;;;;;11443:26;-1:-1:-1;;;;;;11402:31:2;;;;;;:20;:31;;;;;:37;;;:67;;;;;;;;;:157;;;-1:-1:-1;11530:29:2;-1:-1:-1;;;;;;11489:31:2;;;;;;:20;:31;;;;;:37;;;:70;;;;;;;;;11402:157;11394:186;;;;-1:-1:-1;;;11394:186:2;;;;;;;;;11719:12;11708:7;:23;;:169;;;;;11752:6;;;;;;;;;-1:-1:-1;;;;;11752:6:2;-1:-1:-1;;;;;11752:14:2;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11752:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11752:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11752:16:2;;;;;;;;;-1:-1:-1;;;;;11752:38:2;;:40;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11752:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11752:40:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11752:40:2;;;;;;;;;11736:12;:56;;:140;;;;11835:6;;;;;;;;;-1:-1:-1;;;;;11835:6:2;-1:-1:-1;;;;;11835:14:2;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11835:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11835:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11835:16:2;;;;;;;;;-1:-1:-1;;;;;11835:38:2;;:40;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11835:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11835:40:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11835:40:2;;;;;;;;;11820:12;:55;11808:7;:68;;11736:140;11700:210;;;;-1:-1:-1;;;11700:210:2;;;;;;;;;-1:-1:-1;;;;;;11981:19:2;;;;;;:8;:19;;;;;;;;;:28;;;12011:211;;11981:28;12011:211;;;;;11981:28;12039:6;-1:-1:-1;;;12039:16:2;;;;;11965:8;;:15;;-1:-1:-1;;;;;11981:28:2;;;;12011:211;;12039:6;;;:14;;:16;;;;;;;;;;;:6;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;12039:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12039:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12039:16:2;;;;;;;;;-1:-1:-1;;;;;12039:31:2;;:33;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12039:33:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12039:33:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12039:33:2;;;;;;;;;12011:211;;12086:6;;:16;;;-1:-1:-1;;;12086:16:2;;;;12011:211;;;;;-1:-1:-1;;;;;12086:6:2;;;;:14;;:16;;;;;;;;;;;:6;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;12086:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12086:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12086:16:2;;;;;;;;;-1:-1:-1;;;;;12086:34:2;;:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12086:36:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12086:36:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12086:36:2;;;;;;;;;-1:-1:-1;;;;;12011:211:2;;;;;;;;;;-1:-1:-1;;;;;;12133:19:2;;;-1:-1:-1;12133:19:2;;;:8;:19;;;12011:211;12133:19;;;;:28;;;-1:-1:-1;;;12133:28:2;;;;;;12011:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11965:277;-1:-1:-1;;;;;;11965:277:2;;;;;;;;;;;12224:17;;11965:277;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11965:277:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11965:277:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11965:277:2;;;;;;;;;11957:316;;;;-1:-1:-1;;;11957:316:2;;;;;;;;;-1:-1:-1;;;;;;12348:19:2;;;;;;:8;:19;;;;;;;;;:31;;;12381:211;;12348:31;12381:211;;;;;12348:31;12409:6;-1:-1:-1;;;12409:16:2;;;;;12332:8;;:15;;-1:-1:-1;;;;;12348:31:2;;;;12381:211;;12409:6;;;:14;;:16;;;;;;;;;;;:6;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;12409:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12409:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12409:16:2;;;;;;;;;-1:-1:-1;;;;;12409:31:2;;:33;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12409:33:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12409:33:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12409:33:2;;;;;;;;;12381:211;;12456:6;;:16;;;-1:-1:-1;;;12456:16:2;;;;12381:211;;;;;-1:-1:-1;;;;;12456:6:2;;;;:14;;:16;;;;;;;;;;;:6;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;12456:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12456:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12456:16:2;;;;;;;;;-1:-1:-1;;;;;12456:34:2;;:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12456:36:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12456:36:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12456:36:2;;;;;;;;;-1:-1:-1;;;;;12381:211:2;;;;;;;;;;-1:-1:-1;;;;;;12503:19:2;;;-1:-1:-1;12503:19:2;;;:8;:19;;;12381:211;12503:19;;;;:28;;;-1:-1:-1;;;12503:28:2;;;;;;12381:211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12332:283;-1:-1:-1;;;;;;12332:283:2;;;;;;;;;;;12594:20;;12332:283;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12332:283:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12332:283:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12332:283:2;;;;;;;;;12324:325;;;;-1:-1:-1;;;12324:325:2;;;;;;;;;-1:-1:-1;;;;;;12748:19:2;;;;;;:8;:19;;;;;:26;;;12737:37;;;12713:89;;;;-1:-1:-1;;;12713:89:2;;;;;;;;;12896:1;12875:17;:22;;;;12867:54;;;;-1:-1:-1;;;12867:54:2;;;;;;;;;13025:29;-1:-1:-1;;;;;;12984:31:2;;;;;;:20;:31;;;;;:37;;;:70;;;;;;;;;12980:540;;;-1:-1:-1;;;;;;13131:31:2;;;;;;:20;:31;;;;;:40;;;:45;13123:90;;;;-1:-1:-1;;;13123:90:2;;;;;;;;;-1:-1:-1;;;;;;13253:31:2;;;;;;:20;:31;;;;;:41;;;13235:15;:59;13227:87;;;;-1:-1:-1;;;13227:87:2;;;;;;;;;-1:-1:-1;;;;;;13422:31:2;;;;;;:20;:31;;;;;:42;;;:62;;;;:42;;:62;13414:95;;;;-1:-1:-1;;;13414:95:2;;;;;;;;;-1:-1:-1;;;;;;13618:31:2;;;;;;:20;:31;;;;;:42;;;;;;;13598:62;;;;13594:142;;;13676:49;13687:9;13698:17;13717:7;13676:10;:49::i;:::-;13790:7;:23;;;-1:-1:-1;13801:12:2;;13790:23;:175;;;-1:-1:-1;13871:29:2;-1:-1:-1;;;;;;13830:31:2;;;;;;:20;:31;;;;;:37;;;:70;;;;;;;;;:134;;;;-1:-1:-1;;;;;;;13923:31:2;;;;;;:20;:31;;;;;:41;;;13904:15;:60;;13830:134;13786:277;;;14005:47;14014:9;14025:17;14044:7;14005:8;:47::i;:::-;10833:3236;;;;;;;:::o;2533:103:3:-;2020:24;2033:10;2020:12;:24::i;:::-;2012:33;;;;;;2606:23;2621:7;2606:14;:23::i;:::-;2533:103;:::o;2813:23:2:-;;;-1:-1:-1;;;;;2813:23:2;;:::o;4456:5768::-;4745:6;;:31;;-1:-1:-1;;;4745:31:2;;4788:1;;-1:-1:-1;;;;;4745:6:2;;:21;;:31;;4767:8;;4745:31;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4745:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4745:31:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4745:31:2;;;;;;;;;-1:-1:-1;;;;;4745:45:2;;;4737:72;;;;-1:-1:-1;;;4737:72:2;;;;;;;;;-1:-1:-1;;;;;;4866:19:2;;4903:1;4866:19;;;:8;:19;;;;;:25;;;-1:-1:-1;;;;;4866:25:2;:39;4858:82;;;;-1:-1:-1;;;4858:82:2;;;;;;;;;5081:6;;:16;;;-1:-1:-1;;;5081:16:2;;;;5036:39;;-1:-1:-1;;;;;5081:6:2;;:14;;:16;;;;;;;;;;;;;;:6;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;5081:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5081:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5081:16:2;;;;;;;;;-1:-1:-1;;;;;5081:24:2;;5106:5;5081:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5081:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5081:31:2;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5081:31:2;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;5081:31:2;;;;;;;;;-1:-1:-1;5029:83:2;-1:-1:-1;5152:27:2;;-1:-1:-1;5130:49:2;;-1:-1:-1;;5130:49:2;;:18;:49;;;;;;;;;:120;;;-1:-1:-1;5221:29:2;5199:18;:51;;;;;;;;;5130:120;5122:154;;;;-1:-1:-1;;;5122:154:2;;;;;;;;;-1:-1:-1;;;;;5389:22:2;;5381:59;;;;-1:-1:-1;;;5381:59:2;;;;;;;;;5576:6;;:31;;-1:-1:-1;;;5576:31:2;;-1:-1:-1;;;;;5576:6:2;;;;:21;;:31;;5598:8;;5576:31;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5576:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5576:31:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5576:31:2;;;;;;;;;-1:-1:-1;;;;;5561:46:2;:11;-1:-1:-1;;;;;5561:46:2;;5553:86;;;;-1:-1:-1;;;5553:86:2;;;;;;;;;5759:6;;:16;;;-1:-1:-1;;;5759:16:2;;;;5710:43;;-1:-1:-1;;;;;5759:6:2;;:14;;:16;;;;;;;;;;;;;;:6;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;5759:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5759:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5759:16:2;;;;;;;;;-1:-1:-1;;;;;5759:24:2;;5784:9;5759:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5759:35:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5759:35:2;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5759:35:2;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;5759:35:2;;;;;;;;;-1:-1:-1;5703:91:2;-1:-1:-1;5838:27:2;;-1:-1:-1;5812:53:2;;-1:-1:-1;;5812:53:2;;:22;:53;;;;;;;;;:128;;;-1:-1:-1;5911:29:2;5885:22;:55;;;;;;;;;5812:128;5804:166;;;;-1:-1:-1;;;5804:166:2;;;;;;;;;6315:12;6303:8;:24;;:171;;;;;6348:6;;;;;;;;;-1:-1:-1;;;;;6348:6:2;-1:-1:-1;;;;;6348:14:2;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6348:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6348:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6348:16:2;;;;;;;;;-1:-1:-1;;;;;6348:38:2;;:40;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6348:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6348:40:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6348:40:2;;;;;;;;;6332:12;:56;;:141;;;;6432:6;;;;;;;;;-1:-1:-1;;;;;6432:6:2;-1:-1:-1;;;;;6432:14:2;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6432:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6432:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6432:16:2;;;;;;;;;-1:-1:-1;;;;;6432:38:2;;:40;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6432:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6432:40:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6432:40:2;;;;;;;;;6417:12;:55;6404:8;:69;;6332:141;6295:212;;;;-1:-1:-1;;;6295:212:2;;;;;;;;;6586:1;6577:6;:10;:76;;;;-1:-1:-1;6608:6:2;;:30;;-1:-1:-1;;;6608:30:2;;-1:-1:-1;;;;;6608:6:2;;;;:20;;:30;;6629:8;;6608:30;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6608:30:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6608:30:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6608:30:2;;;;;;;;;-1:-1:-1;;;;;6601:50:2;;:52;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6601:52:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6601:52:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6601:52:2;;;;;;;;;6591:6;:62;;6577:76;6569:111;;;;-1:-1:-1;;;6569:111:2;;;;;;;;;6829:44;;:::i;:::-;6876:217;;;;;;;;6903:6;;;;;;;;;-1:-1:-1;;;;;6903:6:2;-1:-1:-1;;;;;6903:14:2;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6903:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6903:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6903:16:2;;;;;;;;;-1:-1:-1;;;;;6903:31:2;;:33;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6903:33:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6903:33:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6903:33:2;;;;;;;;;6876:217;;6950:6;;:16;;;-1:-1:-1;;;6950:16:2;;;;6876:217;;;;;-1:-1:-1;;;;;6950:6:2;;;;:14;;:16;;;;;;;;;;;:6;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;6950:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6950:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6950:16:2;;;;;;;;;-1:-1:-1;;;;;6950:34:2;;:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6950:36:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6950:36:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6950:36:2;;;;;;;;;-1:-1:-1;;;;;6876:217:2;;;;;6994:5;6988:12;;;;;;;;6876:217;;;;;;7002:8;6876:217;;;;7012:8;-1:-1:-1;;;;;6876:217:2;;;;;;7022:9;-1:-1:-1;;;;;6876:217:2;;;;;;7045:5;-1:-1:-1;;;;;6876:217:2;;;;;7052:8;-1:-1:-1;;;;;6876:217:2;;;;;7062:11;-1:-1:-1;;;;;6876:217:2;;;;;7075:9;-1:-1:-1;;;;;6876:217:2;;;;;7086:6;6876:217;;;6829:264;;7111:8;:15;7127:5;7134:10;7146:9;7111:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7111:45:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7111:45:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7111:45:2;;;;;;;;;7103:83;;;;-1:-1:-1;;;7103:83:2;;;;;;;;;7210:28;7201:5;:37;;;;;;;;;7197:2251;;;7406:6;;:31;;-1:-1:-1;;;7406:31:2;;-1:-1:-1;;;;;7406:6:2;;;;:21;;:31;;7428:8;;7406:31;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7406:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7406:31:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7406:31:2;;;;;;;;;-1:-1:-1;;;;;7392:45:2;:10;-1:-1:-1;;;;;7392:45:2;;:88;;;-1:-1:-1;7461:10:2;-1:-1:-1;;;;;7461:19:2;;;7392:88;7384:132;;;;-1:-1:-1;;;7384:132:2;;;;;;;;;7591:6;;:60;;-1:-1:-1;;;7591:60:2;;-1:-1:-1;;;;;7591:6:2;;;;:14;;:60;;7606:8;;7616:5;;7623:27;;7591:60;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7591:60:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7591:60:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7591:60:2;;;;;;;;;:153;;;-1:-1:-1;7675:6:2;;:69;;-1:-1:-1;;;7675:69:2;;-1:-1:-1;;;;;7675:6:2;;;;:14;;:69;;7690:8;;7700:5;;7707:36;;7675:69;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7675:69:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7675:69:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7675:69:2;;;;;;;;;7583:184;;;;-1:-1:-1;;;7583:184:2;;;;;;;;;7924:6;;:31;;-1:-1:-1;;;7924:31:2;;-1:-1:-1;;;;;7924:6:2;;;;:21;;:31;;7946:8;;7924:31;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7924:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7924:31:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7924:31:2;;;;;;;;;-1:-1:-1;;;;;7911:44:2;:9;-1:-1:-1;;;;;7911:44:2;;7903:77;;;;-1:-1:-1;;;7903:77:2;;;;;;;;;8118:6;;:30;;-1:-1:-1;;;8118:30:2;;-1:-1:-1;;;;;8118:6:2;;;;:20;;:30;;8139:8;;8118:30;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8118:30:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8118:30:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8118:30:2;;;;;;;;;-1:-1:-1;;;;;8111:51:2;;8163:5;8178:4;8185:6;8111:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8111:81:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8111:81:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8111:81:2;;;;;;;;;8103:149;;;;-1:-1:-1;;;8103:149:2;;;;;;;;;7197:2251;;;8283:27;8274:5;:36;;;;;;;;;8270:1178;;;8496:6;;:31;;-1:-1:-1;;;8496:31:2;;-1:-1:-1;;;;;8496:6:2;;;;:21;;:31;;8518:8;;8496:31;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8496:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8496:31:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8496:31:2;;;;;;;;;-1:-1:-1;;;;;8482:45:2;:10;-1:-1:-1;;;;;8482:45:2;;:114;;;-1:-1:-1;8565:6:2;;:31;;-1:-1:-1;;;8565:31:2;;-1:-1:-1;;;;;8565:6:2;;;;:21;;:31;;8587:8;;8565:31;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8565:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8565:31:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8565:31:2;;;;;;;;;-1:-1:-1;;;;;8551:45:2;:10;-1:-1:-1;;;;;8551:45:2;;8482:114;8474:158;;;;-1:-1:-1;;;8474:158:2;;;;;;;;;8707:6;;;:60;;-1:-1:-1;;;8707:60:2;;-1:-1:-1;;;;;8707:6:2;;;;:14;;:60;;8722:8;;8732:5;;8707:6;:60;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8707:60:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8707:60:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8707:60:2;;;;;;;;;:153;;;-1:-1:-1;8791:6:2;;:69;;-1:-1:-1;;;8791:69:2;;-1:-1:-1;;;;;8791:6:2;;;;:14;;:69;;8806:8;;8816:5;;8823:36;;8791:69;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8791:69:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8791:69:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8791:69:2;;;;;;;;;8699:184;;;;-1:-1:-1;;;8699:184:2;;;;;;;;;9039:5;-1:-1:-1;;;;;9026:18:2;:9;-1:-1:-1;;;;;9026:18:2;;9018:50;;;;-1:-1:-1;;;9018:50:2;;;;;;;;;9201:6;;:30;;-1:-1:-1;;;9201:30:2;;-1:-1:-1;;;;;9201:6:2;;;;:20;;:30;;9222:8;;9201:30;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9201:30:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9201:30:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9201:30:2;;;;;;;;;-1:-1:-1;;;;;9194:51:2;;9246:6;;;;;;;;;-1:-1:-1;;;;;9246:6:2;-1:-1:-1;;;;;9246:21:2;;9268:8;9246:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9246:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9246:31:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9246:31:2;;;;;;;;;9287:4;9294:6;9194:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9194:107:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9194:107:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9194:107:2;;;;;;;;;9186:181;;;;-1:-1:-1;;;9186:181:2;;;;;;;;8270:1178;9399:38;;-1:-1:-1;;;9399:38:2;;;;;;;;;9595:138;;;;;;;;;;;9622:10;;-1:-1:-1;;;9622:10:2;;;;9595:138;;;;;;;9634:5;9595:138;;;;;;;;;;-1:-1:-1;;;;;;9595:138:2;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9595:138:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9573:19:2;;;:8;:19;;;;;;;:160;;;;;;;;;;;;;-1:-1:-1;;9573:160:2;;;;;;;;;;;;;;;;:19;;:160;;-1:-1:-1;;9573:160:2;;;;;;;;;;;;;;;;;;;-1:-1:-1;9573:160:2;;;;;;;;;-1:-1:-1;;9573:160:2;-1:-1:-1;;;9573:160:2;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9573:160:2;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9573:160:2;;;-1:-1:-1;;;;;9573:160:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;9839:94:2;;;;;;;;;;-1:-1:-1;9839:94:2;9868:26;9839:94;;9908:1;9839:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9805:31:2;;;;:20;:31;;;:128;;;;:31;;-1:-1:-1;;9805:128:2;;;;;;;;;;;;;;;-1:-1:-1;9805:128:2;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9805:128:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9805:128:2;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;10012:10;;;;;;;;;;;10025:1;10012:14;9999:10;;:27;;;;;;;;;;;;;;;;;;10147:9;-1:-1:-1;;;;;10123:94:2;;10137:8;-1:-1:-1;;;;;10123:94:2;;;10130:5;10158;10165:8;10175:11;10188:9;10199:6;10207:9;10123:94;;;;;;;;;;;;;;;;;;;;;4456:5768;;;;;;;;;;;;;:::o;2268:115:3:-;2329:4;2352:24;2329:4;2368:7;2352:24;:15;:24;:::i;:::-;2345:31;;2268:115;;;;:::o;2921:139::-;2985:27;:11;3004:7;2985:27;:18;:27;:::i;:::-;3027:26;;-1:-1:-1;;;;;3027:26:3;;;;;;;;2921:139;:::o;14075:2259:2:-;14257:6;;;-1:-1:-1;;;;;;14278:19:2;;14242:12;14278:19;;;:8;:19;;;;;;:28;;;;14257:50;;-1:-1:-1;;;14257:50:2;;14242:12;;-1:-1:-1;;;;;14257:6:2;;;;:20;;:50;;-1:-1:-1;;;14278:28:2;;;;;14257:50;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14257:50:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14257:50:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14257:50:2;;;;;;;;;-1:-1:-1;;;;;;14439:19:2;;14421:14;14439:19;;;:8;:19;;;;;;;;:26;;;14983;;-1:-1:-1;;;14983:26:2;;;;14242:65;;-1:-1:-1;14439:36:2;;;;-1:-1:-1;;;;;14983:24:2;;;;;:26;;;;;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;14983:26:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14983:26:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14983:26:2;;;;;;;;;14931:6;;;-1:-1:-1;;;;;;14951:19:2;;14931:6;14951:19;;;:8;:19;;;;;;;:28;;;;14931:49;;-1:-1:-1;;;14931:49:2;;-1:-1:-1;;;;;14931:6:2;;;;:19;;:49;;-1:-1:-1;;;14951:28:2;;;;;14931:49;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14931:49:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14931:49:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;14931:49:2;;;;;;;;;14922:6;:58;:87;;;;;;14908:101;;15019:20;15082:6;;;;;;;;;-1:-1:-1;;;;;15082:6:2;-1:-1:-1;;;;;15082:14:2;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15082:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15082:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15082:16:2;;;;;;;;;-1:-1:-1;;;;;15082:22:2;;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15082:24:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15082:24:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15082:24:2;;;;;;;;;-1:-1:-1;;;;;15082:36:2;;:38;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15082:38:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15082:38:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15082:38:2;;;;;;;;;15048:6;;;;;;;;;-1:-1:-1;;;;;15048:6:2;-1:-1:-1;;;;;15048:14:2;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15048:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15048:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15048:16:2;;;;;;;;;-1:-1:-1;;;;;15048:29:2;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15048:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15048:31:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;15048:31:2;;;;;;;;;15042:3;:37;:78;;;;;-1:-1:-1;;;;;;15441:31:2;;15486:1;15441:31;;;:20;:31;;;;;:42;;;15042:78;;;;-1:-1:-1;15441:42:2;;:46;15437:175;;-1:-1:-1;;;;;;15522:31:2;;;;;;:20;:31;;;;;;;;:46;;15511:57;;;15503:98;;;;-1:-1:-1;;;15503:98:2;;;;;;;;;-1:-1:-1;;;;;;15708:31:2;;;;;;:20;:31;;;;;;;;;:69;;15748:29;-1:-1:-1;;15708:69:2;;;;;;;15787:42;;:62;;-1:-1:-1;;15787:62:2;;;;;;;15859:46;;;:56;;;-1:-1:-1;16033:6:2;:45;;-1:-1:-1;;;16033:45:2;;;;-1:-1:-1;;;;;16033:6:2;;;;:43;;:45;;;;;15708:31;;16033:45;;;;;:6;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;16033:45:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16033:45:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;16033:45:2;;;;;;;;;-1:-1:-1;;;;;;15971:31:2;;;;;;;:20;:31;;;;;;;;16015:15;:63;;;;15971:41;;;;:107;;;16189:8;:19;;;;;;:28;;;;16285:31;;;16154:173;;15971:31;;-1:-1:-1;;;16189:28:2;;;;16154:173;;;;;;;;16162:25;;;;;;;16242:12;;;;16256:18;;;;16276:7;;16154:173;;;;;;;;;;14075:2259;;;;;;;:::o;16340:2814::-;16520:6;;;-1:-1:-1;;;;;;16541:19:2;;16505:12;16541:19;;;:8;:19;;;;;;:28;;;;16520:50;;-1:-1:-1;;;16520:50:2;;16505:12;;-1:-1:-1;;;;;16520:6:2;;;;:20;;:50;;-1:-1:-1;;;16541:28:2;;;;;16520:50;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16520:50:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16520:50:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;16520:50:2;;;;;;;;;-1:-1:-1;;;;;;16702:19:2;;16684:14;16702:19;;;:8;:19;;;;;;;;:26;;;17246;;-1:-1:-1;;;17246:26:2;;;;16505:65;;-1:-1:-1;16702:36:2;;;;-1:-1:-1;;;;;17246:24:2;;;;;:26;;;;;;;;;;;:24;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;17246:26:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17246:26:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17246:26:2;;;;;;;;;17194:6;;;-1:-1:-1;;;;;;17214:19:2;;17194:6;17214:19;;;:8;:19;;;;;;;:28;;;;17194:49;;-1:-1:-1;;;17194:49:2;;-1:-1:-1;;;;;17194:6:2;;;;:19;;:49;;-1:-1:-1;;;17214:28:2;;;;;17194:49;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17194:49:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17194:49:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17194:49:2;;;;;;;;;17185:6;:58;:87;;;;;;17171:101;;17282:20;17345:6;;;;;;;;;-1:-1:-1;;;;;17345:6:2;-1:-1:-1;;;;;17345:14:2;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17345:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17345:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17345:16:2;;;;;;;;;-1:-1:-1;;;;;17345:22:2;;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17345:24:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17345:24:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17345:24:2;;;;;;;;;-1:-1:-1;;;;;17345:36:2;;:38;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17345:38:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17345:38:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17345:38:2;;;;;;;;;17311:6;;;;;;;;;-1:-1:-1;;;;;17311:6:2;-1:-1:-1;;;;;17311:14:2;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17311:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17311:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17311:16:2;;;;;;;;;-1:-1:-1;;;;;17311:29:2;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17311:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17311:31:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17311:31:2;;;;;;;;;17305:3;:37;:78;;;;;;;-1:-1:-1;17594:12:2;;;:16;17590:409;;17659:28;-1:-1:-1;;;;;;17630:19:2;;;;;;:8;:19;;;;;;;;:25;;;;;;;;;:57;;;;;;;;17626:363;;;-1:-1:-1;;;;;;17737:19:2;;;;;;:8;:19;;;;;;;:31;;;17715:68;;-1:-1:-1;;;17715:68:2;;-1:-1:-1;;;;;17715:21:2;;;;;;:68;;17737:31;;;;17770:12;;;;17715:68;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17715:68:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17715:68:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17715:68:2;;;;;;;;;17707:117;;;;-1:-1:-1;;;17707:117:2;;;;;;;;;17626:363;;;-1:-1:-1;;;;;;17893:19:2;;;;;;:8;:19;;;;;;;:25;;;17871:62;;-1:-1:-1;;;17871:62:2;;-1:-1:-1;;;;;17871:21:2;;;;;;:62;;17893:25;;;;17920:12;;;;17871:62;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17871:62:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17871:62:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;17871:62:2;;;;;;;;;17863:111;;;;-1:-1:-1;;;17863:111:2;;;;;;;;;18013:11;;18009:394;;18073:28;-1:-1:-1;;;;;;18044:19:2;;;;;;:8;:19;;;;;;;;:25;;;;;;;;;:57;;;;;;;;18040:353;;;-1:-1:-1;;;;;;18151:19:2;;;;;;:8;:19;;;;;;;:25;;;18129:57;;-1:-1:-1;;;18129:57:2;;-1:-1:-1;;;;;18129:21:2;;;;;;:57;;18151:25;;;;18178:7;;18129:57;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18129:57:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18129:57:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;18129:57:2;;;;;;;;;18121:106;;;;-1:-1:-1;;;18121:106:2;;;;;;;;;18040:353;;;-1:-1:-1;;;;;;18296:19:2;;;;;;:8;:19;;;;;;;:31;;;18274:63;;-1:-1:-1;;;18274:63:2;;-1:-1:-1;;;;;18274:21:2;;;;;;:63;;18296:31;;;;18329:7;;18274:63;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18274:63:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18274:63:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;18274:63:2;;;;;;;;;18266:112;;;;-1:-1:-1;;;18266:112:2;;;;;;;;;18417:7;;18413:306;;18470:6;;;-1:-1:-1;;;;;;18492:19:2;;18470:6;18492:19;;;:8;:19;;;;;;;:28;;;;18470:51;;-1:-1:-1;;;18470:51:2;;-1:-1:-1;;;;;18448:21:2;;;;;;18470:6;;;;:21;;:51;;-1:-1:-1;;;18492:28:2;;;;;;18470:51;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18470:51:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18470:51:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;18470:51:2;;;;;;;;;18529:12;18523:3;:18;18448:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18448:94:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18448:94:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;18448:94:2;;;;;;;;;18440:140;;;;-1:-1:-1;;;18440:140:2;;;;;;;;;18609:4;-1:-1:-1;;;;;18602:21:2;;18624:6;;;;;;;;;-1:-1:-1;;;;;18624:6:2;-1:-1:-1;;;;;18624:14:2;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18624:16:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18624:16:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;18624:16:2;;;;;;;;;-1:-1:-1;;;;;18624:29:2;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18624:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18624:31:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;18624:31:2;;;;;;;;;18657:12;18602:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18602:68:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18602:68:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;18602:68:2;;;;;;;;;18594:114;;;;-1:-1:-1;;;18594:114:2;;;;;;;;;-1:-1:-1;;;;;;18789:31:2;;;;;;;:20;:31;;;;;;;;18832:15;18789:40;;;:58;;;18881:68;;-1:-1:-1;;18881:68:2;;;;;;19035:8;:19;;;;;;;-1:-1:-1;19035:28:2;;19001:146;;18789:31;;-1:-1:-1;;;19035:28:2;;;;19001:146;;;;;;19008:25;;;;;;;19088:12;;;;19102:18;;;;19122:7;;18832:15;19001:146;;2784:131:3;2845:24;:11;2861:7;2845:24;:15;:24;:::i;:::-;2884;;-1:-1:-1;;;;;2884:24:3;;;;;;;;2784:131;:::o;779:200:11:-;851:4;-1:-1:-1;;;;;875:21:11;;867:68;;;;-1:-1:-1;;;867:68:11;;;;;;;;;-1:-1:-1;;;;;;952:20:11;;:11;:20;;;;;;;;;;;;;779:200;;;;;:::o;510:180::-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;581:64:11;;;;;;;;;-1:-1:-1;;;;;655:20:11;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:11;;;510:180::o;260:175::-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;-1:-1:-1;;;328:63:11;;;;;;;;;-1:-1:-1;;;;;401:20:11;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:11;424:4;401:27;;;260:175::o;1393:17763:2:-;;;;;;;;;-1:-1:-1;1393:17763:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1393:17763:2;;;-1:-1:-1;1393:17763:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:134;220:13;;238:33;220:13;238:33;;283:124;347:20;;372:30;347:20;372:30;;414:128;489:13;;507:30;489:13;507:30;;549:130;616:20;;641:33;616:20;641:33;;687:434;;795:3;788:4;780:6;776:17;772:27;762:2;;813:1;810;803:12;762:2;843:6;837:13;865:60;880:44;917:6;880:44;;;865:60;;;856:69;;945:6;938:5;931:21;981:4;973:6;969:17;1014:4;1007:5;1003:16;1049:3;1040:6;1035:3;1031:16;1028:25;1025:2;;;1066:1;1063;1056:12;1025:2;1076:39;1108:6;1103:3;1098;1076:39;;;755:366;;;;;;;;1130:440;;1231:3;1224:4;1216:6;1212:17;1208:27;1198:2;;1249:1;1246;1239:12;1198:2;1286:6;1273:20;1308:64;1323:48;1364:6;1323:48;;1308:64;1299:73;;1392:6;1385:5;1378:21;1428:4;1420:6;1416:17;1461:4;1454:5;1450:16;1496:3;1487:6;1482:3;1478:16;1475:25;1472:2;;;1513:1;1510;1503:12;1472:2;1523:41;1557:6;1552:3;1547;1523:41;;1578:172;1675:13;;1693:52;1675:13;1693:52;;1932:162;2015:20;;2040:49;2015:20;2040:49;;2101:166;2195:13;;2213:49;2195:13;2213:49;;2719:130;2786:20;;2811:33;2786:20;2811:33;;2856:134;2934:13;;2952:33;2934:13;2952:33;;2997:128;3063:20;;3088:32;3063:20;3088:32;;3132:241;;3236:2;3224:9;3215:7;3211:23;3207:32;3204:2;;;3252:1;3249;3242:12;3204:2;3287:1;3304:53;3349:7;3329:9;3304:53;;;3294:63;3198:175;-1:-1;;;;3198:175;3380:263;;3495:2;3483:9;3474:7;3470:23;3466:32;3463:2;;;3511:1;3508;3501:12;3463:2;3546:1;3563:64;3619:7;3599:9;3563:64;;3650:257;;3762:2;3750:9;3741:7;3737:23;3733:32;3730:2;;;3778:1;3775;3768:12;3730:2;3813:1;3830:61;3883:7;3863:9;3830:61;;3914:241;;4018:2;4006:9;3997:7;3993:23;3989:32;3986:2;;;4034:1;4031;4024:12;3986:2;4069:1;4086:53;4131:7;4111:9;4086:53;;4162:1195;;;;;;;;4382:3;4370:9;4361:7;4357:23;4353:33;4350:2;;;4399:1;4396;4389:12;4350:2;4434:1;4451:53;4496:7;4476:9;4451:53;;;4441:63;;4413:97;4541:2;4559:53;4604:7;4595:6;4584:9;4580:22;4559:53;;;4549:63;;4520:98;4649:2;4667:52;4711:7;4702:6;4691:9;4687:22;4667:52;;;4657:62;;4628:97;4756:2;4774:53;4819:7;4810:6;4799:9;4795:22;4774:53;;;4764:63;;4735:98;4864:3;4883:50;4925:7;4916:6;4905:9;4901:22;4883:50;;;4873:60;;4843:96;4998:3;4987:9;4983:19;4970:33;5023:18;5015:6;5012:30;5009:2;;;5055:1;5052;5045:12;5009:2;5075:62;5129:7;5120:6;5109:9;5105:22;5075:62;;;5065:72;;4949:194;5202:3;5191:9;5187:19;5174:33;5227:18;5219:6;5216:30;5213:2;;;5259:1;5256;5249:12;5213:2;5279:62;5333:7;5324:6;5313:9;5309:22;5279:62;;;5269:72;;5153:194;4344:1013;;;;;;;;;;;5364:301;;5498:2;5486:9;5477:7;5473:23;5469:32;5466:2;;;5514:1;5511;5504:12;5466:2;5549:1;5566:83;5641:7;5621:9;5566:83;;5976:1509;;;;;;;;;;;6258:3;6246:9;6237:7;6233:23;6229:33;6226:2;;;6275:1;6272;6265:12;6226:2;6310:1;6327:69;6388:7;6368:9;6327:69;;;6317:79;;6289:113;6433:2;6451:53;6496:7;6487:6;6476:9;6472:22;6451:53;;;6441:63;;6412:98;6541:2;6559:53;6604:7;6595:6;6584:9;6580:22;6559:53;;;6549:63;;6520:98;6649:2;6667:53;6712:7;6703:6;6692:9;6688:22;6667:53;;;6657:63;;6628:98;6757:3;6776:53;6821:7;6812:6;6801:9;6797:22;6776:53;;;6766:63;;6736:99;6866:3;6885:53;6930:7;6921:6;6910:9;6906:22;6885:53;;;6875:63;;6845:99;6975:3;6994:53;7039:7;7030:6;7019:9;7015:22;6994:53;;;6984:63;;6954:99;7084:3;7103:53;7148:7;7139:6;7128:9;7124:22;7103:53;;;7093:63;;7063:99;7193:3;7212:53;7257:7;7248:6;7237:9;7233:22;7212:53;;;7202:63;;7172:99;7330:3;7319:9;7315:19;7302:33;7355:18;7347:6;7344:30;7341:2;;;7387:1;7384;7377:12;7341:2;7407:62;7461:7;7452:6;7441:9;7437:22;7407:62;;;7397:72;;7281:194;6220:1265;;;;;;;;;;;;;;7492:263;;7607:2;7595:9;7586:7;7582:23;7578:32;7575:2;;;7623:1;7620;7613:12;7575:2;7658:1;7675:64;7731:7;7711:9;7675:64;;7762:1112;;;;;;7978:3;7966:9;7957:7;7953:23;7949:33;7946:2;;;7995:1;7992;7985:12;7946:2;8030:1;8047:64;8103:7;8083:9;8047:64;;;8037:74;;8009:108;8169:2;8158:9;8154:18;8148:25;8193:18;8185:6;8182:30;8179:2;;;8225:1;8222;8215:12;8179:2;8245:70;8307:7;8298:6;8287:9;8283:22;8245:70;;;8235:80;;8127:194;8373:2;8362:9;8358:18;8352:25;8397:18;8389:6;8386:30;8383:2;;;8429:1;8426;8419:12;8383:2;8449:70;8511:7;8502:6;8491:9;8487:22;8449:70;;;8439:80;;8331:194;8556:2;8574:80;8646:7;8637:6;8626:9;8622:22;8574:80;;;8564:90;;8535:125;8712:3;8701:9;8697:19;8691:26;8737:18;8729:6;8726:30;8723:2;;;8769:1;8766;8759:12;8723:2;8789:69;8850:7;8841:6;8830:9;8826:22;8789:69;;;8779:79;;8670:194;7940:934;;;;;;;;;8881:113;8964:24;8982:5;8964:24;;;8959:3;8952:37;8946:48;;;9247:104;9324:21;9339:5;9324:21;;9467:113;9550:24;9568:5;9550:24;;9705:343;;9815:38;9847:5;9815:38;;;9865:70;9928:6;9923:3;9865:70;;;9858:77;;9940:52;9985:6;9980:3;9973:4;9966:5;9962:16;9940:52;;;10013:29;10035:6;10013:29;;;10004:39;;;;9795:253;-1:-1;;;9795:253;10763:162;10864:55;10913:5;10864:55;;10932:150;11027:49;11070:5;11027:49;;11089:156;11187:52;11233:5;11187:52;;11252:154;11349:51;11394:5;11349:51;;11414:331;;11574:67;11638:2;11633:3;11574:67;;;11674:33;11654:54;;11736:2;11727:12;;11560:185;-1:-1;;11560:185;11754:322;;11914:67;11978:2;11973:3;11914:67;;;-1:-1;;;11994:45;;12067:2;12058:12;;11900:176;-1:-1;;11900:176;12085:316;;12245:67;12309:2;12304:3;12245:67;;;-1:-1;;;12325:39;;12392:2;12383:12;;12231:170;-1:-1;;12231:170;12410:370;;12570:67;12634:2;12629:3;12570:67;;;12670:34;12650:55;;-1:-1;;;12734:2;12725:12;;12718:25;12771:2;12762:12;;12556:224;-1:-1;;12556:224;12789:319;;12949:67;13013:2;13008:3;12949:67;;;-1:-1;;;13029:42;;13099:2;13090:12;;12935:173;-1:-1;;12935:173;13117:376;;13277:67;13341:2;13336:3;13277:67;;;13377:34;13357:55;;-1:-1;;;13441:2;13432:12;;13425:31;13484:2;13475:12;;13263:230;-1:-1;;13263:230;13502:324;;13662:67;13726:2;13721:3;13662:67;;;13762:26;13742:47;;13817:2;13808:12;;13648:178;-1:-1;;13648:178;13835:315;;13995:67;14059:2;14054:3;13995:67;;;-1:-1;;;14075:38;;14141:2;14132:12;;13981:169;-1:-1;;13981:169;14159:319;;14319:67;14383:2;14378:3;14319:67;;;-1:-1;;;14399:42;;14469:2;14460:12;;14305:173;-1:-1;;14305:173;14487:330;;14647:67;14711:2;14706:3;14647:67;;;14747:32;14727:53;;14808:2;14799:12;;14633:184;-1:-1;;14633:184;14826:332;;14986:67;15050:2;15045:3;14986:67;;;15086:34;15066:55;;15149:2;15140:12;;14972:186;-1:-1;;14972:186;15167:327;;15327:67;15391:2;15386:3;15327:67;;;15427:29;15407:50;;15485:2;15476:12;;15313:181;-1:-1;;15313:181;15503:320;;15663:67;15727:2;15722:3;15663:67;;;-1:-1;;;15743:43;;15814:2;15805:12;;15649:174;-1:-1;;15649:174;15832:318;;15992:67;16056:2;16051:3;15992:67;;;-1:-1;;;16072:41;;16141:2;16132:12;;15978:172;-1:-1;;15978:172;16159:318;;16319:67;16383:2;16378:3;16319:67;;;-1:-1;;;16399:41;;16468:2;16459:12;;16305:172;-1:-1;;16305:172;16486:370;;16646:67;16710:2;16705:3;16646:67;;;16746:34;16726:55;;-1:-1;;;16810:2;16801:12;;16794:25;16847:2;16838:12;;16632:224;-1:-1;;16632:224;16865:325;;17025:67;17089:2;17084:3;17025:67;;;17125:27;17105:48;;17181:2;17172:12;;17011:179;-1:-1;;17011:179;17199:371;;17359:67;17423:2;17418:3;17359:67;;;17459:34;17439:55;;-1:-1;;;17523:2;17514:12;;17507:26;17561:2;17552:12;;17345:225;-1:-1;;17345:225;17579:373;;17739:67;17803:2;17798:3;17739:67;;;17839:34;17819:55;;-1:-1;;;17903:2;17894:12;;17887:28;17943:2;17934:12;;17725:227;-1:-1;;17725:227;17961:314;;18121:67;18185:2;18180:3;18121:67;;;-1:-1;;;18201:37;;18266:2;18257:12;;18107:168;-1:-1;;18107:168;18284:382;;18444:67;18508:2;18503:3;18444:67;;;18544:34;18524:55;;-1:-1;;;18608:2;18599:12;;18592:37;18657:2;18648:12;;18430:236;-1:-1;;18430:236;18675:320;;18835:67;18899:2;18894:3;18835:67;;;-1:-1;;;18915:43;;18986:2;18977:12;;18821:174;-1:-1;;18821:174;19004:329;;19164:67;19228:2;19223:3;19164:67;;;19264:31;19244:52;;19324:2;19315:12;;19150:183;-1:-1;;19150:183;19342:323;;19502:67;19566:2;19561:3;19502:67;;;19602:25;19582:46;;19656:2;19647:12;;19488:177;-1:-1;;19488:177;19674:331;;19834:67;19898:2;19893:3;19834:67;;;19934:33;19914:54;;19996:2;19987:12;;19820:185;-1:-1;;19820:185;20014:321;;20174:67;20238:2;20233:3;20174:67;;;-1:-1;;;20254:44;;20326:2;20317:12;;20160:175;-1:-1;;20160:175;20344:328;;20504:67;20568:2;20563:3;20504:67;;;20604:30;20584:51;;20663:2;20654:12;;20490:182;-1:-1;;20490:182;20681:315;;20841:67;20905:2;20900:3;20841:67;;;-1:-1;;;20921:38;;20987:2;20978:12;;20827:169;-1:-1;;20827:169;21005:325;;21165:67;21229:2;21224:3;21165:67;;;21265:27;21245:48;;21321:2;21312:12;;21151:179;-1:-1;;21151:179;21339:331;;21499:67;21563:2;21558:3;21499:67;;;21599:33;21579:54;;21661:2;21652:12;;21485:185;-1:-1;;21485:185;21679:326;;21839:67;21903:2;21898:3;21839:67;;;21939:28;21919:49;;21996:2;21987:12;;21825:180;-1:-1;;21825:180;22014:373;;22174:67;22238:2;22233:3;22174:67;;;22274:34;22254:55;;-1:-1;;;22338:2;22329:12;;22322:28;22378:2;22369:12;;22160:227;-1:-1;;22160:227;22396:320;;22556:67;22620:2;22615:3;22556:67;;;-1:-1;;;22636:43;;22707:2;22698:12;;22542:174;-1:-1;;22542:174;22725:328;;22885:67;22949:2;22944:3;22885:67;;;22985:30;22965:51;;23044:2;23035:12;;22871:182;-1:-1;;22871:182;23140:1524;23380:23;;23309:6;23300:16;;;23409:71;23304:3;23380:23;23409:71;;;23331:155;23572:4;23565:5;23561:16;23555:23;23584:71;23649:4;23644:3;23640:14;23626:12;23584:71;;;23496:165;23737:4;23730:5;23726:16;23720:23;23749:71;23814:4;23809:3;23805:14;23791:12;23749:71;;;23671:155;23903:4;23896:5;23892:16;23886:23;23915:71;23980:4;23975:3;23971:14;23957:12;23915:71;;;23836:156;24070:4;24063:5;24059:16;24053:23;24082:71;24147:4;24142:3;24138:14;24124:12;24082:71;;;24002:157;24238:4;24231:5;24227:16;24221:23;24250:69;24313:4;24308:3;24304:14;24290:12;24250:69;;;24169:156;24401:4;24394:5;24390:16;24384:23;24413:71;24478:4;24473:3;24469:14;24455:12;24413:71;;;24335:155;24566:4;24559:5;24555:16;24549:23;24578:65;24637:4;24632:3;24628:14;24614:12;24578:65;;;24500:149;23282:1382;;;;24748:2037;24990:23;;24919:6;24910:16;;;25019:71;24914:3;24990:23;25019:71;;;24941:155;25182:4;25175:5;25171:16;25165:23;25194:71;25259:4;25254:3;25250:14;25236:12;25194:71;;;25106:165;25345:4;25338:5;25334:16;25328:23;25357:67;25418:4;25413:3;25409:14;25395:12;25357:67;;;25281:149;25507:4;25500:5;25496:16;25490:23;25519:71;25584:4;25579:3;25575:14;25561:12;25519:71;;;25440:156;25673:4;25666:5;25662:16;25656:23;25685:71;25750:4;25745:3;25741:14;25727:12;25685:71;;;25606:156;25840:4;25833:5;25829:16;25823:23;25852:71;25917:4;25912:3;25908:14;25894:12;25852:71;;;25772:157;26003:4;25996:5;25992:16;25986:23;26015:71;26080:4;26075:3;26071:14;26057:12;26015:71;;;25939:153;26169:4;26162:5;26158:16;26152:23;26181:71;26246:4;26241:3;26237:14;26223:12;26181:71;;;26102:156;26338:6;26331:5;26327:18;26321:25;26352:73;26417:6;26412:3;26408:16;26394:12;26352:73;;;26268:163;26509:6;26502:5;26498:18;26492:25;26523:73;26588:6;26583:3;26579:16;26565:12;26523:73;;;26441:161;26677:6;26670:5;26666:18;26660:25;26691:73;26756:6;26751:3;26747:16;26733:12;26792:113;26875:24;26893:5;26875:24;;27030:110;27111:23;27128:5;27111:23;;27262:105;27339:22;27355:5;27339:22;;27374:213;27492:2;27477:18;;27506:71;27481:9;27550:6;27506:71;;27594:435;27768:2;27753:18;;27782:71;27757:9;27826:6;27782:71;;;27864:72;27932:2;27921:9;27917:18;27908:6;27864:72;;;27947;28015:2;28004:9;28000:18;27991:6;27947:72;;28036:689;28304:3;28289:19;;28319:79;28293:9;28371:6;28319:79;;;28409:148;28553:2;28542:9;28538:18;28529:6;28409:148;;;28606:9;28600:4;28596:20;28590:3;28579:9;28575:19;28568:49;28631:84;28710:4;28701:6;28631:84;;;28623:92;28275:450;-1:-1;;;;;28275:450;28732:693;29002:3;28987:19;;29017:79;28991:9;29069:6;29017:79;;;29107:150;29253:2;29242:9;29238:18;29229:6;29107:150;;;29306:9;29300:4;29296:20;29290:3;29279:9;29275:19;29268:49;29331:84;29410:4;29401:6;29331:84;;29432:324;29578:2;29563:18;;29592:71;29567:9;29636:6;29592:71;;;29674:72;29742:2;29731:9;29727:18;29718:6;29674:72;;;29549:207;;;;;;29763:201;29875:2;29860:18;;29889:65;29864:9;29927:6;29889:65;;29971:213;30089:2;30074:18;;30103:71;30078:9;30147:6;30103:71;;30191:459;30377:2;30362:18;;30391:71;30366:9;30435:6;30391:71;;;30473:72;30541:2;30530:9;30526:18;30517:6;30473:72;;;30556:84;30636:2;30625:9;30621:18;30612:6;30556:84;;30657:249;30793:2;30778:18;;30807:89;30782:9;30869:6;30807:89;;30913:1281;31294:3;31279:19;;31309:86;31283:9;31368:6;31309:86;;;31406:72;31474:2;31463:9;31459:18;31450:6;31406:72;;;31489:70;31555:2;31544:9;31540:18;31531:6;31489:70;;;31570:72;31638:2;31627:9;31623:18;31614:6;31570:72;;;31653:73;31721:3;31710:9;31706:19;31697:6;31653:73;;;31737:71;31803:3;31792:9;31788:19;31779:6;31737:71;;;31819:73;31887:3;31876:9;31872:19;31863:6;31819:73;;;31941:9;31935:4;31931:20;31925:3;31914:9;31910:19;31903:49;31966:72;32033:4;32024:6;31966:72;;;31958:80;;32087:9;32081:4;32077:20;32071:3;32060:9;32056:19;32049:49;32112:72;32179:4;32170:6;32112:72;;;32104:80;31265:929;-1:-1;;;;;;;;;;;31265:929;32201:995;32519:3;32504:19;;32534:85;32508:9;32592:6;32534:85;;;32630:72;32698:2;32687:9;32683:18;32674:6;32630:72;;;32713;32781:2;32770:9;32766:18;32757:6;32713:72;;;32796;32864:2;32853:9;32849:18;32840:6;32796:72;;;32879:73;32947:3;32936:9;32932:19;32923:6;32879:73;;;32963;33031:3;33020:9;33016:19;33007:6;32963:73;;;33085:9;33079:4;33075:20;33069:3;33058:9;33054:19;33047:49;33110:76;33181:4;33172:6;33110:76;;;33102:84;32490:706;-1:-1;;;;;;;;;32490:706;33203:687;33447:3;33432:19;;33462:85;33436:9;33520:6;33462:85;;;33558:72;33626:2;33615:9;33611:18;33602:6;33558:72;;;33641;33709:2;33698:9;33694:18;33685:6;33641:72;;;33724;33792:2;33781:9;33777:18;33768:6;33724:72;;;33807:73;33875:3;33864:9;33860:19;33851:6;33807:73;;;33418:472;;;;;;;;;33897:407;34088:2;34102:47;;;34073:18;;34163:131;34073:18;34163:131;;34311:407;34502:2;34516:47;;;34487:18;;34577:131;34487:18;34577:131;;34725:407;34916:2;34930:47;;;34901:18;;34991:131;34901:18;34991:131;;35139:407;35330:2;35344:47;;;35315:18;;35405:131;35315:18;35405:131;;35553:407;35744:2;35758:47;;;35729:18;;35819:131;35729:18;35819:131;;35967:407;36158:2;36172:47;;;36143:18;;36233:131;36143:18;36233:131;;36381:407;36572:2;36586:47;;;36557:18;;36647:131;36557:18;36647:131;;36795:407;36986:2;37000:47;;;36971:18;;37061:131;36971:18;37061:131;;37209:407;37400:2;37414:47;;;37385:18;;37475:131;37385:18;37475:131;;37623:407;37814:2;37828:47;;;37799:18;;37889:131;37799:18;37889:131;;38037:407;38228:2;38242:47;;;38213:18;;38303:131;38213:18;38303:131;;38451:407;38642:2;38656:47;;;38627:18;;38717:131;38627:18;38717:131;;38865:407;39056:2;39070:47;;;39041:18;;39131:131;39041:18;39131:131;;39279:407;39470:2;39484:47;;;39455:18;;39545:131;39455:18;39545:131;;39693:407;39884:2;39898:47;;;39869:18;;39959:131;39869:18;39959:131;;40107:407;40298:2;40312:47;;;40283:18;;40373:131;40283:18;40373:131;;40521:407;40712:2;40726:47;;;40697:18;;40787:131;40697:18;40787:131;;40935:407;41126:2;41140:47;;;41111:18;;41201:131;41111:18;41201:131;;41349:407;41540:2;41554:47;;;41525:18;;41615:131;41525:18;41615:131;;41763:407;41954:2;41968:47;;;41939:18;;42029:131;41939:18;42029:131;;42177:407;42368:2;42382:47;;;42353:18;;42443:131;42353:18;42443:131;;42591:407;42782:2;42796:47;;;42767:18;;42857:131;42767:18;42857:131;;43005:407;43196:2;43210:47;;;43181:18;;43271:131;43181:18;43271:131;;43419:407;43610:2;43624:47;;;43595:18;;43685:131;43595:18;43685:131;;43833:407;44024:2;44038:47;;;44009:18;;44099:131;44009:18;44099:131;;44247:407;44438:2;44452:47;;;44423:18;;44513:131;44423:18;44513:131;;44661:407;44852:2;44866:47;;;44837:18;;44927:131;44837:18;44927:131;;45075:407;45266:2;45280:47;;;45251:18;;45341:131;45251:18;45341:131;;45489:407;45680:2;45694:47;;;45665:18;;45755:131;45665:18;45755:131;;45903:407;46094:2;46108:47;;;46079:18;;46169:131;46079:18;46169:131;;46317:407;46508:2;46522:47;;;46493:18;;46583:131;46493:18;46583:131;;46731:407;46922:2;46936:47;;;46907:18;;46997:131;46907:18;46997:131;;47145:407;47336:2;47350:47;;;47321:18;;47411:131;47321:18;47411:131;;47559:407;47750:2;47764:47;;;47735:18;;47825:131;47735:18;47825:131;;47973:1433;48398:3;48383:19;;48413:71;48387:9;48457:6;48413:71;;;48495:70;48561:2;48550:9;48546:18;48537:6;48495:70;;;48576:86;48658:2;48647:9;48643:18;48634:6;48576:86;;;48673:72;48741:2;48730:9;48726:18;48717:6;48673:72;;;48756:73;48824:3;48813:9;48809:19;48800:6;48756:73;;;48840;48908:3;48897:9;48893:19;48884:6;48840:73;;;48924;48992:3;48981:9;48977:19;48968:6;48924:73;;;49008;49076:3;49065:9;49061:19;49052:6;49008:73;;;49092;49160:3;49149:9;49145:19;49136:6;49092:73;;;49176;49244:3;49233:9;49229:19;49220:6;49176:73;;;49298:9;49292:4;49288:20;49282:3;49271:9;49267:19;49260:49;49323:73;49391:4;49381:7;49323:73;;;49315:81;48369:1037;-1:-1;;;;;;;;;;;;;48369:1037;49413:256;49475:2;49469:9;49501:17;;;49576:18;49561:34;;49597:22;;;49558:62;49555:2;;;49633:1;49630;49623:12;49555:2;49649;49642:22;49453:216;;-1:-1;49453:216;49676:317;;49815:18;49807:6;49804:30;49801:2;;;49847:1;49844;49837:12;49801:2;-1:-1;49978:4;49914;49891:17;;;;-1:-1;;49887:33;49968:15;;49738:255;50653:117;50736:12;;50707:63;50906:162;51008:19;;;51057:4;51048:14;;51001:67;51427:91;;51489:24;51507:5;51489:24;;51525:85;51591:13;51584:21;;51567:43;51617:145;-1:-1;;;;;;51679:78;;51662:100;51769:110;;51850:24;51868:5;51850:24;;52001:134;52077:5;52083:47;52077:5;52083:47;;52142:140;52221:5;52227:50;52221:5;52227:50;;52289:138;52367:5;52373:49;52367:5;52373:49;;52434:121;-1:-1;;;;;52496:54;;52479:76;52641:88;52713:10;52702:22;;52685:44;52736:81;52807:4;52796:16;;52779:38;53121:134;;53212:38;53244:5;53212:38;;53262:140;;53356:41;53391:5;53356:41;;53409:138;;53502:40;53536:5;53502:40;;53555:145;53636:6;53631:3;53626;53613:30;-1:-1;53692:1;53674:16;;53667:27;53606:94;53709:268;53774:1;53781:101;53795:6;53792:1;53789:13;53781:101;;;53862:11;;;53856:18;53843:11;;;53836:39;53817:2;53810:10;53781:101;;;53897:6;53894:1;53891:13;53888:2;;;-1:-1;;53962:1;53944:16;;53937:27;53758:219;53985:97;54073:2;54053:14;-1:-1;;54049:28;;54033:49;54090:105;54173:1;54166:5;54163:12;54153:2;;54179:9;54202:108;54288:1;54281:5;54278:12;54268:2;;54294:9;54317:107;54402:1;54395:5;54392:12;54382:2;;54408:9;54431:117;54500:24;54518:5;54500:24;;;54493:5;54490:35;54480:2;;54539:1;54536;54529:12;54555:111;54621:21;54636:5;54621:21;;54673:117;54742:24;54760:5;54742:24;;54797:155;54885:43;54922:5;54885:43;;55117:110;55202:1;55195:5;55192:12;55182:2;;55218:1;55215;55208:12;55234:110;55319:1;55312:5;55309:12;55299:2;;55335:1;55332;55325:12;55351:117;55420:24;55438:5;55420:24;;55475:115;55543:23;55560:5;55543:23;", "source": "///////////////////////////////////////////////////////////////////////////////\n//\n// Copyright (C) 2018-2020 Crossbar.io Technologies GmbH and contributors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\n///////////////////////////////////////////////////////////////////////////////\n\npragma solidity ^0.5.12;\npragma experimental ABIEncoderV2;\n\n// https://openzeppelin.org/api/docs/math_SafeMath.html\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\n// https://openzeppelin.org/api/docs/cryptography_ECDSA.html\nimport \"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\";\n\nimport \"./XBRMaintained.sol\";\nimport \"./XBRTypes.sol\";\nimport \"./XBRToken.sol\";\nimport \"./XBRNetwork.sol\";\nimport \"./XBRMarket.sol\";\n\n\n/**\n * XBR Payment/Paying Channel between a XBR data consumer and the XBR market maker,\n * or the XBR Market Maker and a XBR data provider.\n */\ncontract XBRChannel is XBRMaintained {\n\n // Add safe math functions to uint256 using SafeMath lib from OpenZeppelin\n using SafeMath for uint256;\n\n // Add recover method for bytes32 using ECDSA lib from OpenZeppelin\n using ECDSA for bytes32;\n\n /// Event emittedd when a new XBR data market has opened.\n event Opened(XBRTypes.ChannelType ctype, bytes16 indexed marketId, bytes16 indexed channelId, address actor,\n address delegate, address marketmaker, address recipient, uint256 amount, bytes signature);\n\n /**\n * Event emitted when payment channel is closing (that is, one of the two state channel\n * participants has called \"close()\", initiating start of the channel timeout).\n */\n event Closing(XBRTypes.ChannelType ctype, bytes16 indexed marketId, bytes16 indexed channelId,\n uint256 payout, uint256 fee, uint256 refund, uint256 timeoutAt);\n\n /**\n * Event emitted when payment channel has finally closed, which happens after both state\n * channel participants have called close(), agreeing on last state, or after the timeout\n * at latest - in case the second participant doesn't react within timeout)\n */\n event Closed(XBRTypes.ChannelType ctype, bytes16 indexed marketId, bytes16 indexed channelId,\n uint256 payout, uint256 fee, uint256 refund, uint256 closedAt);\n\n /// Instance of XBRMarket contract this contract is linked to.\n XBRMarket public market;\n\n /// Created channels are sequence numbered using this counter (to allow deterministic collision-free IDs for channels)\n uint32 private channelSeq = 1;\n\n /// Table of all XBR Channels.\n mapping(bytes16 => XBRTypes.Channel) public channels;\n\n /// Table of all XBR Channel closing states.\n mapping(bytes16 => XBRTypes.ChannelClosingState) public channelClosingStates;\n\n /// Constructor for this contract, only called once (when deploying the network).\n ///\n /// @param marketAdr The XBR markets contract this instance is associated with.\n constructor (address marketAdr) public {\n market = XBRMarket(marketAdr);\n }\n\n /// Open a new XBR payment/paying channel for processing off-chain micro-transactions.\n ///\n /// @param ctype Channel type: payment or paying channel.\n /// @param openedAt Block number when the channel opening signature was created.\n /// @param marketId The ID of the XBR market this channel is associated with.\n /// @param channelId The ID of the new XBR channel (must be unique).\n /// @param actor The actor (buyer/seller in the market) that opened this channel.\n /// @param delegate The delegate (off-chain) allowed to spend/earn-on this channel (off-chain)\n /// in the name of the actor (buyer/seller in the market).\n /// @param marketmaker The off-chain market maker executing the channel.\n /// @param recipient The receiver (on-chain) of the channel payout.\n /// @param amount The amount initially transfered to and held in the channel until closed.\n /// @param signature EIP712 signature, signed by the member.\n function openChannel (XBRTypes.ChannelType ctype, uint256 openedAt, bytes16 marketId, bytes16 channelId,\n address actor, address delegate, address marketmaker, address recipient, uint256 amount,\n bytes memory signature) public {\n\n // market must exist\n require(market.getMarketOwner(marketId) != address(0), \"NO_SUCH_MARKET\");\n\n // channel must not yet exist\n require(channels[channelId].actor == address(0), \"INVALID_CHANNEL_ALREADY_EXISTS\");\n\n // the actor (buyer/seller in the market) must be a registered member\n (, , , XBRTypes.MemberLevel actor_member_level, ) = market.network().members(actor);\n require(actor_member_level == XBRTypes.MemberLevel.ACTIVE ||\n actor_member_level == XBRTypes.MemberLevel.VERIFIED, \"INVALID_CHANNEL_ACTOR\");\n\n // must provide a valid delegate address, but the delegate doesn't need to be member!\n require(delegate != address(0), \"INVALID_CHANNEL_DELEGATE\");\n\n // must provide a valid marketmaker address: this must be the market maker set in the market!\n require(marketmaker == market.getMarketMaker(marketId), \"INVALID_CHANNEL_MARKETMAKER\");\n\n // the recepient must be a registered member\n (, , , XBRTypes.MemberLevel recipient_member_level, ) = market.network().members(recipient);\n require(recipient_member_level == XBRTypes.MemberLevel.ACTIVE ||\n recipient_member_level == XBRTypes.MemberLevel.VERIFIED, \"INVALID_CHANNEL_RECIPIENT\");\n\n // the ERC20 coin used in the market as a means of payment\n // FIXME: CompilerError: Stack too deep, try removing local variables.\n // address coin = market.getMarketCoin(marketId);\n\n // signature must have been created in a window of PRESIGNED_TXN_MAX_AGE blocks from the current one\n require(openedAt <= block.number && (block.number <= market.network().PRESIGNED_TXN_MAX_AGE() ||\n openedAt >= (block.number - market.network().PRESIGNED_TXN_MAX_AGE())), \"INVALID_CHANNEL_BLOCK_NUMBER\");\n\n // payment channel amount must be positive\n require(amount > 0 && amount <= IERC20(market.getMarketCoin(marketId)).totalSupply(), \"INVALID_CHANNEL_AMOUNT\");\n\n // the data used to open the new channel must have a valid signature, signed by the\n // actor (buyer/seller in the market)\n XBRTypes.EIP712ChannelOpen memory eip712_obj = XBRTypes.EIP712ChannelOpen(market.network().verifyingChain(),\n market.network().verifyingContract(), uint8(ctype), openedAt, marketId, channelId,\n actor, delegate, marketmaker, recipient, amount);\n require(XBRTypes.verify(actor, eip712_obj, signature), \"INVALID_CHANNEL_SIGNATURE\");\n\n if (ctype == XBRTypes.ChannelType.PAYMENT) {\n // transaction sender must be a market buyer-actor or the market-maker (the piece of running software for the market)\n require(msg.sender == market.getMarketMaker(marketId) ||\n msg.sender == actor, \"SENDER_NOT_MARKETMAKER_OR_BUYER\");\n\n // actor must be consumer in the market\n require(market.isActor(marketId, actor, XBRTypes.ActorType.CONSUMER) ||\n market.isActor(marketId, actor, XBRTypes.ActorType.PROVIDER_CONSUMER), \"ACTOR_NOT_CONSUMER\");\n\n // technical recipient of the unidirectional, half-legged channel must be the owner (operator) of the market\n require(recipient == market.getMarketOwner(marketId), \"RECIPIENT_NOT_MARKET\");\n\n // for payment channels, tokens for the channel must have been approved by the (consumer) actor\n require(IERC20(market.getMarketCoin(marketId)).transferFrom(actor, address(this), amount),\n \"OPEN_CHANNEL_TRANSFER_FROM_ACTOR_FAILED\");\n\n } else if (ctype == XBRTypes.ChannelType.PAYING) {\n // transaction sender must be the market-owner (aka market-operator) or the market-maker (the piece of running software for the market)\n require(msg.sender == market.getMarketMaker(marketId) ||\n msg.sender == market.getMarketOwner(marketId), \"SENDER_NOT_MARKETMAKER_OR_OWNER\");\n\n // actor must be provider in the market\n require(market.isActor(marketId, actor, XBRTypes.ActorType.PROVIDER) ||\n market.isActor(marketId, actor, XBRTypes.ActorType.PROVIDER_CONSUMER), \"ACTOR_NOT_PROVIDER\");\n\n // technical recipient of the unidirectional, half-legged channel must be a provider (seller) in the market\n require(recipient == actor, \"RECIPIENT_NOT_ACTOR\");\n\n // for paying channels, tokens for the channel must have been approved by the market maker\n require(IERC20(market.getMarketCoin(marketId)).transferFrom(market.getMarketMaker(marketId), address(this), amount),\n \"OPEN_CHANNEL_TRANSFER_FROM_MARKETMAKER_FAILED\");\n\n } else {\n require(false, \"INVALID_CHANNEL_TYPE\");\n }\n\n // Everything is OK! Continue actually opening the channel ..\n\n // track channel static information\n channels[channelId] = XBRTypes.Channel(openedAt, channelSeq, ctype, marketId, channelId, actor,\n delegate, marketmaker, recipient, amount, signature);\n\n // track channel closing (== modifiable) information\n channelClosingStates[channelId] = XBRTypes.ChannelClosingState(XBRTypes.ChannelState.OPEN,\n 0, 0, 0, 0, 0, 0, \"\", \"\");\n\n // increment channel sequence for next channel\n channelSeq = channelSeq + 1;\n\n // notify observers (eg a dormant market maker waiting to be associated)\n emit Opened(ctype, marketId, channelId, actor, delegate, marketmaker, recipient, amount, signature);\n }\n\n /**\n * Trigger closing this payment channel. When the first participant has called `close()`\n * submitting its latest transaction/state, a timeout period begins during which the\n * other party of the payment channel has to submit its latest transaction/state too.\n * When both transaction have been submitted, and the submitted transactions/states agree,\n * the channel immediately closes, and the consumed amount of token in the channel is\n * transferred to the channel recipient, and the remaining amount of token is transferred\n * back to the original sender.\n */\n function closeChannel (bytes16 channelId, uint256 closeAt, uint32 closingChannelSeq, uint256 balance, bool isFinal,\n bytes memory delegateSignature, bytes memory marketmakerSignature) public {\n\n // channel must exist\n require(channels[channelId].actor != address(0), \"NO_SUCH_CHANNEL\");\n\n // this should not happen if above succeeds, but better be paranoid\n require(channelClosingStates[channelId].state != XBRTypes.ChannelState.NULL, \"NO_SUCH_CHANNEL\");\n\n // channel must be in correct state (OPEN or CLOSING)\n require(channelClosingStates[channelId].state == XBRTypes.ChannelState.OPEN ||\n channelClosingStates[channelId].state == XBRTypes.ChannelState.CLOSING, \"CHANNEL_NOT_OPEN\");\n\n // signature must have been created in a window of PRESIGNED_TXN_MAX_AGE blocks from the current one\n require(closeAt <= block.number && (block.number <= market.network().PRESIGNED_TXN_MAX_AGE() ||\n closeAt >= (block.number - market.network().PRESIGNED_TXN_MAX_AGE())), \"INVALID_CHANNEL_BLOCK_NUMBER\");\n\n // check delegate signature\n require(XBRTypes.verify(channels[channelId].delegate, XBRTypes.EIP712ChannelClose(market.network().verifyingChain(),\n market.network().verifyingContract(), closeAt, channels[channelId].marketId, channelId, closingChannelSeq,\n balance, isFinal), delegateSignature), \"INVALID_DELEGATE_SIGNATURE\");\n\n // check market maker signature\n require(XBRTypes.verify(channels[channelId].marketmaker, XBRTypes.EIP712ChannelClose(market.network().verifyingChain(),\n market.network().verifyingContract(), closeAt, channels[channelId].marketId, channelId, closingChannelSeq,\n balance, isFinal), marketmakerSignature), \"INVALID_MARKETMAKER_SIGNATURE\");\n\n // closing (off-chain) balance must be valid\n require(0 <= balance && balance <= channels[channelId].amount, \"INVALID_CLOSING_BALANCE\");\n\n // closing (off-chain) sequence must be valid\n require(closingChannelSeq >= 1, \"INVALID_CLOSING_SEQ\");\n\n // if the channel is already closing ..\n if (channelClosingStates[channelId].state == XBRTypes.ChannelState.CLOSING) {\n // the channel must not yet be timed out\n require(channelClosingStates[channelId].closedAt == 0, \"INTERNAL_ERROR_CLOSED_AT_NONZERO\");\n require(block.timestamp < channelClosingStates[channelId].closingAt, \"CHANNEL_TIMEOUT\"); // solhint-disable-line\n\n // the submitted transaction must be more recent\n require(channelClosingStates[channelId].closingSeq < closingChannelSeq, \"OUTDATED_TRANSACTION\");\n }\n\n // if we got a newer closing transaction, process it ..\n if (closingChannelSeq > channelClosingStates[channelId].closingSeq) {\n _doClosing(channelId, closingChannelSeq, balance);\n }\n\n // finally close the channel ..\n if (isFinal || balance == 0 ||\n (channelClosingStates[channelId].state == XBRTypes.ChannelState.CLOSING && block.timestamp >= channelClosingStates[channelId].closingAt)) { // solhint-disable-line\n _doClose(channelId, closingChannelSeq, balance);\n }\n }\n\n function _doClosing(bytes16 channelId, uint32 closingChannelSeq, uint256 balance) private {\n // the ERC20 coin used in the market as a means of payment\n address coin = market.getMarketCoin(channels[channelId].marketId);\n\n // the amount earned (by the recipient) is initial channel amount minus last off-chain balance\n uint256 earned = (channels[channelId].amount - balance);\n\n // the remaining amount (send back to the buyer) via the last off-chain balance\n // FIXME: CompilerError: Stack too deep, try removing local variables.\n // uint256 refund = balance;\n\n // the fee of the market operator (before network fees) is a percentage of the earned amount, where\n // \"percentage\" is expressed as a fraction of the total amount of tokens (coins used in the market)\n uint256 fee = earned * market.getMarketFee(channels[channelId].marketId) / IERC20(coin).totalSupply();\n uint256 contribution = fee * market.network().contribution() / market.network().token().totalSupply();\n\n // the amount paid out to the recipient is gross earned minus market fees\n // FIXME: CompilerError: Stack too deep, try removing local variables.\n // uint256 payout = earned - fee;\n\n // the closing balance of a newer transaction must be not greater than anyone we already know\n if (channelClosingStates[channelId].closingSeq > 0) {\n require(balance <= channelClosingStates[channelId].closingBalance, \"TRANSACTION_BALANCE_OUTDATED\");\n }\n\n // note the closing transaction sequence number and closing off-chain balance\n channelClosingStates[channelId].state = XBRTypes.ChannelState.CLOSING;\n channelClosingStates[channelId].closingSeq = closingChannelSeq;\n channelClosingStates[channelId].closingBalance = balance;\n\n // note the new channel closing date\n channelClosingStates[channelId].closingAt = block.timestamp + market.NONCOOPERATIVE_CHANNEL_CLOSE_TIMEOUT(); // solhint-disable-line\n\n // notify channel observers\n emit Closing(channels[channelId].ctype, channels[channelId].marketId, channelId,\n earned - fee, fee - contribution, balance, channelClosingStates[channelId].closingAt);\n }\n\n function _doClose(bytes16 channelId, uint32 closingChannelSeq, uint256 balance) private {\n // the ERC20 coin used in the market as a means of payment\n address coin = market.getMarketCoin(channels[channelId].marketId);\n\n // the amount earned (by the recipient) is initial channel amount minus last off-chain balance\n uint256 earned = (channels[channelId].amount - balance);\n\n // the remaining amount (send back to the buyer) via the last off-chain balance\n // FIXME: CompilerError: Stack too deep, try removing local variables.\n // uint256 refund = balance;\n\n // the fee of the market operator (before network fees) is a percentage of the earned amount, where\n // \"percentage\" is expressed as a fraction of the total amount of tokens (coins used in the market)\n uint256 fee = earned * market.getMarketFee(channels[channelId].marketId) / IERC20(coin).totalSupply();\n uint256 contribution = fee * market.network().contribution() / market.network().token().totalSupply();\n\n // now send tokens locked in this channel (which escrows the tokens) to the recipient,\n // the xbr network (for the network fee), and refund remaining tokens to the original sender\n if (earned - fee > 0) {\n if (channels[channelId].ctype == XBRTypes.ChannelType.PAYMENT) {\n require(IERC20(coin).transfer(channels[channelId].marketmaker, earned - fee), \"CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED\");\n } else {\n require(IERC20(coin).transfer(channels[channelId].actor, earned - fee), \"CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED\");\n }\n }\n\n if (balance > 0) {\n if (channels[channelId].ctype == XBRTypes.ChannelType.PAYMENT) {\n require(IERC20(coin).transfer(channels[channelId].actor, balance), \"CHANNEL_CLOSE_REFUND_TRANSFER_FAILED\");\n } else {\n require(IERC20(coin).transfer(channels[channelId].marketmaker, balance), \"CHANNEL_CLOSE_REFUND_TRANSFER_FAILED\");\n }\n }\n\n if (fee > 0) {\n require(IERC20(coin).transfer(market.getMarketOwner(channels[channelId].marketId), fee - contribution), \"CHANNEL_CLOSE_FEE_TRANSFER_FAILED\");\n require(IERC20(coin).transfer(market.network().organization(), contribution), \"CHANNEL_CLOSE_FEE_TRANSFER_FAILED\");\n }\n\n // mark channel as closed (but do not selfdestruct)\n channelClosingStates[channelId].closedAt = block.timestamp; // solhint-disable-line\n channelClosingStates[channelId].state = XBRTypes.ChannelState.CLOSED;\n\n // notify channel observers\n emit Closed(channels[channelId].ctype, channels[channelId].marketId, channelId,\n earned - fee, fee - contribution, balance, block.timestamp);\n }\n}\n", "sourcePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRChannel.sol", "ast": { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRChannel.sol", "exportedSymbols": { "XBRChannel": [ 1626 ] }, "id": 1627, "nodeType": "SourceUnit", "nodes": [ { "id": 472, "literals": [ "solidity", "^", "0.5", ".12" ], "nodeType": "PragmaDirective", "src": "810:24:2" }, { "id": 473, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "835:33:2" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 474, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 5802, "src": "926:59:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", "id": 475, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 5615, "src": "1048:64:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRMaintained.sol", "file": "./XBRMaintained.sol", "id": 476, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 1730, "src": "1114:29:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRTypes.sol", "file": "./XBRTypes.sol", "id": 477, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 5426, "src": "1144:24:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRToken.sol", "file": "./XBRToken.sol", "id": 478, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 4328, "src": "1169:24:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRNetwork.sol", "file": "./XBRNetwork.sol", "id": 479, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 3887, "src": "1194:26:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRMarket.sol", "file": "./XBRMarket.sol", "id": 480, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 3362, "src": "1221:25:2", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 481, "name": "XBRMaintained", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1729, "src": "1416:13:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMaintained_$1729", "typeString": "contract XBRMaintained" } }, "id": 482, "nodeType": "InheritanceSpecifier", "src": "1416:13:2" } ], "contractDependencies": [ 1729 ], "contractKind": "contract", "documentation": "XBR Payment/Paying Channel between a XBR data consumer and the XBR market maker,\nor the XBR Market Maker and a XBR data provider.", "fullyImplemented": true, "id": 1626, "linearizedBaseContracts": [ 1626, 1729 ], "name": "XBRChannel", "nodeType": "ContractDefinition", "nodes": [ { "id": 485, "libraryName": { "contractScope": null, "id": 483, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5801, "src": "1522:8:2", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$5801", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "1516:27:2", "typeName": { "id": 484, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1535:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "id": 488, "libraryName": { "contractScope": null, "id": 486, "name": "ECDSA", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5614, "src": "1627:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_ECDSA_$5614", "typeString": "library ECDSA" } }, "nodeType": "UsingForDirective", "src": "1621:24:2", "typeName": { "id": 487, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1637:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } }, { "anonymous": false, "documentation": "Event emittedd when a new XBR data market has opened.", "id": 508, "name": "Opened", "nodeType": "EventDefinition", "parameters": { "id": 507, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 490, "indexed": false, "name": "ctype", "nodeType": "VariableDeclaration", "scope": 508, "src": "1726:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "typeName": { "contractScope": null, "id": 489, "name": "XBRTypes.ChannelType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4346, "src": "1726:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 492, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 508, "src": "1754:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 491, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "1754:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 494, "indexed": true, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 508, "src": "1780:25:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 493, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "1780:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 496, "indexed": false, "name": "actor", "nodeType": "VariableDeclaration", "scope": 508, "src": "1807:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 495, "name": "address", "nodeType": "ElementaryTypeName", "src": "1807:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 498, "indexed": false, "name": "delegate", "nodeType": "VariableDeclaration", "scope": 508, "src": "1830:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 497, "name": "address", "nodeType": "ElementaryTypeName", "src": "1830:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 500, "indexed": false, "name": "marketmaker", "nodeType": "VariableDeclaration", "scope": 508, "src": "1848:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 499, "name": "address", "nodeType": "ElementaryTypeName", "src": "1848:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 502, "indexed": false, "name": "recipient", "nodeType": "VariableDeclaration", "scope": 508, "src": "1869:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 501, "name": "address", "nodeType": "ElementaryTypeName", "src": "1869:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 504, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", "scope": 508, "src": "1888:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 503, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1888:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 506, "indexed": false, "name": "signature", "nodeType": "VariableDeclaration", "scope": 508, "src": "1904:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 505, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1904:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "1725:195:2" }, "src": "1713:208:2" }, { "anonymous": false, "documentation": "Event emitted when payment channel is closing (that is, one of the two state channel\nparticipants has called \"close()\", initiating start of the channel timeout).", "id": 524, "name": "Closing", "nodeType": "EventDefinition", "parameters": { "id": 523, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 510, "indexed": false, "name": "ctype", "nodeType": "VariableDeclaration", "scope": 524, "src": "2133:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "typeName": { "contractScope": null, "id": 509, "name": "XBRTypes.ChannelType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4346, "src": "2133:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 512, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 524, "src": "2161:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 511, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2161:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 514, "indexed": true, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 524, "src": "2187:25:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 513, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2187:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 516, "indexed": false, "name": "payout", "nodeType": "VariableDeclaration", "scope": 524, "src": "2222:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 515, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2222:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 518, "indexed": false, "name": "fee", "nodeType": "VariableDeclaration", "scope": 524, "src": "2238:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 517, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2238:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 520, "indexed": false, "name": "refund", "nodeType": "VariableDeclaration", "scope": 524, "src": "2251:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 519, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2251:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 522, "indexed": false, "name": "timeoutAt", "nodeType": "VariableDeclaration", "scope": 524, "src": "2267:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 521, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2267:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2132:153:2" }, "src": "2119:167:2" }, { "anonymous": false, "documentation": "Event emitted when payment channel has finally closed, which happens after both state\nchannel participants have called close(), agreeing on last state, or after the timeout\nat latest - in case the second participant doesn't react within timeout)", "id": 540, "name": "Closed", "nodeType": "EventDefinition", "parameters": { "id": 539, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 526, "indexed": false, "name": "ctype", "nodeType": "VariableDeclaration", "scope": 540, "src": "2588:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "typeName": { "contractScope": null, "id": 525, "name": "XBRTypes.ChannelType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4346, "src": "2588:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 528, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 540, "src": "2616:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 527, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2616:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 530, "indexed": true, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 540, "src": "2642:25:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 529, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2642:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 532, "indexed": false, "name": "payout", "nodeType": "VariableDeclaration", "scope": 540, "src": "2677:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 531, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2677:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 534, "indexed": false, "name": "fee", "nodeType": "VariableDeclaration", "scope": 540, "src": "2693:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 533, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2693:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 536, "indexed": false, "name": "refund", "nodeType": "VariableDeclaration", "scope": 540, "src": "2706:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 535, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2706:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 538, "indexed": false, "name": "closedAt", "nodeType": "VariableDeclaration", "scope": 540, "src": "2722:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 537, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2722:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2587:152:2" }, "src": "2575:165:2" }, { "constant": false, "id": 542, "name": "market", "nodeType": "VariableDeclaration", "scope": 1626, "src": "2813:23:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" }, "typeName": { "contractScope": null, "id": 541, "name": "XBRMarket", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3361, "src": "2813:9:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 545, "name": "channelSeq", "nodeType": "VariableDeclaration", "scope": 1626, "src": "2966:29:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 543, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "2966:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "argumentTypes": null, "hexValue": "31", "id": 544, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2994:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "visibility": "private" }, { "constant": false, "id": 549, "name": "channels", "nodeType": "VariableDeclaration", "scope": 1626, "src": "3037:52:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel)" }, "typeName": { "id": 548, "keyType": { "id": 546, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "3045:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Mapping", "src": "3037:36:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel)" }, "valueType": { "contractScope": null, "id": 547, "name": "XBRTypes.Channel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4484, "src": "3056:16:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage_ptr", "typeString": "struct XBRTypes.Channel" } } }, "value": null, "visibility": "public" }, { "constant": false, "id": 553, "name": "channelClosingStates", "nodeType": "VariableDeclaration", "scope": 1626, "src": "3145:76:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState)" }, "typeName": { "id": 552, "keyType": { "id": 550, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "3153:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Mapping", "src": "3145:48:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState)" }, "valueType": { "contractScope": null, "id": 551, "name": "XBRTypes.ChannelClosingState", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4503, "src": "3164:28:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage_ptr", "typeString": "struct XBRTypes.ChannelClosingState" } } }, "value": null, "visibility": "public" }, { "body": { "id": 564, "nodeType": "Block", "src": "3445:46:2", "statements": [ { "expression": { "argumentTypes": null, "id": 562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 558, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "3455:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 560, "name": "marketAdr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 555, "src": "3474:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 559, "name": "XBRMarket", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3361, "src": "3464:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRMarket_$3361_$", "typeString": "type(contract XBRMarket)" } }, "id": 561, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3464:20:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "src": "3455:29:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 563, "nodeType": "ExpressionStatement", "src": "3455:29:2" } ] }, "documentation": "Constructor for this contract, only called once (when deploying the network).\n\n /// @param marketAdr The XBR markets contract this instance is associated with.", "id": 565, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 556, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 555, "name": "marketAdr", "nodeType": "VariableDeclaration", "scope": 565, "src": "3419:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 554, "name": "address", "nodeType": "ElementaryTypeName", "src": "3419:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3418:19:2" }, "returnParameters": { "id": 557, "nodeType": "ParameterList", "parameters": [], "src": "3445:0:2" }, "scope": 1626, "src": "3406:85:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 977, "nodeType": "Block", "src": "4697:5527:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 591, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "4767:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 589, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "4745:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketOwner", "nodeType": "MemberAccess", "referencedDeclaration": 3029, "src": "4745:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 592, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4745:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4788: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": 593, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4780:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 595, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4780:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "4745:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 597, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4792: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": 588, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "4737:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 598, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4737:72:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 599, "nodeType": "ExpressionStatement", "src": "4737:72:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 601, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "4866:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 603, "indexExpression": { "argumentTypes": null, "id": 602, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 573, "src": "4875:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4866:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 604, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actor", "nodeType": "MemberAccess", "referencedDeclaration": 4473, "src": "4866:25:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 606, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4903: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": 605, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4895:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 607, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4895:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "4866:39:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f414c52454144595f455849535453", "id": 609, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4907:32:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4beb88a4e037e23ee20d276ba073882a38a4b6ed59d18e219d04158d381807a1", "typeString": "literal_string \"INVALID_CHANNEL_ALREADY_EXISTS\"" }, "value": "INVALID_CHANNEL_ALREADY_EXISTS" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_4beb88a4e037e23ee20d276ba073882a38a4b6ed59d18e219d04158d381807a1", "typeString": "literal_string \"INVALID_CHANNEL_ALREADY_EXISTS\"" } ], "id": 600, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "4858:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 610, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4858:82:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 611, "nodeType": "ExpressionStatement", "src": "4858:82:2" }, { "assignments": [ null, null, null, 615, null ], "declarations": [ null, null, null, { "constant": false, "id": 615, "name": "actor_member_level", "nodeType": "VariableDeclaration", "scope": 977, "src": "5036:39:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 614, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "5036:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" }, null ], "id": 622, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 620, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "5106:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 616, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "5081:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "5081:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 618, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5081:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 619, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", "referencedDeclaration": 3432, "src": "5081:24:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "function (address) view external returns (uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "id": 621, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5081:31:2", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "tuple(uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "5029:83:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 634, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 624, "name": "actor_member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 615, "src": "5130:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 625, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "5152:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "5152:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 627, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5152:27:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "5130:49:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 633, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 629, "name": "actor_member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 615, "src": "5199:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 630, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "5221:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "5221:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 632, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5221:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "5199:51:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5130:120:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f4143544f52", "id": 635, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5252:23:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b4c9320c8a32c95584e7f70b0e889c5c1844ab73f807976ce025bbf5a388e0b3", "typeString": "literal_string \"INVALID_CHANNEL_ACTOR\"" }, "value": "INVALID_CHANNEL_ACTOR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b4c9320c8a32c95584e7f70b0e889c5c1844ab73f807976ce025bbf5a388e0b3", "typeString": "literal_string \"INVALID_CHANNEL_ACTOR\"" } ], "id": 623, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "5122:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 636, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5122:154:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 637, "nodeType": "ExpressionStatement", "src": "5122:154:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 639, "name": "delegate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 577, "src": "5389:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5409: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": 640, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5401:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5401:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "5389:22:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f44454c4547415445", "id": 644, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5413:26:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_26aaab248edcb940cb884ea0bd51dda070c63cf449fc2089d3e6af46e4427321", "typeString": "literal_string \"INVALID_CHANNEL_DELEGATE\"" }, "value": "INVALID_CHANNEL_DELEGATE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_26aaab248edcb940cb884ea0bd51dda070c63cf449fc2089d3e6af46e4427321", "typeString": "literal_string \"INVALID_CHANNEL_DELEGATE\"" } ], "id": 638, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "5381:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 645, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5381:59:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 646, "nodeType": "ExpressionStatement", "src": "5381:59:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 653, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 648, "name": "marketmaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 579, "src": "5561:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 651, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "5598:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 649, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "5576:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketMaker", "nodeType": "MemberAccess", "referencedDeclaration": 3068, "src": "5576:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 652, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5576:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "5561:46:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f4d41524b45544d414b4552", "id": 654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5609:29:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_65820281ff57bbb3adca7c34a111169d5f6200e7c91290040e091f381c24d9d2", "typeString": "literal_string \"INVALID_CHANNEL_MARKETMAKER\"" }, "value": "INVALID_CHANNEL_MARKETMAKER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_65820281ff57bbb3adca7c34a111169d5f6200e7c91290040e091f381c24d9d2", "typeString": "literal_string \"INVALID_CHANNEL_MARKETMAKER\"" } ], "id": 647, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "5553:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 655, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5553:86:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 656, "nodeType": "ExpressionStatement", "src": "5553:86:2" }, { "assignments": [ null, null, null, 660, null ], "declarations": [ null, null, null, { "constant": false, "id": 660, "name": "recipient_member_level", "nodeType": "VariableDeclaration", "scope": 977, "src": "5710:43:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 659, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "5710:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" }, null ], "id": 667, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 665, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 581, "src": "5784:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 661, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "5759:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "5759:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 663, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5759:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", "referencedDeclaration": 3432, "src": "5759:24:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "function (address) view external returns (uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "id": 666, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5759:35:2", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "tuple(uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "5703:91:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 679, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 669, "name": "recipient_member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 660, "src": "5812:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 670, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "5838:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "5838:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 672, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5838:27:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "5812:53:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 674, "name": "recipient_member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 660, "src": "5885:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 675, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "5911:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "5911:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 677, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5911:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "5885:55:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5812:128:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f524543495049454e54", "id": 680, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5942:27:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8251daa89f97df5c1e9b2cf51b0dbf9ac6febda5b871663655c492192bd29de2", "typeString": "literal_string \"INVALID_CHANNEL_RECIPIENT\"" }, "value": "INVALID_CHANNEL_RECIPIENT" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_8251daa89f97df5c1e9b2cf51b0dbf9ac6febda5b871663655c492192bd29de2", "typeString": "literal_string \"INVALID_CHANNEL_RECIPIENT\"" } ], "id": 668, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "5804:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 681, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5804:166:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 682, "nodeType": "ExpressionStatement", "src": "5804:166:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 684, "name": "openedAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 569, "src": "6303:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 685, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "6315:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6315:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6303:24:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 707, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 695, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 688, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "6332:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 689, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6332:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 690, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "6348:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 691, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "6348:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 692, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6348:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "PRESIGNED_TXN_MAX_AGE", "nodeType": "MemberAccess", "referencedDeclaration": 3415, "src": "6348:38:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 694, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6348:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6332:56:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 696, "name": "openedAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 569, "src": "6404:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 704, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 697, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "6417:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6417:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 699, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "6432:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 700, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "6432:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 701, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6432:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "PRESIGNED_TXN_MAX_AGE", "nodeType": "MemberAccess", "referencedDeclaration": 3415, "src": "6432:38:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 703, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6432:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6417:55:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 705, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "6416:57:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6404:69:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6332:141:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 708, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "6331:143:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6303:171:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f424c4f434b5f4e554d424552", "id": 710, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6476:30:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2ebe3efb801d418c04b3a8312661839f0431fcb426ed2ad3d0401f3b9482654", "typeString": "literal_string \"INVALID_CHANNEL_BLOCK_NUMBER\"" }, "value": "INVALID_CHANNEL_BLOCK_NUMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c2ebe3efb801d418c04b3a8312661839f0431fcb426ed2ad3d0401f3b9482654", "typeString": "literal_string \"INVALID_CHANNEL_BLOCK_NUMBER\"" } ], "id": 683, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "6295:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 711, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6295:212:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 712, "nodeType": "ExpressionStatement", "src": "6295:212:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 716, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 714, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "6577:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6586:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "6577:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 726, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 717, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "6591:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 721, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "6629:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 719, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "6608:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketCoin", "nodeType": "MemberAccess", "referencedDeclaration": 3042, "src": "6608:20:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 722, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6608:30:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 718, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "6601:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 723, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6601:38:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 724, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 6271, "src": "6601:50:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 725, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6601:52:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6591:62:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6577:76:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f414d4f554e54", "id": 728, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6655:24:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_14a3c80c44a4d2982bfa9b6611247f73ab54ad2698829f3b1b1d6d74bcd1fc71", "typeString": "literal_string \"INVALID_CHANNEL_AMOUNT\"" }, "value": "INVALID_CHANNEL_AMOUNT" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_14a3c80c44a4d2982bfa9b6611247f73ab54ad2698829f3b1b1d6d74bcd1fc71", "typeString": "literal_string \"INVALID_CHANNEL_AMOUNT\"" } ], "id": 713, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "6569:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6569:111:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 730, "nodeType": "ExpressionStatement", "src": "6569:111:2" }, { "assignments": [ 734 ], "declarations": [ { "constant": false, "id": 734, "name": "eip712_obj", "nodeType": "VariableDeclaration", "scope": 977, "src": "6829:44:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ChannelOpen_$4633_memory_ptr", "typeString": "struct XBRTypes.EIP712ChannelOpen" }, "typeName": { "contractScope": null, "id": 733, "name": "XBRTypes.EIP712ChannelOpen", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4633, "src": "6829:26:2", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ChannelOpen_$4633_storage_ptr", "typeString": "struct XBRTypes.EIP712ChannelOpen" } }, "value": null, "visibility": "internal" } ], "id": 759, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 737, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "6903:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 738, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "6903:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 739, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6903:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 740, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingChain", "nodeType": "MemberAccess", "referencedDeclaration": 3417, "src": "6903:31:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 741, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6903:33:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 742, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "6950:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "6950:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 744, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6950:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingContract", "nodeType": "MemberAccess", "referencedDeclaration": 3419, "src": "6950:34:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 746, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6950:36:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 748, "name": "ctype", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "6994:5:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } ], "id": 747, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6988:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 749, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6988:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { "argumentTypes": null, "id": 750, "name": "openedAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 569, "src": "7002:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 751, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "7012:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 752, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 573, "src": "7022:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 753, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "7045:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 754, "name": "delegate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 577, "src": "7052:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 755, "name": "marketmaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 579, "src": "7062:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 756, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 581, "src": "7075:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 757, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "7086:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint8", "typeString": "uint8" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 735, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "6876:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "EIP712ChannelOpen", "nodeType": "MemberAccess", "referencedDeclaration": 4633, "src": "6876:26:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EIP712ChannelOpen_$4633_storage_ptr_$", "typeString": "type(struct XBRTypes.EIP712ChannelOpen storage pointer)" } }, "id": 758, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6876:217:2", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ChannelOpen_$4633_memory", "typeString": "struct XBRTypes.EIP712ChannelOpen memory" } }, "nodeType": "VariableDeclarationStatement", "src": "6829:264:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 763, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "7127:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 764, "name": "eip712_obj", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 734, "src": "7134:10:2", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ChannelOpen_$4633_memory_ptr", "typeString": "struct XBRTypes.EIP712ChannelOpen memory" } }, { "argumentTypes": null, "id": 765, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 585, "src": "7146:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_EIP712ChannelOpen_$4633_memory_ptr", "typeString": "struct XBRTypes.EIP712ChannelOpen memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 761, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7111:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", "referencedDeclaration": 5379, "src": "7111:15:2", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_address_$_t_struct$_EIP712ChannelOpen_$4633_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,struct XBRTypes.EIP712ChannelOpen memory,bytes memory) pure returns (bool)" } }, "id": 766, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7111:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f5349474e4154555245", "id": 767, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7158:27:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d886d4ade998ecb205e1fefc42a31132d38c8abea82fd417e96076e69fb00909", "typeString": "literal_string \"INVALID_CHANNEL_SIGNATURE\"" }, "value": "INVALID_CHANNEL_SIGNATURE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_d886d4ade998ecb205e1fefc42a31132d38c8abea82fd417e96076e69fb00909", "typeString": "literal_string \"INVALID_CHANNEL_SIGNATURE\"" } ], "id": 760, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7103:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 768, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7103:83:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 769, "nodeType": "ExpressionStatement", "src": "7103:83:2" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "id": 774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 770, "name": "ctype", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "7201:5:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 771, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7210:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelType", "nodeType": "MemberAccess", "referencedDeclaration": 4346, "src": "7210:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelType_$4346_$", "typeString": "type(enum XBRTypes.ChannelType)" } }, "id": 773, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PAYMENT", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7210:28:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "src": "7201:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "id": 844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 840, "name": "ctype", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "8274:5:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 841, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "8283:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelType", "nodeType": "MemberAccess", "referencedDeclaration": 4346, "src": "8283:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelType_$4346_$", "typeString": "type(enum XBRTypes.ChannelType)" } }, "id": 843, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PAYING", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8283:27:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "src": "8274:36:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 918, "nodeType": "Block", "src": "9385:63:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "66616c7365", "id": 914, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "9407:5:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f54595045", "id": 915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9414:22:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_fbfa59dfbe22e6f88c0d2dbdec77c326fc15af10d0ef26e7cb6988cf4b7df145", "typeString": "literal_string \"INVALID_CHANNEL_TYPE\"" }, "value": "INVALID_CHANNEL_TYPE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_fbfa59dfbe22e6f88c0d2dbdec77c326fc15af10d0ef26e7cb6988cf4b7df145", "typeString": "literal_string \"INVALID_CHANNEL_TYPE\"" } ], "id": 913, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "9399:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 916, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9399:38:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 917, "nodeType": "ExpressionStatement", "src": "9399:38:2" } ] }, "id": 919, "nodeType": "IfStatement", "src": "8270:1178:2", "trueBody": { "id": 912, "nodeType": "Block", "src": "8312:1067:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 852, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 846, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "8482:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8482:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 850, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "8518:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 848, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "8496:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketMaker", "nodeType": "MemberAccess", "referencedDeclaration": 3068, "src": "8496:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 851, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8496:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "8482:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 853, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "8551:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 854, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8551:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 857, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "8587:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 855, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "8565:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketOwner", "nodeType": "MemberAccess", "referencedDeclaration": 3029, "src": "8565:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 858, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8565:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "8551:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8482:114:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "53454e4445525f4e4f545f4d41524b45544d414b45525f4f525f4f574e4552", "id": 861, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8598:33:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b1d2522058c29b148d9642dadae74002ca29a8863fcf8c0595dd9f0688471040", "typeString": "literal_string \"SENDER_NOT_MARKETMAKER_OR_OWNER\"" }, "value": "SENDER_NOT_MARKETMAKER_OR_OWNER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b1d2522058c29b148d9642dadae74002ca29a8863fcf8c0595dd9f0688471040", "typeString": "literal_string \"SENDER_NOT_MARKETMAKER_OR_OWNER\"" } ], "id": 845, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "8474:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 862, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8474:158:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 863, "nodeType": "ExpressionStatement", "src": "8474:158:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 881, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 867, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "8722:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 868, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "8732:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 869, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "8739:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 870, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ActorType", "nodeType": "MemberAccess", "referencedDeclaration": 4342, "src": "8739:18:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$4342_$", "typeString": "type(enum XBRTypes.ActorType)" } }, "id": 871, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PROVIDER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8739:27:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } ], "expression": { "argumentTypes": null, "id": 865, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "8707:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 866, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isActor", "nodeType": "MemberAccess", "referencedDeclaration": 3146, "src": "8707:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$_t_address_$_t_enum$_ActorType_$4342_$returns$_t_bool_$", "typeString": "function (bytes16,address,enum XBRTypes.ActorType) view external returns (bool)" } }, "id": 872, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8707:60:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 875, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "8806:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 876, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "8816:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 877, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "8823:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 878, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ActorType", "nodeType": "MemberAccess", "referencedDeclaration": 4342, "src": "8823:18:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$4342_$", "typeString": "type(enum XBRTypes.ActorType)" } }, "id": 879, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PROVIDER_CONSUMER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8823:36:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } ], "expression": { "argumentTypes": null, "id": 873, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "8791:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 874, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isActor", "nodeType": "MemberAccess", "referencedDeclaration": 3146, "src": "8791:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$_t_address_$_t_enum$_ActorType_$4342_$returns$_t_bool_$", "typeString": "function (bytes16,address,enum XBRTypes.ActorType) view external returns (bool)" } }, "id": 880, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8791:69:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8707:153:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4143544f525f4e4f545f50524f5649444552", "id": 882, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8862:20:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_70b8f879ac34bc015c4f7ddcfd98103508425364979edcbcf57d4c0710703446", "typeString": "literal_string \"ACTOR_NOT_PROVIDER\"" }, "value": "ACTOR_NOT_PROVIDER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_70b8f879ac34bc015c4f7ddcfd98103508425364979edcbcf57d4c0710703446", "typeString": "literal_string \"ACTOR_NOT_PROVIDER\"" } ], "id": 864, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "8699:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 883, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8699:184:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 884, "nodeType": "ExpressionStatement", "src": "8699:184:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 888, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 886, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 581, "src": "9026:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 887, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "9039:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "9026:18:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "524543495049454e545f4e4f545f4143544f52", "id": 889, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9046:21:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_23a51434e932bbde6b621796ac928a48e309be07af8ed25f56094687cd91472b", "typeString": "literal_string \"RECIPIENT_NOT_ACTOR\"" }, "value": "RECIPIENT_NOT_ACTOR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_23a51434e932bbde6b621796ac928a48e309be07af8ed25f56094687cd91472b", "typeString": "literal_string \"RECIPIENT_NOT_ACTOR\"" } ], "id": 885, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "9018:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 890, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9018:50:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 891, "nodeType": "ExpressionStatement", "src": "9018:50:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 902, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "9268:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 900, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "9246:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 901, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketMaker", "nodeType": "MemberAccess", "referencedDeclaration": 3068, "src": "9246:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 903, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9246:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 905, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6390, "src": "9287:4:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRChannel_$1626", "typeString": "contract XBRChannel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRChannel_$1626", "typeString": "contract XBRChannel" } ], "id": 904, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9279:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 906, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9279:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 907, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "9294:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 896, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "9222:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 894, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "9201:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 895, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketCoin", "nodeType": "MemberAccess", "referencedDeclaration": 3042, "src": "9201:20:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 897, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9201:30:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 893, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "9194:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 898, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9194:38:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 6316, "src": "9194:51: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": 908, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9194:107:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4f50454e5f4348414e4e454c5f5452414e534645525f46524f4d5f4d41524b45544d414b45525f4641494c4544", "id": 909, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9319:47:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a371b65ee366892bece9db10144bccc45ae1bc7bfd5331f06d6f0dd828e9eeb6", "typeString": "literal_string \"OPEN_CHANNEL_TRANSFER_FROM_MARKETMAKER_FAILED\"" }, "value": "OPEN_CHANNEL_TRANSFER_FROM_MARKETMAKER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a371b65ee366892bece9db10144bccc45ae1bc7bfd5331f06d6f0dd828e9eeb6", "typeString": "literal_string \"OPEN_CHANNEL_TRANSFER_FROM_MARKETMAKER_FAILED\"" } ], "id": 892, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "9186:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 910, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9186:181:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 911, "nodeType": "ExpressionStatement", "src": "9186:181:2" } ] } }, "id": 920, "nodeType": "IfStatement", "src": "7197:2251:2", "trueBody": { "id": 839, "nodeType": "Block", "src": "7240:1024:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 787, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 782, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 776, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "7392:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7392:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 780, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "7428:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 778, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "7406:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 779, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketMaker", "nodeType": "MemberAccess", "referencedDeclaration": 3068, "src": "7406:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 781, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7406:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7392:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 786, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 783, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "7461:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7461:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 785, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "7475:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7461:19:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "7392:88:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "53454e4445525f4e4f545f4d41524b45544d414b45525f4f525f4255594552", "id": 788, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7482:33:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ee470891545e65113c890c6563841d34200946a2118b082518c760c8b6720492", "typeString": "literal_string \"SENDER_NOT_MARKETMAKER_OR_BUYER\"" }, "value": "SENDER_NOT_MARKETMAKER_OR_BUYER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_ee470891545e65113c890c6563841d34200946a2118b082518c760c8b6720492", "typeString": "literal_string \"SENDER_NOT_MARKETMAKER_OR_BUYER\"" } ], "id": 775, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7384:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 789, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7384:132:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 790, "nodeType": "ExpressionStatement", "src": "7384:132:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 808, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 794, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "7606:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 795, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "7616:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 796, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7623:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 797, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ActorType", "nodeType": "MemberAccess", "referencedDeclaration": 4342, "src": "7623:18:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$4342_$", "typeString": "type(enum XBRTypes.ActorType)" } }, "id": 798, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CONSUMER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7623:27:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } ], "expression": { "argumentTypes": null, "id": 792, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "7591:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 793, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isActor", "nodeType": "MemberAccess", "referencedDeclaration": 3146, "src": "7591:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$_t_address_$_t_enum$_ActorType_$4342_$returns$_t_bool_$", "typeString": "function (bytes16,address,enum XBRTypes.ActorType) view external returns (bool)" } }, "id": 799, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7591:60:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 802, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "7690:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 803, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "7700:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 804, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7707:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 805, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ActorType", "nodeType": "MemberAccess", "referencedDeclaration": 4342, "src": "7707:18:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$4342_$", "typeString": "type(enum XBRTypes.ActorType)" } }, "id": 806, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PROVIDER_CONSUMER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7707:36:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } ], "expression": { "argumentTypes": null, "id": 800, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "7675:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 801, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isActor", "nodeType": "MemberAccess", "referencedDeclaration": 3146, "src": "7675:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$_t_address_$_t_enum$_ActorType_$4342_$returns$_t_bool_$", "typeString": "function (bytes16,address,enum XBRTypes.ActorType) view external returns (bool)" } }, "id": 807, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7675:69:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "7591:153:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4143544f525f4e4f545f434f4e53554d4552", "id": 809, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7746:20:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_795b997b10f778987ea6940ad4fc8dabe046e3d266ff1731fd9149734b5c0c16", "typeString": "literal_string \"ACTOR_NOT_CONSUMER\"" }, "value": "ACTOR_NOT_CONSUMER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_795b997b10f778987ea6940ad4fc8dabe046e3d266ff1731fd9149734b5c0c16", "typeString": "literal_string \"ACTOR_NOT_CONSUMER\"" } ], "id": 791, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7583:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7583:184:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 811, "nodeType": "ExpressionStatement", "src": "7583:184:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 818, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 813, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 581, "src": "7911:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 816, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "7946:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 814, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "7924:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 815, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketOwner", "nodeType": "MemberAccess", "referencedDeclaration": 3029, "src": "7924:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 817, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7924:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7911:44:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "524543495049454e545f4e4f545f4d41524b4554", "id": 819, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7957:22:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae9cee951d797727013e3e6c7910c4bfe9fe8140ac422a2dc2bb71514e221161", "typeString": "literal_string \"RECIPIENT_NOT_MARKET\"" }, "value": "RECIPIENT_NOT_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_ae9cee951d797727013e3e6c7910c4bfe9fe8140ac422a2dc2bb71514e221161", "typeString": "literal_string \"RECIPIENT_NOT_MARKET\"" } ], "id": 812, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7903:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 820, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7903:77:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 821, "nodeType": "ExpressionStatement", "src": "7903:77:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 830, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "8163:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 832, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6390, "src": "8178:4:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRChannel_$1626", "typeString": "contract XBRChannel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRChannel_$1626", "typeString": "contract XBRChannel" } ], "id": 831, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8170:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 833, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8170:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 834, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "8185:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 826, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "8139:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 824, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "8118:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketCoin", "nodeType": "MemberAccess", "referencedDeclaration": 3042, "src": "8118:20:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 827, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8118:30:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 823, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "8111:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 828, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8111:38:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 6316, "src": "8111:51: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": 835, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8111:81:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4f50454e5f4348414e4e454c5f5452414e534645525f46524f4d5f4143544f525f4641494c4544", "id": 836, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8210:41:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2633ab66d418aba1adb34f789f77591301434d99fa79524f067a61145cea6c84", "typeString": "literal_string \"OPEN_CHANNEL_TRANSFER_FROM_ACTOR_FAILED\"" }, "value": "OPEN_CHANNEL_TRANSFER_FROM_ACTOR_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_2633ab66d418aba1adb34f789f77591301434d99fa79524f067a61145cea6c84", "typeString": "literal_string \"OPEN_CHANNEL_TRANSFER_FROM_ACTOR_FAILED\"" } ], "id": 822, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "8103:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 837, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8103:149:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 838, "nodeType": "ExpressionStatement", "src": "8103:149:2" } ] } }, { "expression": { "argumentTypes": null, "id": 938, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 921, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "9573:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 923, "indexExpression": { "argumentTypes": null, "id": 922, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 573, "src": "9582:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9573:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 926, "name": "openedAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 569, "src": "9612:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 927, "name": "channelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 545, "src": "9622:10:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 928, "name": "ctype", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "9634:5:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, { "argumentTypes": null, "id": 929, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "9641:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 930, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 573, "src": "9651:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 931, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "9662:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 932, "name": "delegate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 577, "src": "9681:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 933, "name": "marketmaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 579, "src": "9691:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 934, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 581, "src": "9704:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 935, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "9715:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 936, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 585, "src": "9723:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 924, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "9595:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 925, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Channel", "nodeType": "MemberAccess", "referencedDeclaration": 4484, "src": "9595:16:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Channel_$4484_storage_ptr_$", "typeString": "type(struct XBRTypes.Channel storage pointer)" } }, "id": 937, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9595:138:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_memory", "typeString": "struct XBRTypes.Channel memory" } }, "src": "9573:160:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 939, "nodeType": "ExpressionStatement", "src": "9573:160:2" }, { "expression": { "argumentTypes": null, "id": 957, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 940, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "9805:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 942, "indexExpression": { "argumentTypes": null, "id": 941, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 573, "src": "9826:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9805:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 945, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "9868:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 946, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "9868:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 947, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OPEN", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9868:26:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, { "argumentTypes": null, "hexValue": "30", "id": 948, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9908:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "argumentTypes": null, "hexValue": "30", "id": 949, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9911:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "argumentTypes": null, "hexValue": "30", "id": 950, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9914:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "argumentTypes": null, "hexValue": "30", "id": 951, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9917:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "argumentTypes": null, "hexValue": "30", "id": 952, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9920:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "argumentTypes": null, "hexValue": "30", "id": 953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9923:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "argumentTypes": null, "hexValue": "", "id": 954, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9926:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "hexValue": "", "id": 955, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9930:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "expression": { "argumentTypes": null, "id": 943, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "9839:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelClosingState", "nodeType": "MemberAccess", "referencedDeclaration": 4503, "src": "9839:28:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_ChannelClosingState_$4503_storage_ptr_$", "typeString": "type(struct XBRTypes.ChannelClosingState storage pointer)" } }, "id": 956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9839:94:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_memory", "typeString": "struct XBRTypes.ChannelClosingState memory" } }, "src": "9805:128:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 958, "nodeType": "ExpressionStatement", "src": "9805:128:2" }, { "expression": { "argumentTypes": null, "id": 963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 959, "name": "channelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 545, "src": "9999:10:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 960, "name": "channelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 545, "src": "10012:10:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10025:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "10012:14:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "9999:27:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 964, "nodeType": "ExpressionStatement", "src": "9999:27:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 966, "name": "ctype", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "10130:5:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, { "argumentTypes": null, "id": 967, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "10137:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 968, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 573, "src": "10147:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 969, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "10158:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 970, "name": "delegate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 577, "src": "10165:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 971, "name": "marketmaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 579, "src": "10175:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 972, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 581, "src": "10188:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 973, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "10199:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 974, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 585, "src": "10207:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 965, "name": "Opened", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 508, "src": "10123:6:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_enum$_ChannelType_$4346_$_t_bytes16_$_t_bytes16_$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (enum XBRTypes.ChannelType,bytes16,bytes16,address,address,address,address,uint256,bytes memory)" } }, "id": 975, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10123:94:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 976, "nodeType": "EmitStatement", "src": "10118:99:2" } ] }, "documentation": "Open a new XBR payment/paying channel for processing off-chain micro-transactions.\n\n /// @param ctype Channel type: payment or paying channel.\n @param openedAt Block number when the channel opening signature was created.\n @param marketId The ID of the XBR market this channel is associated with.\n @param channelId The ID of the new XBR channel (must be unique).\n @param actor The actor (buyer/seller in the market) that opened this channel.\n @param delegate The delegate (off-chain) allowed to spend/earn-on this channel (off-chain)\n in the name of the actor (buyer/seller in the market).\n @param marketmaker The off-chain market maker executing the channel.\n @param recipient The receiver (on-chain) of the channel payout.\n @param amount The amount initially transfered to and held in the channel until closed.\n @param signature EIP712 signature, signed by the member.", "id": 978, "implemented": true, "kind": "function", "modifiers": [], "name": "openChannel", "nodeType": "FunctionDefinition", "parameters": { "id": 586, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 567, "name": "ctype", "nodeType": "VariableDeclaration", "scope": 978, "src": "4478:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "typeName": { "contractScope": null, "id": 566, "name": "XBRTypes.ChannelType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4346, "src": "4478:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 569, "name": "openedAt", "nodeType": "VariableDeclaration", "scope": 978, "src": "4506:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 568, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4506:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 571, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 978, "src": "4524:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 570, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4524:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 573, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 978, "src": "4542:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 572, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4542:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 575, "name": "actor", "nodeType": "VariableDeclaration", "scope": 978, "src": "4569:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 574, "name": "address", "nodeType": "ElementaryTypeName", "src": "4569:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 577, "name": "delegate", "nodeType": "VariableDeclaration", "scope": 978, "src": "4584:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 576, "name": "address", "nodeType": "ElementaryTypeName", "src": "4584:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 579, "name": "marketmaker", "nodeType": "VariableDeclaration", "scope": 978, "src": "4602:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 578, "name": "address", "nodeType": "ElementaryTypeName", "src": "4602:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 581, "name": "recipient", "nodeType": "VariableDeclaration", "scope": 978, "src": "4623:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 580, "name": "address", "nodeType": "ElementaryTypeName", "src": "4623:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 583, "name": "amount", "nodeType": "VariableDeclaration", "scope": 978, "src": "4642:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 582, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4642:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 585, "name": "signature", "nodeType": "VariableDeclaration", "scope": 978, "src": "4666:22:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 584, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4666:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "4477:212:2" }, "returnParameters": { "id": 587, "nodeType": "ParameterList", "parameters": [], "src": "4697:0:2" }, "scope": 1626, "src": "4456:5768:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1245, "nodeType": "Block", "src": "11031:3038:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 996, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "11080:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 998, "indexExpression": { "argumentTypes": null, "id": 997, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "11089:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11080:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 999, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actor", "nodeType": "MemberAccess", "referencedDeclaration": 4473, "src": "11080:25:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1001, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11117: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": 1000, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "11109:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11109:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "11080:39:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4348414e4e454c", "id": 1004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11121:17:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c56efb536d48c27920d5566ee66271307f2445d6c9a35f344919a56b4d6497c7", "typeString": "literal_string \"NO_SUCH_CHANNEL\"" }, "value": "NO_SUCH_CHANNEL" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c56efb536d48c27920d5566ee66271307f2445d6c9a35f344919a56b4d6497c7", "typeString": "literal_string \"NO_SUCH_CHANNEL\"" } ], "id": 995, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "11072:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1005, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11072:67:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1006, "nodeType": "ExpressionStatement", "src": "11072:67:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" }, "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1008, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "11234:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1010, "indexExpression": { "argumentTypes": null, "id": 1009, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "11255:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11234:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1011, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "11234:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1012, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "11275:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "11275:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1014, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "NULL", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11275:26:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "11234:67:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4348414e4e454c", "id": 1016, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11303:17:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c56efb536d48c27920d5566ee66271307f2445d6c9a35f344919a56b4d6497c7", "typeString": "literal_string \"NO_SUCH_CHANNEL\"" }, "value": "NO_SUCH_CHANNEL" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c56efb536d48c27920d5566ee66271307f2445d6c9a35f344919a56b4d6497c7", "typeString": "literal_string \"NO_SUCH_CHANNEL\"" } ], "id": 1007, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "11226:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1017, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11226:95:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1018, "nodeType": "ExpressionStatement", "src": "11226:95:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1036, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" }, "id": 1027, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1020, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "11402:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1022, "indexExpression": { "argumentTypes": null, "id": 1021, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "11423:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11402:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1023, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "11402:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1024, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "11443:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "11443:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1026, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OPEN", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11443:26:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "11402:67:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" }, "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1028, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "11489:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1030, "indexExpression": { "argumentTypes": null, "id": 1029, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "11510:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11489:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1031, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "11489:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1032, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "11530:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "11530:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1034, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSING", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11530:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "11489:70:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "11402:157:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f4e4f545f4f50454e", "id": 1037, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11561:18:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1733d0940574124879026869735fc1aed76a568ff05d8ef9b7bc566846df11f6", "typeString": "literal_string \"CHANNEL_NOT_OPEN\"" }, "value": "CHANNEL_NOT_OPEN" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_1733d0940574124879026869735fc1aed76a568ff05d8ef9b7bc566846df11f6", "typeString": "literal_string \"CHANNEL_NOT_OPEN\"" } ], "id": 1019, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "11394:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11394:186:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1039, "nodeType": "ExpressionStatement", "src": "11394:186:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1066, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1044, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1041, "name": "closeAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 982, "src": "11708:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1042, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "11719:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11719:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11708:23:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1052, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1045, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "11736:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11736:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1047, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "11752:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "11752:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1049, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11752:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1050, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "PRESIGNED_TXN_MAX_AGE", "nodeType": "MemberAccess", "referencedDeclaration": 3415, "src": "11752:38:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1051, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11752:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11736:56:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1053, "name": "closeAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 982, "src": "11808:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1054, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "11820:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1055, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11820:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1056, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "11835:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1057, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "11835:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1058, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11835:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1059, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "PRESIGNED_TXN_MAX_AGE", "nodeType": "MemberAccess", "referencedDeclaration": 3415, "src": "11835:38:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1060, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11835:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11820:55:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 1062, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "11819:57:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11808:68:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "11736:140:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1065, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "11735:142:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "11708:169:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f424c4f434b5f4e554d424552", "id": 1067, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11879:30:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2ebe3efb801d418c04b3a8312661839f0431fcb426ed2ad3d0401f3b9482654", "typeString": "literal_string \"INVALID_CHANNEL_BLOCK_NUMBER\"" }, "value": "INVALID_CHANNEL_BLOCK_NUMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c2ebe3efb801d418c04b3a8312661839f0431fcb426ed2ad3d0401f3b9482654", "typeString": "literal_string \"INVALID_CHANNEL_BLOCK_NUMBER\"" } ], "id": 1040, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "11700:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11700:210:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1069, "nodeType": "ExpressionStatement", "src": "11700:210:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1073, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "11981:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1075, "indexExpression": { "argumentTypes": null, "id": 1074, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "11990:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11981:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1076, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "delegate", "nodeType": "MemberAccess", "referencedDeclaration": 4475, "src": "11981:28:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1079, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "12039:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "12039:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1081, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12039:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingChain", "nodeType": "MemberAccess", "referencedDeclaration": 3417, "src": "12039:31:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1083, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12039:33:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1084, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "12086:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "12086:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1086, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12086:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1087, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingContract", "nodeType": "MemberAccess", "referencedDeclaration": 3419, "src": "12086:34:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 1088, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12086:36:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1089, "name": "closeAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 982, "src": "12124:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1090, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "12133:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1092, "indexExpression": { "argumentTypes": null, "id": 1091, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "12142:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12133:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1093, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "12133:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1094, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "12163:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1095, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "12174:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 1096, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "12205:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1097, "name": "isFinal", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 988, "src": "12214:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "expression": { "argumentTypes": null, "id": 1077, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "12011:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "EIP712ChannelClose", "nodeType": "MemberAccess", "referencedDeclaration": 4650, "src": "12011:27:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EIP712ChannelClose_$4650_storage_ptr_$", "typeString": "type(struct XBRTypes.EIP712ChannelClose storage pointer)" } }, "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12011:211:2", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ChannelClose_$4650_memory", "typeString": "struct XBRTypes.EIP712ChannelClose memory" } }, { "argumentTypes": null, "id": 1099, "name": "delegateSignature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 990, "src": "12224:17:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_EIP712ChannelClose_$4650_memory", "typeString": "struct XBRTypes.EIP712ChannelClose memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 1071, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "11965:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", "referencedDeclaration": 5424, "src": "11965:15:2", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_address_$_t_struct$_EIP712ChannelClose_$4650_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,struct XBRTypes.EIP712ChannelClose memory,bytes memory) pure returns (bool)" } }, "id": 1100, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11965:277:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f44454c45474154455f5349474e4154555245", "id": 1101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12244:28:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f6c033178f13eb96290d731e97a1d50a66e17528304772888b6b9254c159be7a", "typeString": "literal_string \"INVALID_DELEGATE_SIGNATURE\"" }, "value": "INVALID_DELEGATE_SIGNATURE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f6c033178f13eb96290d731e97a1d50a66e17528304772888b6b9254c159be7a", "typeString": "literal_string \"INVALID_DELEGATE_SIGNATURE\"" } ], "id": 1070, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "11957:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11957:316:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1103, "nodeType": "ExpressionStatement", "src": "11957:316:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1107, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "12348:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1109, "indexExpression": { "argumentTypes": null, "id": 1108, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "12357:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12348:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1110, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketmaker", "nodeType": "MemberAccess", "referencedDeclaration": 4477, "src": "12348:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1113, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "12409:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "12409:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1115, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12409:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingChain", "nodeType": "MemberAccess", "referencedDeclaration": 3417, "src": "12409:31:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1117, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12409:33:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1118, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "12456:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "12456:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1120, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12456:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingContract", "nodeType": "MemberAccess", "referencedDeclaration": 3419, "src": "12456:34:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12456:36:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1123, "name": "closeAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 982, "src": "12494:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1124, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "12503:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1126, "indexExpression": { "argumentTypes": null, "id": 1125, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "12512:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12503:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1127, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "12503:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1128, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "12533:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1129, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "12544:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 1130, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "12575:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1131, "name": "isFinal", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 988, "src": "12584:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "expression": { "argumentTypes": null, "id": 1111, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "12381:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1112, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "EIP712ChannelClose", "nodeType": "MemberAccess", "referencedDeclaration": 4650, "src": "12381:27:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EIP712ChannelClose_$4650_storage_ptr_$", "typeString": "type(struct XBRTypes.EIP712ChannelClose storage pointer)" } }, "id": 1132, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12381:211:2", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ChannelClose_$4650_memory", "typeString": "struct XBRTypes.EIP712ChannelClose memory" } }, { "argumentTypes": null, "id": 1133, "name": "marketmakerSignature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 992, "src": "12594:20:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_EIP712ChannelClose_$4650_memory", "typeString": "struct XBRTypes.EIP712ChannelClose memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 1105, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "12332:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", "referencedDeclaration": 5424, "src": "12332:15:2", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_address_$_t_struct$_EIP712ChannelClose_$4650_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,struct XBRTypes.EIP712ChannelClose memory,bytes memory) pure returns (bool)" } }, "id": 1134, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12332:283:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4d41524b45544d414b45525f5349474e4154555245", "id": 1135, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12617:31:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_af498d44c5e3f7d6518ba1fa59b37f1c5e15a49aee41b1152fa81030781158fc", "typeString": "literal_string \"INVALID_MARKETMAKER_SIGNATURE\"" }, "value": "INVALID_MARKETMAKER_SIGNATURE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_af498d44c5e3f7d6518ba1fa59b37f1c5e15a49aee41b1152fa81030781158fc", "typeString": "literal_string \"INVALID_MARKETMAKER_SIGNATURE\"" } ], "id": 1104, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "12324:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1136, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12324:325:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1137, "nodeType": "ExpressionStatement", "src": "12324:325:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1141, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "30", "id": 1139, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12721:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 1140, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "12726:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "12721:12:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1142, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "12737:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1143, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "12748:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1145, "indexExpression": { "argumentTypes": null, "id": 1144, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "12757:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12748:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1146, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 4481, "src": "12748:26:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "12737:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12721:53:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f434c4f53494e475f42414c414e4345", "id": 1149, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12776:25:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0f0ac1781488729e56a6fc927e7d023026b6bb50fec757014325f8609c1edc1", "typeString": "literal_string \"INVALID_CLOSING_BALANCE\"" }, "value": "INVALID_CLOSING_BALANCE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b0f0ac1781488729e56a6fc927e7d023026b6bb50fec757014325f8609c1edc1", "typeString": "literal_string \"INVALID_CLOSING_BALANCE\"" } ], "id": 1138, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "12713:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1150, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12713:89:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1151, "nodeType": "ExpressionStatement", "src": "12713:89:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 1155, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1153, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "12875:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 1154, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12896:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "12875:22:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f434c4f53494e475f534551", "id": 1156, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12899:21:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3044365ff5046e2f24bdd8131d0ad9a3b0b049c94600b8a25ac1bbeee7efafbd", "typeString": "literal_string \"INVALID_CLOSING_SEQ\"" }, "value": "INVALID_CLOSING_SEQ" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3044365ff5046e2f24bdd8131d0ad9a3b0b049c94600b8a25ac1bbeee7efafbd", "typeString": "literal_string \"INVALID_CLOSING_SEQ\"" } ], "id": 1152, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "12867:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1157, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12867:54:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1158, "nodeType": "ExpressionStatement", "src": "12867:54:2" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" }, "id": 1166, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1159, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "12984:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1161, "indexExpression": { "argumentTypes": null, "id": 1160, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13005:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12984:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1162, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "12984:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1163, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "13025:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "13025:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1165, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSING", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13025:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "12984:70:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1199, "nodeType": "IfStatement", "src": "12980:540:2", "trueBody": { "id": 1198, "nodeType": "Block", "src": "13056:464:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1168, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "13131:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1170, "indexExpression": { "argumentTypes": null, "id": 1169, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13152:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13131:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1171, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closedAt", "nodeType": "MemberAccess", "referencedDeclaration": 4494, "src": "13131:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1172, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13175:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "13131:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e5445524e414c5f4552524f525f434c4f5345445f41545f4e4f4e5a45524f", "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13178:34:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5d63383c7b8e7623d03bd7c9055f2890f0e4ff829e64e24d32f14f2882e969f3", "typeString": "literal_string \"INTERNAL_ERROR_CLOSED_AT_NONZERO\"" }, "value": "INTERNAL_ERROR_CLOSED_AT_NONZERO" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_5d63383c7b8e7623d03bd7c9055f2890f0e4ff829e64e24d32f14f2882e969f3", "typeString": "literal_string \"INTERNAL_ERROR_CLOSED_AT_NONZERO\"" } ], "id": 1167, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "13123:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1175, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13123:90:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1176, "nodeType": "ExpressionStatement", "src": "13123:90:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1184, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1178, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "13235:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13235:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1180, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "13253:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1182, "indexExpression": { "argumentTypes": null, "id": 1181, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13274:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13253:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1183, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingAt", "nodeType": "MemberAccess", "referencedDeclaration": 4488, "src": "13253:41:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "13235:59:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f54494d454f5554", "id": 1185, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13296:17:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2f1fa2053e0350673863473956465393d1f0eda87a14bad59c41799d0c64f3b0", "typeString": "literal_string \"CHANNEL_TIMEOUT\"" }, "value": "CHANNEL_TIMEOUT" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_2f1fa2053e0350673863473956465393d1f0eda87a14bad59c41799d0c64f3b0", "typeString": "literal_string \"CHANNEL_TIMEOUT\"" } ], "id": 1177, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "13227:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1186, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13227:87:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1187, "nodeType": "ExpressionStatement", "src": "13227:87:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 1194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1189, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "13422:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1191, "indexExpression": { "argumentTypes": null, "id": 1190, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13443:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13422:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1192, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingSeq", "nodeType": "MemberAccess", "referencedDeclaration": 4490, "src": "13422:42:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 1193, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "13467:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "13422:62:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4f555444415445445f5452414e53414354494f4e", "id": 1195, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13486:22:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_69a39add021b1191a84ee8f2b6c6c0cff6c615b9dd9611085e766bbb02a07159", "typeString": "literal_string \"OUTDATED_TRANSACTION\"" }, "value": "OUTDATED_TRANSACTION" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_69a39add021b1191a84ee8f2b6c6c0cff6c615b9dd9611085e766bbb02a07159", "typeString": "literal_string \"OUTDATED_TRANSACTION\"" } ], "id": 1188, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "13414:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1196, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13414:95:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1197, "nodeType": "ExpressionStatement", "src": "13414:95:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1200, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "13598:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1201, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "13618:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1203, "indexExpression": { "argumentTypes": null, "id": 1202, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13639:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13618:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1204, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingSeq", "nodeType": "MemberAccess", "referencedDeclaration": 4490, "src": "13618:42:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "13598:62:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1213, "nodeType": "IfStatement", "src": "13594:142:2", "trueBody": { "id": 1212, "nodeType": "Block", "src": "13662:74:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1207, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13687:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1208, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "13698:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 1209, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "13717:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1206, "name": "_doClosing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1388, "src": "13676:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes16_$_t_uint32_$_t_uint256_$returns$__$", "typeString": "function (bytes16,uint32,uint256)" } }, "id": 1210, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13676:49:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1211, "nodeType": "ExpressionStatement", "src": "13676:49:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1236, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1218, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1214, "name": "isFinal", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 988, "src": "13790:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1215, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "13801:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1216, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13812:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "13801:12:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "13790:23:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" }, "id": 1226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1219, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "13830:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1221, "indexExpression": { "argumentTypes": null, "id": 1220, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13851:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13830:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1222, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "13830:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1223, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "13871:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "13871:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1225, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSING", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13871:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "13830:70:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1227, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "13904:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13904:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1229, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "13923:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1231, "indexExpression": { "argumentTypes": null, "id": 1230, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13944:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13923:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1232, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingAt", "nodeType": "MemberAccess", "referencedDeclaration": 4488, "src": "13923:41:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "13904:60:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "13830:134:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1235, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "13829:136:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "13790:175:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1244, "nodeType": "IfStatement", "src": "13786:277:2", "trueBody": { "id": 1243, "nodeType": "Block", "src": "13967:96:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1238, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "14014:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1239, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "14025:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 1240, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "14044:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1237, "name": "_doClose", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1625, "src": "14005:8:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes16_$_t_uint32_$_t_uint256_$returns$__$", "typeString": "function (bytes16,uint32,uint256)" } }, "id": 1241, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14005:47:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1242, "nodeType": "ExpressionStatement", "src": "14005:47:2" } ] } } ] }, "documentation": "Trigger closing this payment channel. When the first participant has called `close()`\nsubmitting its latest transaction/state, a timeout period begins during which the\nother party of the payment channel has to submit its latest transaction/state too.\nWhen both transaction have been submitted, and the submitted transactions/states agree,\nthe channel immediately closes, and the consumed amount of token in the channel is\ntransferred to the channel recipient, and the remaining amount of token is transferred\nback to the original sender.", "id": 1246, "implemented": true, "kind": "function", "modifiers": [], "name": "closeChannel", "nodeType": "FunctionDefinition", "parameters": { "id": 993, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 980, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10856:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 979, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "10856:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 982, "name": "closeAt", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10875:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 981, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10875:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 984, "name": "closingChannelSeq", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10892:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 983, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "10892:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 986, "name": "balance", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10918:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 985, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10918:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 988, "name": "isFinal", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10935:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 987, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10935:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 990, "name": "delegateSignature", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10957:30:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 989, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "10957:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 992, "name": "marketmakerSignature", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10989:33:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 991, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "10989:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "10855:168:2" }, "returnParameters": { "id": 994, "nodeType": "ParameterList", "parameters": [], "src": "11031:0:2" }, "scope": 1626, "src": "10833:3236:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1387, "nodeType": "Block", "src": "14165:2169:2", "statements": [ { "assignments": [ 1256 ], "declarations": [ { "constant": false, "id": 1256, "name": "coin", "nodeType": "VariableDeclaration", "scope": 1387, "src": "14242:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1255, "name": "address", "nodeType": "ElementaryTypeName", "src": "14242:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 1264, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1259, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "14278:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1261, "indexExpression": { "argumentTypes": null, "id": 1260, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "14287:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14278:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1262, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "14278:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 1257, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "14257:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketCoin", "nodeType": "MemberAccess", "referencedDeclaration": 3042, "src": "14257:20:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 1263, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14257:50:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "14242:65:2" }, { "assignments": [ 1266 ], "declarations": [ { "constant": false, "id": 1266, "name": "earned", "nodeType": "VariableDeclaration", "scope": 1387, "src": "14421:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1265, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14421:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1274, "initialValue": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1272, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1267, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "14439:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1269, "indexExpression": { "argumentTypes": null, "id": 1268, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "14448:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14439:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1270, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 4481, "src": "14439:26:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1271, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1252, "src": "14468:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "14439:36:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 1273, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "14438:38:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "14421:55:2" }, { "assignments": [ 1276 ], "declarations": [ { "constant": false, "id": 1276, "name": "fee", "nodeType": "VariableDeclaration", "scope": 1387, "src": "14908:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1275, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14908:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1292, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1277, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1266, "src": "14922:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1280, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "14951:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1282, "indexExpression": { "argumentTypes": null, "id": 1281, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "14960:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14951:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1283, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "14951:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 1278, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "14931:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketFee", "nodeType": "MemberAccess", "referencedDeclaration": 3055, "src": "14931:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_uint256_$", "typeString": "function (bytes16) view external returns (uint256)" } }, "id": 1284, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14931:49:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "14922:58:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1287, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1256, "src": "14990:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1286, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "14983:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1288, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14983:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 6271, "src": "14983:24:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14983:26:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "14922:87:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "14908:101:2" }, { "assignments": [ 1294 ], "declarations": [ { "constant": false, "id": 1294, "name": "contribution", "nodeType": "VariableDeclaration", "scope": 1387, "src": "15019:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1293, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15019:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1310, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1309, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1295, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1276, "src": "15042:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1296, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "15048:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "15048:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15048:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "contribution", "nodeType": "MemberAccess", "referencedDeclaration": 3424, "src": "15048:29:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1300, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15048:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15042:37:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1302, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "15082:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "15082:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1304, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15082:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "token", "nodeType": "MemberAccess", "referencedDeclaration": 3426, "src": "15082:22:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRToken_$4327_$", "typeString": "function () view external returns (contract XBRToken)" } }, "id": 1306, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15082:24:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "id": 1307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 5833, "src": "15082:36:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1308, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15082:38:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15042:78:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "15019:101:2" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 1316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1311, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "15441:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1313, "indexExpression": { "argumentTypes": null, "id": 1312, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "15462:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15441:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1314, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingSeq", "nodeType": "MemberAccess", "referencedDeclaration": 4490, "src": "15441:42:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1315, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "15486:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "15441:46:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1328, "nodeType": "IfStatement", "src": "15437:175:2", "trueBody": { "id": 1327, "nodeType": "Block", "src": "15489:123:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1318, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1252, "src": "15511:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1319, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "15522:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1321, "indexExpression": { "argumentTypes": null, "id": 1320, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "15543:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15522:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1322, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingBalance", "nodeType": "MemberAccess", "referencedDeclaration": 4492, "src": "15522:46:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15511:57:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "5452414e53414354494f4e5f42414c414e43455f4f55544441544544", "id": 1324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15570:30:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_fe0b7c504c6ef3aff0106a24f85ebed725505a0f8ed74bccf8203afbd20c0c4a", "typeString": "literal_string \"TRANSACTION_BALANCE_OUTDATED\"" }, "value": "TRANSACTION_BALANCE_OUTDATED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_fe0b7c504c6ef3aff0106a24f85ebed725505a0f8ed74bccf8203afbd20c0c4a", "typeString": "literal_string \"TRANSACTION_BALANCE_OUTDATED\"" } ], "id": 1317, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "15503:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1325, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15503:98:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1326, "nodeType": "ExpressionStatement", "src": "15503:98:2" } ] } }, { "expression": { "argumentTypes": null, "id": 1336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1329, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "15708:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1331, "indexExpression": { "argumentTypes": null, "id": 1330, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "15729:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15708:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1332, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "15708:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1333, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "15748:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "15748:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1335, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSING", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "15748:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "15708:69:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "id": 1337, "nodeType": "ExpressionStatement", "src": "15708:69:2" }, { "expression": { "argumentTypes": null, "id": 1343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1338, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "15787:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1340, "indexExpression": { "argumentTypes": null, "id": 1339, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "15808:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15787:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1341, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "closingSeq", "nodeType": "MemberAccess", "referencedDeclaration": 4490, "src": "15787:42:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1342, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1250, "src": "15832:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "15787:62:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 1344, "nodeType": "ExpressionStatement", "src": "15787:62:2" }, { "expression": { "argumentTypes": null, "id": 1350, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1345, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "15859:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1347, "indexExpression": { "argumentTypes": null, "id": 1346, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "15880:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15859:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1348, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "closingBalance", "nodeType": "MemberAccess", "referencedDeclaration": 4492, "src": "15859:46:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1349, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1252, "src": "15908:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15859:56:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1351, "nodeType": "ExpressionStatement", "src": "15859:56:2" }, { "expression": { "argumentTypes": null, "id": 1362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1352, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "15971:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1354, "indexExpression": { "argumentTypes": null, "id": 1353, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "15992:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15971:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1355, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "closingAt", "nodeType": "MemberAccess", "referencedDeclaration": 4488, "src": "15971:41:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1361, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1356, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "16015:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "16015:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1358, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "16033:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "NONCOOPERATIVE_CHANNEL_CLOSE_TIMEOUT", "nodeType": "MemberAccess", "referencedDeclaration": 1836, "src": "16033:43:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1360, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16033:45:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16015:63:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15971:107:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1363, "nodeType": "ExpressionStatement", "src": "15971:107:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1365, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "16162:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1367, "indexExpression": { "argumentTypes": null, "id": 1366, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "16171:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16162:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1368, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "ctype", "nodeType": "MemberAccess", "referencedDeclaration": 4467, "src": "16162:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1369, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "16189:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1371, "indexExpression": { "argumentTypes": null, "id": 1370, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "16198:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16189:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1372, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "16189:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1373, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "16219:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1374, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1266, "src": "16242:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1375, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1276, "src": "16251:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16242:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1377, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1276, "src": "16256:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1378, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1294, "src": "16262:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16256:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1380, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1252, "src": "16276:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1381, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "16285:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1383, "indexExpression": { "argumentTypes": null, "id": 1382, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "16306:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16285:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1384, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingAt", "nodeType": "MemberAccess", "referencedDeclaration": 4488, "src": "16285:41:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1364, "name": "Closing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 524, "src": "16154:7:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_enum$_ChannelType_$4346_$_t_bytes16_$_t_bytes16_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (enum XBRTypes.ChannelType,bytes16,bytes16,uint256,uint256,uint256,uint256)" } }, "id": 1385, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16154:173:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1386, "nodeType": "EmitStatement", "src": "16149:178:2" } ] }, "documentation": null, "id": 1388, "implemented": true, "kind": "function", "modifiers": [], "name": "_doClosing", "nodeType": "FunctionDefinition", "parameters": { "id": 1253, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1248, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 1388, "src": "14095:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1247, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "14095:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1250, "name": "closingChannelSeq", "nodeType": "VariableDeclaration", "scope": 1388, "src": "14114:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 1249, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "14114:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1252, "name": "balance", "nodeType": "VariableDeclaration", "scope": 1388, "src": "14140:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1251, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14140:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "14094:62:2" }, "returnParameters": { "id": 1254, "nodeType": "ParameterList", "parameters": [], "src": "14165:0:2" }, "scope": 1626, "src": "14075:2259:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { "id": 1624, "nodeType": "Block", "src": "16428:2726:2", "statements": [ { "assignments": [ 1398 ], "declarations": [ { "constant": false, "id": 1398, "name": "coin", "nodeType": "VariableDeclaration", "scope": 1624, "src": "16505:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1397, "name": "address", "nodeType": "ElementaryTypeName", "src": "16505:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 1406, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1401, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "16541:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1403, "indexExpression": { "argumentTypes": null, "id": 1402, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "16550:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16541:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1404, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "16541:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 1399, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "16520:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketCoin", "nodeType": "MemberAccess", "referencedDeclaration": 3042, "src": "16520:20:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 1405, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16520:50:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "16505:65:2" }, { "assignments": [ 1408 ], "declarations": [ { "constant": false, "id": 1408, "name": "earned", "nodeType": "VariableDeclaration", "scope": 1624, "src": "16684:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1407, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "16684:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1416, "initialValue": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1409, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "16702:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1411, "indexExpression": { "argumentTypes": null, "id": 1410, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "16711:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16702:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1412, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 4481, "src": "16702:26:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1413, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1394, "src": "16731:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16702:36:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 1415, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "16701:38:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "16684:55:2" }, { "assignments": [ 1418 ], "declarations": [ { "constant": false, "id": 1418, "name": "fee", "nodeType": "VariableDeclaration", "scope": 1624, "src": "17171:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1417, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17171:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1434, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1427, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1419, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1408, "src": "17185:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1422, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "17214:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1424, "indexExpression": { "argumentTypes": null, "id": 1423, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "17223:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17214:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1425, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "17214:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 1420, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "17194:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketFee", "nodeType": "MemberAccess", "referencedDeclaration": 3055, "src": "17194:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_uint256_$", "typeString": "function (bytes16) view external returns (uint256)" } }, "id": 1426, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17194:49:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17185:58:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1429, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "17253:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1428, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "17246:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1430, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17246:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 6271, "src": "17246:24:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1432, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17246:26:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17185:87:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "17171:101:2" }, { "assignments": [ 1436 ], "declarations": [ { "constant": false, "id": 1436, "name": "contribution", "nodeType": "VariableDeclaration", "scope": 1624, "src": "17282:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1435, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17282:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1452, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1443, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1437, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "17305:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1438, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "17311:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "17311:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1440, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17311:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1441, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "contribution", "nodeType": "MemberAccess", "referencedDeclaration": 3424, "src": "17311:29:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1442, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17311:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17305:37:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1444, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "17345:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1445, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "17345:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1446, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17345:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1447, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "token", "nodeType": "MemberAccess", "referencedDeclaration": 3426, "src": "17345:22:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRToken_$4327_$", "typeString": "function () view external returns (contract XBRToken)" } }, "id": 1448, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17345:24:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "id": 1449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 5833, "src": "17345:36:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1450, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17345:38:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17305:78:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "17282:101:2" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1455, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1453, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1408, "src": "17594:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1454, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "17603:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17594:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1456, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "17609:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "17594:16:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1502, "nodeType": "IfStatement", "src": "17590:409:2", "trueBody": { "id": 1501, "nodeType": "Block", "src": "17612:387:2", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "id": 1465, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1458, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "17630:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1460, "indexExpression": { "argumentTypes": null, "id": 1459, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "17639:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17630:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1461, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "ctype", "nodeType": "MemberAccess", "referencedDeclaration": 4467, "src": "17630:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1462, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "17659:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelType", "nodeType": "MemberAccess", "referencedDeclaration": 4346, "src": "17659:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelType_$4346_$", "typeString": "type(enum XBRTypes.ChannelType)" } }, "id": 1464, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PAYMENT", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "17659:28:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "src": "17630:57:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 1499, "nodeType": "Block", "src": "17845:144:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1488, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "17893:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1490, "indexExpression": { "argumentTypes": null, "id": 1489, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "17902:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17893:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1491, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actor", "nodeType": "MemberAccess", "referencedDeclaration": 4473, "src": "17893:25:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1492, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1408, "src": "17920:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1493, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "17929:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17920:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1485, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "17878:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1484, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "17871:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1486, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17871:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 6287, "src": "17871:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 1495, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17871:62:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f434c4f53455f5041594f55545f5452414e534645525f4641494c4544", "id": 1496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "17935:38:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f7735df21d72af26076ac0e2ac6cdf55729ac87d88f38c9fe287d1c665f10de7", "typeString": "literal_string \"CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED\"" }, "value": "CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f7735df21d72af26076ac0e2ac6cdf55729ac87d88f38c9fe287d1c665f10de7", "typeString": "literal_string \"CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED\"" } ], "id": 1483, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "17863:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1497, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17863:111:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1498, "nodeType": "ExpressionStatement", "src": "17863:111:2" } ] }, "id": 1500, "nodeType": "IfStatement", "src": "17626:363:2", "trueBody": { "id": 1482, "nodeType": "Block", "src": "17689:150:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1471, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "17737:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1473, "indexExpression": { "argumentTypes": null, "id": 1472, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "17746:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17737:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1474, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketmaker", "nodeType": "MemberAccess", "referencedDeclaration": 4477, "src": "17737:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1477, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1475, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1408, "src": "17770:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1476, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "17779:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17770:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1468, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "17722:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1467, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "17715:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1469, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17715:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 6287, "src": "17715:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 1478, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17715:68:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f434c4f53455f5041594f55545f5452414e534645525f4641494c4544", "id": 1479, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "17785:38:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f7735df21d72af26076ac0e2ac6cdf55729ac87d88f38c9fe287d1c665f10de7", "typeString": "literal_string \"CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED\"" }, "value": "CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f7735df21d72af26076ac0e2ac6cdf55729ac87d88f38c9fe287d1c665f10de7", "typeString": "literal_string \"CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED\"" } ], "id": 1466, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "17707:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1480, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17707:117:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1481, "nodeType": "ExpressionStatement", "src": "17707:117:2" } ] } } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1505, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1503, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1394, "src": "18013:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "18023:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "18013:11:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1546, "nodeType": "IfStatement", "src": "18009:394:2", "trueBody": { "id": 1545, "nodeType": "Block", "src": "18026:377:2", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "id": 1513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1506, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "18044:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1508, "indexExpression": { "argumentTypes": null, "id": 1507, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "18053:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18044:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1509, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "ctype", "nodeType": "MemberAccess", "referencedDeclaration": 4467, "src": "18044:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1510, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "18073:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelType", "nodeType": "MemberAccess", "referencedDeclaration": 4346, "src": "18073:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelType_$4346_$", "typeString": "type(enum XBRTypes.ChannelType)" } }, "id": 1512, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PAYMENT", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "18073:28:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "src": "18044:57:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 1543, "nodeType": "Block", "src": "18248:145:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1534, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "18296:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1536, "indexExpression": { "argumentTypes": null, "id": 1535, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "18305:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18296:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1537, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketmaker", "nodeType": "MemberAccess", "referencedDeclaration": 4477, "src": "18296:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1538, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1394, "src": "18329:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1531, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "18281:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1530, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "18274:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1532, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18274:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1533, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 6287, "src": "18274:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18274:63:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f434c4f53455f524546554e445f5452414e534645525f4641494c4544", "id": 1540, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18339:38:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a0e715685b9bed6bffe911b5f2ed20616d488c05c087fb181a65cc1fe9baa29b", "typeString": "literal_string \"CHANNEL_CLOSE_REFUND_TRANSFER_FAILED\"" }, "value": "CHANNEL_CLOSE_REFUND_TRANSFER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a0e715685b9bed6bffe911b5f2ed20616d488c05c087fb181a65cc1fe9baa29b", "typeString": "literal_string \"CHANNEL_CLOSE_REFUND_TRANSFER_FAILED\"" } ], "id": 1529, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "18266:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1541, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18266:112:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1542, "nodeType": "ExpressionStatement", "src": "18266:112:2" } ] }, "id": 1544, "nodeType": "IfStatement", "src": "18040:353:2", "trueBody": { "id": 1528, "nodeType": "Block", "src": "18103:139:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1519, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "18151:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1521, "indexExpression": { "argumentTypes": null, "id": 1520, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "18160:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18151:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1522, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actor", "nodeType": "MemberAccess", "referencedDeclaration": 4473, "src": "18151:25:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1523, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1394, "src": "18178:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1516, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "18136:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1515, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "18129:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1517, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18129:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 6287, "src": "18129:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 1524, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18129:57:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f434c4f53455f524546554e445f5452414e534645525f4641494c4544", "id": 1525, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18188:38:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a0e715685b9bed6bffe911b5f2ed20616d488c05c087fb181a65cc1fe9baa29b", "typeString": "literal_string \"CHANNEL_CLOSE_REFUND_TRANSFER_FAILED\"" }, "value": "CHANNEL_CLOSE_REFUND_TRANSFER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a0e715685b9bed6bffe911b5f2ed20616d488c05c087fb181a65cc1fe9baa29b", "typeString": "literal_string \"CHANNEL_CLOSE_REFUND_TRANSFER_FAILED\"" } ], "id": 1514, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "18121:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1526, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18121:106:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1527, "nodeType": "ExpressionStatement", "src": "18121:106:2" } ] } } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1549, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1547, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "18417:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "18423:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "18417:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1585, "nodeType": "IfStatement", "src": "18413:306:2", "trueBody": { "id": 1584, "nodeType": "Block", "src": "18426:293:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1557, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "18492:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1559, "indexExpression": { "argumentTypes": null, "id": 1558, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "18501:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18492:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1560, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "18492:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 1555, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "18470:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1556, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketOwner", "nodeType": "MemberAccess", "referencedDeclaration": 3029, "src": "18470:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 1561, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18470:51:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1562, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "18523:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1563, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1436, "src": "18529:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "18523:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1552, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "18455:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1551, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "18448:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1553, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18448:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 6287, "src": "18448:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 1565, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18448:94:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f434c4f53455f4645455f5452414e534645525f4641494c4544", "id": 1566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18544:35:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_20c683b470acae7a12ee87f6da277edc4594b1899950d1ce35610823e471e294", "typeString": "literal_string \"CHANNEL_CLOSE_FEE_TRANSFER_FAILED\"" }, "value": "CHANNEL_CLOSE_FEE_TRANSFER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_20c683b470acae7a12ee87f6da277edc4594b1899950d1ce35610823e471e294", "typeString": "literal_string \"CHANNEL_CLOSE_FEE_TRANSFER_FAILED\"" } ], "id": 1550, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "18440:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1567, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18440:140:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1568, "nodeType": "ExpressionStatement", "src": "18440:140:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1574, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "18624:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1575, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "18624:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1576, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18624:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "organization", "nodeType": "MemberAccess", "referencedDeclaration": 3428, "src": "18624:29:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 1578, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18624:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1579, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1436, "src": "18657:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1571, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "18609:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1570, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "18602:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1572, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18602:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 6287, "src": "18602:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 1580, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18602:68:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f434c4f53455f4645455f5452414e534645525f4641494c4544", "id": 1581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18672:35:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_20c683b470acae7a12ee87f6da277edc4594b1899950d1ce35610823e471e294", "typeString": "literal_string \"CHANNEL_CLOSE_FEE_TRANSFER_FAILED\"" }, "value": "CHANNEL_CLOSE_FEE_TRANSFER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_20c683b470acae7a12ee87f6da277edc4594b1899950d1ce35610823e471e294", "typeString": "literal_string \"CHANNEL_CLOSE_FEE_TRANSFER_FAILED\"" } ], "id": 1569, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "18594:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1582, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18594:114:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1583, "nodeType": "ExpressionStatement", "src": "18594:114:2" } ] } }, { "expression": { "argumentTypes": null, "id": 1592, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1586, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "18789:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1588, "indexExpression": { "argumentTypes": null, "id": 1587, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "18810:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18789:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1589, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "closedAt", "nodeType": "MemberAccess", "referencedDeclaration": 4494, "src": "18789:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1590, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "18832:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1591, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "18832:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "18789:58:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1593, "nodeType": "ExpressionStatement", "src": "18789:58:2" }, { "expression": { "argumentTypes": null, "id": 1601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1594, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "18881:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1596, "indexExpression": { "argumentTypes": null, "id": 1595, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "18902:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18881:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1597, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "18881:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1598, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "18921:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1599, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "18921:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1600, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "18921:28:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "18881:68:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "id": 1602, "nodeType": "ExpressionStatement", "src": "18881:68:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1604, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "19008:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1606, "indexExpression": { "argumentTypes": null, "id": 1605, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "19017:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19008:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1607, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "ctype", "nodeType": "MemberAccess", "referencedDeclaration": 4467, "src": "19008:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1608, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "19035:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1610, "indexExpression": { "argumentTypes": null, "id": 1609, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "19044:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19035:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1611, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "19035:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1612, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "19065:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1613, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1408, "src": "19088:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1614, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "19097:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "19088:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1618, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1616, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "19102:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1617, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1436, "src": "19108:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "19102:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1619, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1394, "src": "19122:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1620, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "19131:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "19131:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1603, "name": "Closed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 540, "src": "19001:6:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_enum$_ChannelType_$4346_$_t_bytes16_$_t_bytes16_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (enum XBRTypes.ChannelType,bytes16,bytes16,uint256,uint256,uint256,uint256)" } }, "id": 1622, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "19001:146:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1623, "nodeType": "EmitStatement", "src": "18996:151:2" } ] }, "documentation": null, "id": 1625, "implemented": true, "kind": "function", "modifiers": [], "name": "_doClose", "nodeType": "FunctionDefinition", "parameters": { "id": 1395, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1390, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 1625, "src": "16358:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1389, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "16358:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1392, "name": "closingChannelSeq", "nodeType": "VariableDeclaration", "scope": 1625, "src": "16377:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 1391, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "16377:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1394, "name": "balance", "nodeType": "VariableDeclaration", "scope": 1625, "src": "16403:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1393, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "16403:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "16357:62:2" }, "returnParameters": { "id": 1396, "nodeType": "ParameterList", "parameters": [], "src": "16428:0:2" }, "scope": 1626, "src": "16340:2814:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" } ], "scope": 1627, "src": "1393:17763:2" } ], "src": "810:18347:2" }, "legacyAST": { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRChannel.sol", "exportedSymbols": { "XBRChannel": [ 1626 ] }, "id": 1627, "nodeType": "SourceUnit", "nodes": [ { "id": 472, "literals": [ "solidity", "^", "0.5", ".12" ], "nodeType": "PragmaDirective", "src": "810:24:2" }, { "id": 473, "literals": [ "experimental", "ABIEncoderV2" ], "nodeType": "PragmaDirective", "src": "835:33:2" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", "id": 474, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 5802, "src": "926:59:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", "id": 475, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 5615, "src": "1048:64:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRMaintained.sol", "file": "./XBRMaintained.sol", "id": 476, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 1730, "src": "1114:29:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRTypes.sol", "file": "./XBRTypes.sol", "id": 477, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 5426, "src": "1144:24:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRToken.sol", "file": "./XBRToken.sol", "id": 478, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 4328, "src": "1169:24:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRNetwork.sol", "file": "./XBRNetwork.sol", "id": 479, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 3887, "src": "1194:26:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/travis/build/crossbario/xbr-protocol/contracts/XBRMarket.sol", "file": "./XBRMarket.sol", "id": 480, "nodeType": "ImportDirective", "scope": 1627, "sourceUnit": 3362, "src": "1221:25:2", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 481, "name": "XBRMaintained", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1729, "src": "1416:13:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMaintained_$1729", "typeString": "contract XBRMaintained" } }, "id": 482, "nodeType": "InheritanceSpecifier", "src": "1416:13:2" } ], "contractDependencies": [ 1729 ], "contractKind": "contract", "documentation": "XBR Payment/Paying Channel between a XBR data consumer and the XBR market maker,\nor the XBR Market Maker and a XBR data provider.", "fullyImplemented": true, "id": 1626, "linearizedBaseContracts": [ 1626, 1729 ], "name": "XBRChannel", "nodeType": "ContractDefinition", "nodes": [ { "id": 485, "libraryName": { "contractScope": null, "id": 483, "name": "SafeMath", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5801, "src": "1522:8:2", "typeDescriptions": { "typeIdentifier": "t_contract$_SafeMath_$5801", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "1516:27:2", "typeName": { "id": 484, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1535:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "id": 488, "libraryName": { "contractScope": null, "id": 486, "name": "ECDSA", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 5614, "src": "1627:5:2", "typeDescriptions": { "typeIdentifier": "t_contract$_ECDSA_$5614", "typeString": "library ECDSA" } }, "nodeType": "UsingForDirective", "src": "1621:24:2", "typeName": { "id": 487, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1637:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } }, { "anonymous": false, "documentation": "Event emittedd when a new XBR data market has opened.", "id": 508, "name": "Opened", "nodeType": "EventDefinition", "parameters": { "id": 507, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 490, "indexed": false, "name": "ctype", "nodeType": "VariableDeclaration", "scope": 508, "src": "1726:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "typeName": { "contractScope": null, "id": 489, "name": "XBRTypes.ChannelType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4346, "src": "1726:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 492, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 508, "src": "1754:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 491, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "1754:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 494, "indexed": true, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 508, "src": "1780:25:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 493, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "1780:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 496, "indexed": false, "name": "actor", "nodeType": "VariableDeclaration", "scope": 508, "src": "1807:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 495, "name": "address", "nodeType": "ElementaryTypeName", "src": "1807:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 498, "indexed": false, "name": "delegate", "nodeType": "VariableDeclaration", "scope": 508, "src": "1830:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 497, "name": "address", "nodeType": "ElementaryTypeName", "src": "1830:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 500, "indexed": false, "name": "marketmaker", "nodeType": "VariableDeclaration", "scope": 508, "src": "1848:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 499, "name": "address", "nodeType": "ElementaryTypeName", "src": "1848:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 502, "indexed": false, "name": "recipient", "nodeType": "VariableDeclaration", "scope": 508, "src": "1869:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 501, "name": "address", "nodeType": "ElementaryTypeName", "src": "1869:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 504, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", "scope": 508, "src": "1888:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 503, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1888:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 506, "indexed": false, "name": "signature", "nodeType": "VariableDeclaration", "scope": 508, "src": "1904:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 505, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1904:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "1725:195:2" }, "src": "1713:208:2" }, { "anonymous": false, "documentation": "Event emitted when payment channel is closing (that is, one of the two state channel\nparticipants has called \"close()\", initiating start of the channel timeout).", "id": 524, "name": "Closing", "nodeType": "EventDefinition", "parameters": { "id": 523, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 510, "indexed": false, "name": "ctype", "nodeType": "VariableDeclaration", "scope": 524, "src": "2133:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "typeName": { "contractScope": null, "id": 509, "name": "XBRTypes.ChannelType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4346, "src": "2133:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 512, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 524, "src": "2161:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 511, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2161:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 514, "indexed": true, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 524, "src": "2187:25:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 513, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2187:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 516, "indexed": false, "name": "payout", "nodeType": "VariableDeclaration", "scope": 524, "src": "2222:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 515, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2222:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 518, "indexed": false, "name": "fee", "nodeType": "VariableDeclaration", "scope": 524, "src": "2238:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 517, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2238:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 520, "indexed": false, "name": "refund", "nodeType": "VariableDeclaration", "scope": 524, "src": "2251:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 519, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2251:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 522, "indexed": false, "name": "timeoutAt", "nodeType": "VariableDeclaration", "scope": 524, "src": "2267:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 521, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2267:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2132:153:2" }, "src": "2119:167:2" }, { "anonymous": false, "documentation": "Event emitted when payment channel has finally closed, which happens after both state\nchannel participants have called close(), agreeing on last state, or after the timeout\nat latest - in case the second participant doesn't react within timeout)", "id": 540, "name": "Closed", "nodeType": "EventDefinition", "parameters": { "id": 539, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 526, "indexed": false, "name": "ctype", "nodeType": "VariableDeclaration", "scope": 540, "src": "2588:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "typeName": { "contractScope": null, "id": 525, "name": "XBRTypes.ChannelType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4346, "src": "2588:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 528, "indexed": true, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 540, "src": "2616:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 527, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2616:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 530, "indexed": true, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 540, "src": "2642:25:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 529, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "2642:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 532, "indexed": false, "name": "payout", "nodeType": "VariableDeclaration", "scope": 540, "src": "2677:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 531, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2677:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 534, "indexed": false, "name": "fee", "nodeType": "VariableDeclaration", "scope": 540, "src": "2693:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 533, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2693:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 536, "indexed": false, "name": "refund", "nodeType": "VariableDeclaration", "scope": 540, "src": "2706:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 535, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2706:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 538, "indexed": false, "name": "closedAt", "nodeType": "VariableDeclaration", "scope": 540, "src": "2722:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 537, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2722:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "2587:152:2" }, "src": "2575:165:2" }, { "constant": false, "id": 542, "name": "market", "nodeType": "VariableDeclaration", "scope": 1626, "src": "2813:23:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" }, "typeName": { "contractScope": null, "id": 541, "name": "XBRMarket", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3361, "src": "2813:9:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "value": null, "visibility": "public" }, { "constant": false, "id": 545, "name": "channelSeq", "nodeType": "VariableDeclaration", "scope": 1626, "src": "2966:29:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 543, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "2966:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "argumentTypes": null, "hexValue": "31", "id": 544, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2994:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "visibility": "private" }, { "constant": false, "id": 549, "name": "channels", "nodeType": "VariableDeclaration", "scope": 1626, "src": "3037:52:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel)" }, "typeName": { "id": 548, "keyType": { "id": 546, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "3045:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Mapping", "src": "3037:36:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel)" }, "valueType": { "contractScope": null, "id": 547, "name": "XBRTypes.Channel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4484, "src": "3056:16:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage_ptr", "typeString": "struct XBRTypes.Channel" } } }, "value": null, "visibility": "public" }, { "constant": false, "id": 553, "name": "channelClosingStates", "nodeType": "VariableDeclaration", "scope": 1626, "src": "3145:76:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState)" }, "typeName": { "id": 552, "keyType": { "id": 550, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "3153:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "nodeType": "Mapping", "src": "3145:48:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState)" }, "valueType": { "contractScope": null, "id": 551, "name": "XBRTypes.ChannelClosingState", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4503, "src": "3164:28:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage_ptr", "typeString": "struct XBRTypes.ChannelClosingState" } } }, "value": null, "visibility": "public" }, { "body": { "id": 564, "nodeType": "Block", "src": "3445:46:2", "statements": [ { "expression": { "argumentTypes": null, "id": 562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 558, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "3455:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 560, "name": "marketAdr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 555, "src": "3474:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 559, "name": "XBRMarket", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3361, "src": "3464:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRMarket_$3361_$", "typeString": "type(contract XBRMarket)" } }, "id": 561, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3464:20:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "src": "3455:29:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 563, "nodeType": "ExpressionStatement", "src": "3455:29:2" } ] }, "documentation": "Constructor for this contract, only called once (when deploying the network).\n\n /// @param marketAdr The XBR markets contract this instance is associated with.", "id": 565, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 556, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 555, "name": "marketAdr", "nodeType": "VariableDeclaration", "scope": 565, "src": "3419:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 554, "name": "address", "nodeType": "ElementaryTypeName", "src": "3419:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "3418:19:2" }, "returnParameters": { "id": 557, "nodeType": "ParameterList", "parameters": [], "src": "3445:0:2" }, "scope": 1626, "src": "3406:85:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 977, "nodeType": "Block", "src": "4697:5527:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 591, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "4767:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 589, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "4745:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketOwner", "nodeType": "MemberAccess", "referencedDeclaration": 3029, "src": "4745:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 592, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4745:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 594, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4788: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": 593, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4780:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 595, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4780:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "4745:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4d41524b4554", "id": 597, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4792: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": 588, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "4737:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 598, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4737:72:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 599, "nodeType": "ExpressionStatement", "src": "4737:72:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 601, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "4866:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 603, "indexExpression": { "argumentTypes": null, "id": 602, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 573, "src": "4875:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4866:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 604, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actor", "nodeType": "MemberAccess", "referencedDeclaration": 4473, "src": "4866:25:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 606, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "4903: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": 605, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4895:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 607, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4895:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "4866:39:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f414c52454144595f455849535453", "id": 609, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4907:32:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_4beb88a4e037e23ee20d276ba073882a38a4b6ed59d18e219d04158d381807a1", "typeString": "literal_string \"INVALID_CHANNEL_ALREADY_EXISTS\"" }, "value": "INVALID_CHANNEL_ALREADY_EXISTS" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_4beb88a4e037e23ee20d276ba073882a38a4b6ed59d18e219d04158d381807a1", "typeString": "literal_string \"INVALID_CHANNEL_ALREADY_EXISTS\"" } ], "id": 600, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "4858:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 610, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4858:82:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 611, "nodeType": "ExpressionStatement", "src": "4858:82:2" }, { "assignments": [ null, null, null, 615, null ], "declarations": [ null, null, null, { "constant": false, "id": 615, "name": "actor_member_level", "nodeType": "VariableDeclaration", "scope": 977, "src": "5036:39:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 614, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "5036:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" }, null ], "id": 622, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 620, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "5106:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 616, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "5081:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "5081:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 618, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5081:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 619, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", "referencedDeclaration": 3432, "src": "5081:24:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "function (address) view external returns (uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "id": 621, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5081:31:2", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "tuple(uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "5029:83:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 634, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 624, "name": "actor_member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 615, "src": "5130:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 625, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "5152:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "5152:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 627, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5152:27:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "5130:49:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 633, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 629, "name": "actor_member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 615, "src": "5199:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 630, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "5221:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "5221:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 632, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5221:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "5199:51:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5130:120:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f4143544f52", "id": 635, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5252:23:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b4c9320c8a32c95584e7f70b0e889c5c1844ab73f807976ce025bbf5a388e0b3", "typeString": "literal_string \"INVALID_CHANNEL_ACTOR\"" }, "value": "INVALID_CHANNEL_ACTOR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b4c9320c8a32c95584e7f70b0e889c5c1844ab73f807976ce025bbf5a388e0b3", "typeString": "literal_string \"INVALID_CHANNEL_ACTOR\"" } ], "id": 623, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "5122:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 636, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5122:154:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 637, "nodeType": "ExpressionStatement", "src": "5122:154:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 639, "name": "delegate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 577, "src": "5389:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5409: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": 640, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "5401:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5401:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "5389:22:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f44454c4547415445", "id": 644, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5413:26:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_26aaab248edcb940cb884ea0bd51dda070c63cf449fc2089d3e6af46e4427321", "typeString": "literal_string \"INVALID_CHANNEL_DELEGATE\"" }, "value": "INVALID_CHANNEL_DELEGATE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_26aaab248edcb940cb884ea0bd51dda070c63cf449fc2089d3e6af46e4427321", "typeString": "literal_string \"INVALID_CHANNEL_DELEGATE\"" } ], "id": 638, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "5381:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 645, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5381:59:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 646, "nodeType": "ExpressionStatement", "src": "5381:59:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 653, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 648, "name": "marketmaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 579, "src": "5561:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 651, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "5598:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 649, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "5576:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketMaker", "nodeType": "MemberAccess", "referencedDeclaration": 3068, "src": "5576:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 652, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5576:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "5561:46:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f4d41524b45544d414b4552", "id": 654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5609:29:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_65820281ff57bbb3adca7c34a111169d5f6200e7c91290040e091f381c24d9d2", "typeString": "literal_string \"INVALID_CHANNEL_MARKETMAKER\"" }, "value": "INVALID_CHANNEL_MARKETMAKER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_65820281ff57bbb3adca7c34a111169d5f6200e7c91290040e091f381c24d9d2", "typeString": "literal_string \"INVALID_CHANNEL_MARKETMAKER\"" } ], "id": 647, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "5553:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 655, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5553:86:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 656, "nodeType": "ExpressionStatement", "src": "5553:86:2" }, { "assignments": [ null, null, null, 660, null ], "declarations": [ null, null, null, { "constant": false, "id": 660, "name": "recipient_member_level", "nodeType": "VariableDeclaration", "scope": 977, "src": "5710:43:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "typeName": { "contractScope": null, "id": 659, "name": "XBRTypes.MemberLevel", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4337, "src": "5710:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "value": null, "visibility": "internal" }, null ], "id": 667, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 665, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 581, "src": "5784:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 661, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "5759:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "5759:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 663, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5759:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "members", "nodeType": "MemberAccess", "referencedDeclaration": 3432, "src": "5759:24:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "function (address) view external returns (uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "id": 666, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5759:35:2", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_enum$_MemberLevel_$4337_$_t_bytes_memory_$", "typeString": "tuple(uint256,string memory,string memory,enum XBRTypes.MemberLevel,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "5703:91:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 679, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 669, "name": "recipient_member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 660, "src": "5812:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 670, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "5838:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "5838:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 672, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ACTIVE", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5838:27:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "5812:53:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" }, "id": 678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 674, "name": "recipient_member_level", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 660, "src": "5885:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 675, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "5911:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MemberLevel", "nodeType": "MemberAccess", "referencedDeclaration": 4337, "src": "5911:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MemberLevel_$4337_$", "typeString": "type(enum XBRTypes.MemberLevel)" } }, "id": 677, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "VERIFIED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "5911:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MemberLevel_$4337", "typeString": "enum XBRTypes.MemberLevel" } }, "src": "5885:55:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "5812:128:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f524543495049454e54", "id": 680, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5942:27:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8251daa89f97df5c1e9b2cf51b0dbf9ac6febda5b871663655c492192bd29de2", "typeString": "literal_string \"INVALID_CHANNEL_RECIPIENT\"" }, "value": "INVALID_CHANNEL_RECIPIENT" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_8251daa89f97df5c1e9b2cf51b0dbf9ac6febda5b871663655c492192bd29de2", "typeString": "literal_string \"INVALID_CHANNEL_RECIPIENT\"" } ], "id": 668, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "5804:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 681, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5804:166:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 682, "nodeType": "ExpressionStatement", "src": "5804:166:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 684, "name": "openedAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 569, "src": "6303:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 685, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "6315:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6315:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6303:24:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 707, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 695, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 688, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "6332:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 689, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6332:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 690, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "6348:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 691, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "6348:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 692, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6348:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "PRESIGNED_TXN_MAX_AGE", "nodeType": "MemberAccess", "referencedDeclaration": 3415, "src": "6348:38:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 694, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6348:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6332:56:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 696, "name": "openedAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 569, "src": "6404:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 704, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 697, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "6417:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "6417:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 699, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "6432:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 700, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "6432:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 701, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6432:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "PRESIGNED_TXN_MAX_AGE", "nodeType": "MemberAccess", "referencedDeclaration": 3415, "src": "6432:38:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 703, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6432:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6417:55:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 705, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "6416:57:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6404:69:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6332:141:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 708, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "6331:143:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6303:171:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f424c4f434b5f4e554d424552", "id": 710, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6476:30:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2ebe3efb801d418c04b3a8312661839f0431fcb426ed2ad3d0401f3b9482654", "typeString": "literal_string \"INVALID_CHANNEL_BLOCK_NUMBER\"" }, "value": "INVALID_CHANNEL_BLOCK_NUMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c2ebe3efb801d418c04b3a8312661839f0431fcb426ed2ad3d0401f3b9482654", "typeString": "literal_string \"INVALID_CHANNEL_BLOCK_NUMBER\"" } ], "id": 683, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "6295:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 711, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6295:212:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 712, "nodeType": "ExpressionStatement", "src": "6295:212:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 716, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 714, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "6577:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6586:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "6577:10:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 726, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 717, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "6591:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 721, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "6629:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 719, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "6608:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketCoin", "nodeType": "MemberAccess", "referencedDeclaration": 3042, "src": "6608:20:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 722, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6608:30:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 718, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "6601:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 723, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6601:38:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 724, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 6271, "src": "6601:50:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 725, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6601:52:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6591:62:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "6577:76:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f414d4f554e54", "id": 728, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6655:24:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_14a3c80c44a4d2982bfa9b6611247f73ab54ad2698829f3b1b1d6d74bcd1fc71", "typeString": "literal_string \"INVALID_CHANNEL_AMOUNT\"" }, "value": "INVALID_CHANNEL_AMOUNT" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_14a3c80c44a4d2982bfa9b6611247f73ab54ad2698829f3b1b1d6d74bcd1fc71", "typeString": "literal_string \"INVALID_CHANNEL_AMOUNT\"" } ], "id": 713, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "6569:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 729, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6569:111:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 730, "nodeType": "ExpressionStatement", "src": "6569:111:2" }, { "assignments": [ 734 ], "declarations": [ { "constant": false, "id": 734, "name": "eip712_obj", "nodeType": "VariableDeclaration", "scope": 977, "src": "6829:44:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ChannelOpen_$4633_memory_ptr", "typeString": "struct XBRTypes.EIP712ChannelOpen" }, "typeName": { "contractScope": null, "id": 733, "name": "XBRTypes.EIP712ChannelOpen", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4633, "src": "6829:26:2", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ChannelOpen_$4633_storage_ptr", "typeString": "struct XBRTypes.EIP712ChannelOpen" } }, "value": null, "visibility": "internal" } ], "id": 759, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 737, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "6903:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 738, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "6903:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 739, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6903:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 740, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingChain", "nodeType": "MemberAccess", "referencedDeclaration": 3417, "src": "6903:31:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 741, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6903:33:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 742, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "6950:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "6950:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 744, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6950:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingContract", "nodeType": "MemberAccess", "referencedDeclaration": 3419, "src": "6950:34:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 746, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6950:36:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 748, "name": "ctype", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "6994:5:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } ], "id": 747, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6988:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, "id": 749, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6988:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { "argumentTypes": null, "id": 750, "name": "openedAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 569, "src": "7002:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 751, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "7012:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 752, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 573, "src": "7022:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 753, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "7045:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 754, "name": "delegate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 577, "src": "7052:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 755, "name": "marketmaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 579, "src": "7062:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 756, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 581, "src": "7075:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 757, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "7086:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint8", "typeString": "uint8" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 735, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "6876:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "EIP712ChannelOpen", "nodeType": "MemberAccess", "referencedDeclaration": 4633, "src": "6876:26:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EIP712ChannelOpen_$4633_storage_ptr_$", "typeString": "type(struct XBRTypes.EIP712ChannelOpen storage pointer)" } }, "id": 758, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6876:217:2", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ChannelOpen_$4633_memory", "typeString": "struct XBRTypes.EIP712ChannelOpen memory" } }, "nodeType": "VariableDeclarationStatement", "src": "6829:264:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 763, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "7127:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 764, "name": "eip712_obj", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 734, "src": "7134:10:2", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ChannelOpen_$4633_memory_ptr", "typeString": "struct XBRTypes.EIP712ChannelOpen memory" } }, { "argumentTypes": null, "id": 765, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 585, "src": "7146:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_EIP712ChannelOpen_$4633_memory_ptr", "typeString": "struct XBRTypes.EIP712ChannelOpen memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 761, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7111:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", "referencedDeclaration": 5379, "src": "7111:15:2", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_address_$_t_struct$_EIP712ChannelOpen_$4633_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,struct XBRTypes.EIP712ChannelOpen memory,bytes memory) pure returns (bool)" } }, "id": 766, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7111:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f5349474e4154555245", "id": 767, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7158:27:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d886d4ade998ecb205e1fefc42a31132d38c8abea82fd417e96076e69fb00909", "typeString": "literal_string \"INVALID_CHANNEL_SIGNATURE\"" }, "value": "INVALID_CHANNEL_SIGNATURE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_d886d4ade998ecb205e1fefc42a31132d38c8abea82fd417e96076e69fb00909", "typeString": "literal_string \"INVALID_CHANNEL_SIGNATURE\"" } ], "id": 760, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7103:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 768, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7103:83:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 769, "nodeType": "ExpressionStatement", "src": "7103:83:2" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "id": 774, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 770, "name": "ctype", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "7201:5:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 771, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7210:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelType", "nodeType": "MemberAccess", "referencedDeclaration": 4346, "src": "7210:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelType_$4346_$", "typeString": "type(enum XBRTypes.ChannelType)" } }, "id": 773, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PAYMENT", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7210:28:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "src": "7201:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "id": 844, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 840, "name": "ctype", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "8274:5:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 841, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "8283:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelType", "nodeType": "MemberAccess", "referencedDeclaration": 4346, "src": "8283:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelType_$4346_$", "typeString": "type(enum XBRTypes.ChannelType)" } }, "id": 843, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PAYING", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8283:27:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "src": "8274:36:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 918, "nodeType": "Block", "src": "9385:63:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "66616c7365", "id": 914, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "9407:5:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f54595045", "id": 915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9414:22:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_fbfa59dfbe22e6f88c0d2dbdec77c326fc15af10d0ef26e7cb6988cf4b7df145", "typeString": "literal_string \"INVALID_CHANNEL_TYPE\"" }, "value": "INVALID_CHANNEL_TYPE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_fbfa59dfbe22e6f88c0d2dbdec77c326fc15af10d0ef26e7cb6988cf4b7df145", "typeString": "literal_string \"INVALID_CHANNEL_TYPE\"" } ], "id": 913, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "9399:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 916, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9399:38:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 917, "nodeType": "ExpressionStatement", "src": "9399:38:2" } ] }, "id": 919, "nodeType": "IfStatement", "src": "8270:1178:2", "trueBody": { "id": 912, "nodeType": "Block", "src": "8312:1067:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 852, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 846, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "8482:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8482:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 850, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "8518:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 848, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "8496:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketMaker", "nodeType": "MemberAccess", "referencedDeclaration": 3068, "src": "8496:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 851, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8496:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "8482:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 853, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "8551:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 854, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8551:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 857, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "8587:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 855, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "8565:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketOwner", "nodeType": "MemberAccess", "referencedDeclaration": 3029, "src": "8565:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 858, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8565:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "8551:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8482:114:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "53454e4445525f4e4f545f4d41524b45544d414b45525f4f525f4f574e4552", "id": 861, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8598:33:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b1d2522058c29b148d9642dadae74002ca29a8863fcf8c0595dd9f0688471040", "typeString": "literal_string \"SENDER_NOT_MARKETMAKER_OR_OWNER\"" }, "value": "SENDER_NOT_MARKETMAKER_OR_OWNER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b1d2522058c29b148d9642dadae74002ca29a8863fcf8c0595dd9f0688471040", "typeString": "literal_string \"SENDER_NOT_MARKETMAKER_OR_OWNER\"" } ], "id": 845, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "8474:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 862, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8474:158:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 863, "nodeType": "ExpressionStatement", "src": "8474:158:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 881, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 867, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "8722:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 868, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "8732:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 869, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "8739:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 870, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ActorType", "nodeType": "MemberAccess", "referencedDeclaration": 4342, "src": "8739:18:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$4342_$", "typeString": "type(enum XBRTypes.ActorType)" } }, "id": 871, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PROVIDER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8739:27:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } ], "expression": { "argumentTypes": null, "id": 865, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "8707:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 866, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isActor", "nodeType": "MemberAccess", "referencedDeclaration": 3146, "src": "8707:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$_t_address_$_t_enum$_ActorType_$4342_$returns$_t_bool_$", "typeString": "function (bytes16,address,enum XBRTypes.ActorType) view external returns (bool)" } }, "id": 872, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8707:60:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 875, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "8806:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 876, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "8816:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 877, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "8823:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 878, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ActorType", "nodeType": "MemberAccess", "referencedDeclaration": 4342, "src": "8823:18:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$4342_$", "typeString": "type(enum XBRTypes.ActorType)" } }, "id": 879, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PROVIDER_CONSUMER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "8823:36:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } ], "expression": { "argumentTypes": null, "id": 873, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "8791:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 874, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isActor", "nodeType": "MemberAccess", "referencedDeclaration": 3146, "src": "8791:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$_t_address_$_t_enum$_ActorType_$4342_$returns$_t_bool_$", "typeString": "function (bytes16,address,enum XBRTypes.ActorType) view external returns (bool)" } }, "id": 880, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8791:69:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "8707:153:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4143544f525f4e4f545f50524f5649444552", "id": 882, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8862:20:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_70b8f879ac34bc015c4f7ddcfd98103508425364979edcbcf57d4c0710703446", "typeString": "literal_string \"ACTOR_NOT_PROVIDER\"" }, "value": "ACTOR_NOT_PROVIDER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_70b8f879ac34bc015c4f7ddcfd98103508425364979edcbcf57d4c0710703446", "typeString": "literal_string \"ACTOR_NOT_PROVIDER\"" } ], "id": 864, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "8699:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 883, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8699:184:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 884, "nodeType": "ExpressionStatement", "src": "8699:184:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 888, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 886, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 581, "src": "9026:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 887, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "9039:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "9026:18:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "524543495049454e545f4e4f545f4143544f52", "id": 889, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9046:21:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_23a51434e932bbde6b621796ac928a48e309be07af8ed25f56094687cd91472b", "typeString": "literal_string \"RECIPIENT_NOT_ACTOR\"" }, "value": "RECIPIENT_NOT_ACTOR" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_23a51434e932bbde6b621796ac928a48e309be07af8ed25f56094687cd91472b", "typeString": "literal_string \"RECIPIENT_NOT_ACTOR\"" } ], "id": 885, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "9018:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 890, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9018:50:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 891, "nodeType": "ExpressionStatement", "src": "9018:50:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 902, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "9268:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 900, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "9246:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 901, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketMaker", "nodeType": "MemberAccess", "referencedDeclaration": 3068, "src": "9246:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 903, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9246:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 905, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6390, "src": "9287:4:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRChannel_$1626", "typeString": "contract XBRChannel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRChannel_$1626", "typeString": "contract XBRChannel" } ], "id": 904, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9279:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 906, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9279:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 907, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "9294:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 896, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "9222:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 894, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "9201:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 895, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketCoin", "nodeType": "MemberAccess", "referencedDeclaration": 3042, "src": "9201:20:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 897, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9201:30:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 893, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "9194:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 898, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9194:38:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 6316, "src": "9194:51: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": 908, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9194:107:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4f50454e5f4348414e4e454c5f5452414e534645525f46524f4d5f4d41524b45544d414b45525f4641494c4544", "id": 909, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9319:47:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a371b65ee366892bece9db10144bccc45ae1bc7bfd5331f06d6f0dd828e9eeb6", "typeString": "literal_string \"OPEN_CHANNEL_TRANSFER_FROM_MARKETMAKER_FAILED\"" }, "value": "OPEN_CHANNEL_TRANSFER_FROM_MARKETMAKER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a371b65ee366892bece9db10144bccc45ae1bc7bfd5331f06d6f0dd828e9eeb6", "typeString": "literal_string \"OPEN_CHANNEL_TRANSFER_FROM_MARKETMAKER_FAILED\"" } ], "id": 892, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "9186:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 910, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9186:181:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 911, "nodeType": "ExpressionStatement", "src": "9186:181:2" } ] } }, "id": 920, "nodeType": "IfStatement", "src": "7197:2251:2", "trueBody": { "id": 839, "nodeType": "Block", "src": "7240:1024:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 787, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 782, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 776, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "7392:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7392:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 780, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "7428:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 778, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "7406:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 779, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketMaker", "nodeType": "MemberAccess", "referencedDeclaration": 3068, "src": "7406:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 781, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7406:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7392:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 786, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 783, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6348, "src": "7461:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7461:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 785, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "7475:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7461:19:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "7392:88:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "53454e4445525f4e4f545f4d41524b45544d414b45525f4f525f4255594552", "id": 788, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7482:33:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ee470891545e65113c890c6563841d34200946a2118b082518c760c8b6720492", "typeString": "literal_string \"SENDER_NOT_MARKETMAKER_OR_BUYER\"" }, "value": "SENDER_NOT_MARKETMAKER_OR_BUYER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_ee470891545e65113c890c6563841d34200946a2118b082518c760c8b6720492", "typeString": "literal_string \"SENDER_NOT_MARKETMAKER_OR_BUYER\"" } ], "id": 775, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7384:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 789, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7384:132:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 790, "nodeType": "ExpressionStatement", "src": "7384:132:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 808, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 794, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "7606:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 795, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "7616:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 796, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7623:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 797, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ActorType", "nodeType": "MemberAccess", "referencedDeclaration": 4342, "src": "7623:18:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$4342_$", "typeString": "type(enum XBRTypes.ActorType)" } }, "id": 798, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CONSUMER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7623:27:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } ], "expression": { "argumentTypes": null, "id": 792, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "7591:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 793, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isActor", "nodeType": "MemberAccess", "referencedDeclaration": 3146, "src": "7591:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$_t_address_$_t_enum$_ActorType_$4342_$returns$_t_bool_$", "typeString": "function (bytes16,address,enum XBRTypes.ActorType) view external returns (bool)" } }, "id": 799, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7591:60:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 802, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "7690:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 803, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "7700:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 804, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "7707:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 805, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ActorType", "nodeType": "MemberAccess", "referencedDeclaration": 4342, "src": "7707:18:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ActorType_$4342_$", "typeString": "type(enum XBRTypes.ActorType)" } }, "id": 806, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PROVIDER_CONSUMER", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "7707:36:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_enum$_ActorType_$4342", "typeString": "enum XBRTypes.ActorType" } ], "expression": { "argumentTypes": null, "id": 800, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "7675:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 801, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isActor", "nodeType": "MemberAccess", "referencedDeclaration": 3146, "src": "7675:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$_t_address_$_t_enum$_ActorType_$4342_$returns$_t_bool_$", "typeString": "function (bytes16,address,enum XBRTypes.ActorType) view external returns (bool)" } }, "id": 807, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7675:69:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "7591:153:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4143544f525f4e4f545f434f4e53554d4552", "id": 809, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7746:20:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_795b997b10f778987ea6940ad4fc8dabe046e3d266ff1731fd9149734b5c0c16", "typeString": "literal_string \"ACTOR_NOT_CONSUMER\"" }, "value": "ACTOR_NOT_CONSUMER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_795b997b10f778987ea6940ad4fc8dabe046e3d266ff1731fd9149734b5c0c16", "typeString": "literal_string \"ACTOR_NOT_CONSUMER\"" } ], "id": 791, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7583:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 810, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7583:184:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 811, "nodeType": "ExpressionStatement", "src": "7583:184:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 818, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 813, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 581, "src": "7911:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 816, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "7946:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 814, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "7924:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 815, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketOwner", "nodeType": "MemberAccess", "referencedDeclaration": 3029, "src": "7924:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 817, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7924:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7911:44:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "524543495049454e545f4e4f545f4d41524b4554", "id": 819, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7957:22:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae9cee951d797727013e3e6c7910c4bfe9fe8140ac422a2dc2bb71514e221161", "typeString": "literal_string \"RECIPIENT_NOT_MARKET\"" }, "value": "RECIPIENT_NOT_MARKET" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_ae9cee951d797727013e3e6c7910c4bfe9fe8140ac422a2dc2bb71514e221161", "typeString": "literal_string \"RECIPIENT_NOT_MARKET\"" } ], "id": 812, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "7903:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 820, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "7903:77:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 821, "nodeType": "ExpressionStatement", "src": "7903:77:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 830, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "8163:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 832, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6390, "src": "8178:4:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRChannel_$1626", "typeString": "contract XBRChannel" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_XBRChannel_$1626", "typeString": "contract XBRChannel" } ], "id": 831, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8170:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 833, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8170:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 834, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "8185:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 826, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "8139:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 824, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "8118:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketCoin", "nodeType": "MemberAccess", "referencedDeclaration": 3042, "src": "8118:20:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 827, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8118:30:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 823, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "8111:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 828, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8111:38:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", "referencedDeclaration": 6316, "src": "8111:51: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": 835, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8111:81:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4f50454e5f4348414e4e454c5f5452414e534645525f46524f4d5f4143544f525f4641494c4544", "id": 836, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8210:41:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2633ab66d418aba1adb34f789f77591301434d99fa79524f067a61145cea6c84", "typeString": "literal_string \"OPEN_CHANNEL_TRANSFER_FROM_ACTOR_FAILED\"" }, "value": "OPEN_CHANNEL_TRANSFER_FROM_ACTOR_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_2633ab66d418aba1adb34f789f77591301434d99fa79524f067a61145cea6c84", "typeString": "literal_string \"OPEN_CHANNEL_TRANSFER_FROM_ACTOR_FAILED\"" } ], "id": 822, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "8103:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 837, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "8103:149:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 838, "nodeType": "ExpressionStatement", "src": "8103:149:2" } ] } }, { "expression": { "argumentTypes": null, "id": 938, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 921, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "9573:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 923, "indexExpression": { "argumentTypes": null, "id": 922, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 573, "src": "9582:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9573:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 926, "name": "openedAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 569, "src": "9612:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 927, "name": "channelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 545, "src": "9622:10:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 928, "name": "ctype", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "9634:5:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, { "argumentTypes": null, "id": 929, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "9641:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 930, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 573, "src": "9651:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 931, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "9662:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 932, "name": "delegate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 577, "src": "9681:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 933, "name": "marketmaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 579, "src": "9691:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 934, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 581, "src": "9704:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 935, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "9715:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 936, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 585, "src": "9723:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 924, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "9595:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 925, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Channel", "nodeType": "MemberAccess", "referencedDeclaration": 4484, "src": "9595:16:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Channel_$4484_storage_ptr_$", "typeString": "type(struct XBRTypes.Channel storage pointer)" } }, "id": 937, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9595:138:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_memory", "typeString": "struct XBRTypes.Channel memory" } }, "src": "9573:160:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 939, "nodeType": "ExpressionStatement", "src": "9573:160:2" }, { "expression": { "argumentTypes": null, "id": 957, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 940, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "9805:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 942, "indexExpression": { "argumentTypes": null, "id": 941, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 573, "src": "9826:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9805:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 945, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "9868:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 946, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "9868:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 947, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OPEN", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "9868:26:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, { "argumentTypes": null, "hexValue": "30", "id": 948, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9908:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "argumentTypes": null, "hexValue": "30", "id": 949, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9911:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "argumentTypes": null, "hexValue": "30", "id": 950, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9914:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "argumentTypes": null, "hexValue": "30", "id": 951, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9917:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "argumentTypes": null, "hexValue": "30", "id": 952, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9920:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "argumentTypes": null, "hexValue": "30", "id": 953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9923:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "argumentTypes": null, "hexValue": "", "id": 954, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9926:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, { "argumentTypes": null, "hexValue": "", "id": 955, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9930:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "expression": { "argumentTypes": null, "id": 943, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "9839:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelClosingState", "nodeType": "MemberAccess", "referencedDeclaration": 4503, "src": "9839:28:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_ChannelClosingState_$4503_storage_ptr_$", "typeString": "type(struct XBRTypes.ChannelClosingState storage pointer)" } }, "id": 956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "9839:94:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_memory", "typeString": "struct XBRTypes.ChannelClosingState memory" } }, "src": "9805:128:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 958, "nodeType": "ExpressionStatement", "src": "9805:128:2" }, { "expression": { "argumentTypes": null, "id": 963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 959, "name": "channelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 545, "src": "9999:10:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 960, "name": "channelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 545, "src": "10012:10:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10025:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "10012:14:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "9999:27:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 964, "nodeType": "ExpressionStatement", "src": "9999:27:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 966, "name": "ctype", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "10130:5:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, { "argumentTypes": null, "id": 967, "name": "marketId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 571, "src": "10137:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 968, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 573, "src": "10147:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 969, "name": "actor", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 575, "src": "10158:5:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 970, "name": "delegate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 577, "src": "10165:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 971, "name": "marketmaker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 579, "src": "10175:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 972, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 581, "src": "10188:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 973, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 583, "src": "10199:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 974, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 585, "src": "10207:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 965, "name": "Opened", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 508, "src": "10123:6:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_enum$_ChannelType_$4346_$_t_bytes16_$_t_bytes16_$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (enum XBRTypes.ChannelType,bytes16,bytes16,address,address,address,address,uint256,bytes memory)" } }, "id": 975, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "10123:94:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 976, "nodeType": "EmitStatement", "src": "10118:99:2" } ] }, "documentation": "Open a new XBR payment/paying channel for processing off-chain micro-transactions.\n\n /// @param ctype Channel type: payment or paying channel.\n @param openedAt Block number when the channel opening signature was created.\n @param marketId The ID of the XBR market this channel is associated with.\n @param channelId The ID of the new XBR channel (must be unique).\n @param actor The actor (buyer/seller in the market) that opened this channel.\n @param delegate The delegate (off-chain) allowed to spend/earn-on this channel (off-chain)\n in the name of the actor (buyer/seller in the market).\n @param marketmaker The off-chain market maker executing the channel.\n @param recipient The receiver (on-chain) of the channel payout.\n @param amount The amount initially transfered to and held in the channel until closed.\n @param signature EIP712 signature, signed by the member.", "id": 978, "implemented": true, "kind": "function", "modifiers": [], "name": "openChannel", "nodeType": "FunctionDefinition", "parameters": { "id": 586, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 567, "name": "ctype", "nodeType": "VariableDeclaration", "scope": 978, "src": "4478:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "typeName": { "contractScope": null, "id": 566, "name": "XBRTypes.ChannelType", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 4346, "src": "4478:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 569, "name": "openedAt", "nodeType": "VariableDeclaration", "scope": 978, "src": "4506:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 568, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4506:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 571, "name": "marketId", "nodeType": "VariableDeclaration", "scope": 978, "src": "4524:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 570, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4524:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 573, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 978, "src": "4542:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 572, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "4542:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 575, "name": "actor", "nodeType": "VariableDeclaration", "scope": 978, "src": "4569:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 574, "name": "address", "nodeType": "ElementaryTypeName", "src": "4569:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 577, "name": "delegate", "nodeType": "VariableDeclaration", "scope": 978, "src": "4584:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 576, "name": "address", "nodeType": "ElementaryTypeName", "src": "4584:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 579, "name": "marketmaker", "nodeType": "VariableDeclaration", "scope": 978, "src": "4602:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 578, "name": "address", "nodeType": "ElementaryTypeName", "src": "4602:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 581, "name": "recipient", "nodeType": "VariableDeclaration", "scope": 978, "src": "4623:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 580, "name": "address", "nodeType": "ElementaryTypeName", "src": "4623:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 583, "name": "amount", "nodeType": "VariableDeclaration", "scope": 978, "src": "4642:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 582, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4642:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 585, "name": "signature", "nodeType": "VariableDeclaration", "scope": 978, "src": "4666:22:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 584, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4666:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "4477:212:2" }, "returnParameters": { "id": 587, "nodeType": "ParameterList", "parameters": [], "src": "4697:0:2" }, "scope": 1626, "src": "4456:5768:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1245, "nodeType": "Block", "src": "11031:3038:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 996, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "11080:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 998, "indexExpression": { "argumentTypes": null, "id": 997, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "11089:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11080:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 999, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actor", "nodeType": "MemberAccess", "referencedDeclaration": 4473, "src": "11080:25:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 1001, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11117: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": 1000, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "11109:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 1002, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11109:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "11080:39:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4348414e4e454c", "id": 1004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11121:17:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c56efb536d48c27920d5566ee66271307f2445d6c9a35f344919a56b4d6497c7", "typeString": "literal_string \"NO_SUCH_CHANNEL\"" }, "value": "NO_SUCH_CHANNEL" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c56efb536d48c27920d5566ee66271307f2445d6c9a35f344919a56b4d6497c7", "typeString": "literal_string \"NO_SUCH_CHANNEL\"" } ], "id": 995, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "11072:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1005, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11072:67:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1006, "nodeType": "ExpressionStatement", "src": "11072:67:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" }, "id": 1015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1008, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "11234:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1010, "indexExpression": { "argumentTypes": null, "id": 1009, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "11255:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11234:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1011, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "11234:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1012, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "11275:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "11275:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1014, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "NULL", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11275:26:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "11234:67:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4e4f5f535543485f4348414e4e454c", "id": 1016, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11303:17:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c56efb536d48c27920d5566ee66271307f2445d6c9a35f344919a56b4d6497c7", "typeString": "literal_string \"NO_SUCH_CHANNEL\"" }, "value": "NO_SUCH_CHANNEL" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c56efb536d48c27920d5566ee66271307f2445d6c9a35f344919a56b4d6497c7", "typeString": "literal_string \"NO_SUCH_CHANNEL\"" } ], "id": 1007, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "11226:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1017, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11226:95:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1018, "nodeType": "ExpressionStatement", "src": "11226:95:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1036, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" }, "id": 1027, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1020, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "11402:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1022, "indexExpression": { "argumentTypes": null, "id": 1021, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "11423:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11402:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1023, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "11402:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1024, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "11443:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "11443:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1026, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OPEN", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11443:26:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "11402:67:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" }, "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1028, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "11489:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1030, "indexExpression": { "argumentTypes": null, "id": 1029, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "11510:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11489:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1031, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "11489:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1032, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "11530:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "11530:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1034, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSING", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11530:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "11489:70:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "11402:157:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f4e4f545f4f50454e", "id": 1037, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11561:18:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1733d0940574124879026869735fc1aed76a568ff05d8ef9b7bc566846df11f6", "typeString": "literal_string \"CHANNEL_NOT_OPEN\"" }, "value": "CHANNEL_NOT_OPEN" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_1733d0940574124879026869735fc1aed76a568ff05d8ef9b7bc566846df11f6", "typeString": "literal_string \"CHANNEL_NOT_OPEN\"" } ], "id": 1019, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "11394:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11394:186:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1039, "nodeType": "ExpressionStatement", "src": "11394:186:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1066, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1044, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1041, "name": "closeAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 982, "src": "11708:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1042, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "11719:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11719:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11708:23:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1052, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1045, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "11736:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11736:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1047, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "11752:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "11752:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1049, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11752:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1050, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "PRESIGNED_TXN_MAX_AGE", "nodeType": "MemberAccess", "referencedDeclaration": 3415, "src": "11752:38:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1051, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11752:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11736:56:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1053, "name": "closeAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 982, "src": "11808:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1054, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "11820:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1055, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "number", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "11820:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1056, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "11835:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1057, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "11835:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1058, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11835:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1059, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "PRESIGNED_TXN_MAX_AGE", "nodeType": "MemberAccess", "referencedDeclaration": 3415, "src": "11835:38:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1060, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11835:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11820:55:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 1062, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "11819:57:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "11808:68:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "11736:140:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1065, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "11735:142:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "11708:169:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4348414e4e454c5f424c4f434b5f4e554d424552", "id": 1067, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11879:30:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2ebe3efb801d418c04b3a8312661839f0431fcb426ed2ad3d0401f3b9482654", "typeString": "literal_string \"INVALID_CHANNEL_BLOCK_NUMBER\"" }, "value": "INVALID_CHANNEL_BLOCK_NUMBER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c2ebe3efb801d418c04b3a8312661839f0431fcb426ed2ad3d0401f3b9482654", "typeString": "literal_string \"INVALID_CHANNEL_BLOCK_NUMBER\"" } ], "id": 1040, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "11700:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11700:210:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1069, "nodeType": "ExpressionStatement", "src": "11700:210:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1073, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "11981:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1075, "indexExpression": { "argumentTypes": null, "id": 1074, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "11990:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11981:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1076, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "delegate", "nodeType": "MemberAccess", "referencedDeclaration": 4475, "src": "11981:28:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1079, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "12039:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "12039:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1081, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12039:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingChain", "nodeType": "MemberAccess", "referencedDeclaration": 3417, "src": "12039:31:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1083, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12039:33:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1084, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "12086:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "12086:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1086, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12086:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1087, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingContract", "nodeType": "MemberAccess", "referencedDeclaration": 3419, "src": "12086:34:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 1088, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12086:36:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1089, "name": "closeAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 982, "src": "12124:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1090, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "12133:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1092, "indexExpression": { "argumentTypes": null, "id": 1091, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "12142:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12133:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1093, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "12133:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1094, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "12163:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1095, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "12174:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 1096, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "12205:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1097, "name": "isFinal", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 988, "src": "12214:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "expression": { "argumentTypes": null, "id": 1077, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "12011:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "EIP712ChannelClose", "nodeType": "MemberAccess", "referencedDeclaration": 4650, "src": "12011:27:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EIP712ChannelClose_$4650_storage_ptr_$", "typeString": "type(struct XBRTypes.EIP712ChannelClose storage pointer)" } }, "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12011:211:2", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ChannelClose_$4650_memory", "typeString": "struct XBRTypes.EIP712ChannelClose memory" } }, { "argumentTypes": null, "id": 1099, "name": "delegateSignature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 990, "src": "12224:17:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_EIP712ChannelClose_$4650_memory", "typeString": "struct XBRTypes.EIP712ChannelClose memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 1071, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "11965:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", "referencedDeclaration": 5424, "src": "11965:15:2", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_address_$_t_struct$_EIP712ChannelClose_$4650_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,struct XBRTypes.EIP712ChannelClose memory,bytes memory) pure returns (bool)" } }, "id": 1100, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11965:277:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f44454c45474154455f5349474e4154555245", "id": 1101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12244:28:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f6c033178f13eb96290d731e97a1d50a66e17528304772888b6b9254c159be7a", "typeString": "literal_string \"INVALID_DELEGATE_SIGNATURE\"" }, "value": "INVALID_DELEGATE_SIGNATURE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f6c033178f13eb96290d731e97a1d50a66e17528304772888b6b9254c159be7a", "typeString": "literal_string \"INVALID_DELEGATE_SIGNATURE\"" } ], "id": 1070, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "11957:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "11957:316:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1103, "nodeType": "ExpressionStatement", "src": "11957:316:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1107, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "12348:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1109, "indexExpression": { "argumentTypes": null, "id": 1108, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "12357:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12348:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1110, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketmaker", "nodeType": "MemberAccess", "referencedDeclaration": 4477, "src": "12348:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1113, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "12409:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "12409:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1115, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12409:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingChain", "nodeType": "MemberAccess", "referencedDeclaration": 3417, "src": "12409:31:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1117, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12409:33:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1118, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "12456:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "12456:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1120, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12456:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verifyingContract", "nodeType": "MemberAccess", "referencedDeclaration": 3419, "src": "12456:34:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12456:36:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1123, "name": "closeAt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 982, "src": "12494:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1124, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "12503:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1126, "indexExpression": { "argumentTypes": null, "id": 1125, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "12512:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12503:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1127, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "12503:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1128, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "12533:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1129, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "12544:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 1130, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "12575:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1131, "name": "isFinal", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 988, "src": "12584:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "expression": { "argumentTypes": null, "id": 1111, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "12381:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1112, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "EIP712ChannelClose", "nodeType": "MemberAccess", "referencedDeclaration": 4650, "src": "12381:27:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_EIP712ChannelClose_$4650_storage_ptr_$", "typeString": "type(struct XBRTypes.EIP712ChannelClose storage pointer)" } }, "id": 1132, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12381:211:2", "typeDescriptions": { "typeIdentifier": "t_struct$_EIP712ChannelClose_$4650_memory", "typeString": "struct XBRTypes.EIP712ChannelClose memory" } }, { "argumentTypes": null, "id": 1133, "name": "marketmakerSignature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 992, "src": "12594:20:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_struct$_EIP712ChannelClose_$4650_memory", "typeString": "struct XBRTypes.EIP712ChannelClose memory" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 1105, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "12332:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "verify", "nodeType": "MemberAccess", "referencedDeclaration": 5424, "src": "12332:15:2", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_address_$_t_struct$_EIP712ChannelClose_$4650_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,struct XBRTypes.EIP712ChannelClose memory,bytes memory) pure returns (bool)" } }, "id": 1134, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12332:283:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f4d41524b45544d414b45525f5349474e4154555245", "id": 1135, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12617:31:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_af498d44c5e3f7d6518ba1fa59b37f1c5e15a49aee41b1152fa81030781158fc", "typeString": "literal_string \"INVALID_MARKETMAKER_SIGNATURE\"" }, "value": "INVALID_MARKETMAKER_SIGNATURE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_af498d44c5e3f7d6518ba1fa59b37f1c5e15a49aee41b1152fa81030781158fc", "typeString": "literal_string \"INVALID_MARKETMAKER_SIGNATURE\"" } ], "id": 1104, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "12324:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1136, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12324:325:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1137, "nodeType": "ExpressionStatement", "src": "12324:325:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1141, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "hexValue": "30", "id": 1139, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12721:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "id": 1140, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "12726:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "12721:12:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1142, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "12737:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1143, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "12748:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1145, "indexExpression": { "argumentTypes": null, "id": 1144, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "12757:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12748:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1146, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 4481, "src": "12748:26:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "12737:37:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "12721:53:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f434c4f53494e475f42414c414e4345", "id": 1149, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12776:25:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0f0ac1781488729e56a6fc927e7d023026b6bb50fec757014325f8609c1edc1", "typeString": "literal_string \"INVALID_CLOSING_BALANCE\"" }, "value": "INVALID_CLOSING_BALANCE" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b0f0ac1781488729e56a6fc927e7d023026b6bb50fec757014325f8609c1edc1", "typeString": "literal_string \"INVALID_CLOSING_BALANCE\"" } ], "id": 1138, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "12713:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1150, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12713:89:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1151, "nodeType": "ExpressionStatement", "src": "12713:89:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 1155, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1153, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "12875:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "31", "id": 1154, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12896:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "12875:22:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e56414c49445f434c4f53494e475f534551", "id": 1156, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "12899:21:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3044365ff5046e2f24bdd8131d0ad9a3b0b049c94600b8a25ac1bbeee7efafbd", "typeString": "literal_string \"INVALID_CLOSING_SEQ\"" }, "value": "INVALID_CLOSING_SEQ" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3044365ff5046e2f24bdd8131d0ad9a3b0b049c94600b8a25ac1bbeee7efafbd", "typeString": "literal_string \"INVALID_CLOSING_SEQ\"" } ], "id": 1152, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "12867:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1157, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "12867:54:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1158, "nodeType": "ExpressionStatement", "src": "12867:54:2" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" }, "id": 1166, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1159, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "12984:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1161, "indexExpression": { "argumentTypes": null, "id": 1160, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13005:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12984:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1162, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "12984:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1163, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "13025:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "13025:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1165, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSING", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13025:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "12984:70:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1199, "nodeType": "IfStatement", "src": "12980:540:2", "trueBody": { "id": 1198, "nodeType": "Block", "src": "13056:464:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1168, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "13131:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1170, "indexExpression": { "argumentTypes": null, "id": 1169, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13152:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13131:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1171, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closedAt", "nodeType": "MemberAccess", "referencedDeclaration": 4494, "src": "13131:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1172, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13175:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "13131:45:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "494e5445524e414c5f4552524f525f434c4f5345445f41545f4e4f4e5a45524f", "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13178:34:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5d63383c7b8e7623d03bd7c9055f2890f0e4ff829e64e24d32f14f2882e969f3", "typeString": "literal_string \"INTERNAL_ERROR_CLOSED_AT_NONZERO\"" }, "value": "INTERNAL_ERROR_CLOSED_AT_NONZERO" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_5d63383c7b8e7623d03bd7c9055f2890f0e4ff829e64e24d32f14f2882e969f3", "typeString": "literal_string \"INTERNAL_ERROR_CLOSED_AT_NONZERO\"" } ], "id": 1167, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "13123:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1175, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13123:90:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1176, "nodeType": "ExpressionStatement", "src": "13123:90:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1184, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1178, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "13235:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13235:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1180, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "13253:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1182, "indexExpression": { "argumentTypes": null, "id": 1181, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13274:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13253:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1183, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingAt", "nodeType": "MemberAccess", "referencedDeclaration": 4488, "src": "13253:41:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "13235:59:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f54494d454f5554", "id": 1185, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13296:17:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2f1fa2053e0350673863473956465393d1f0eda87a14bad59c41799d0c64f3b0", "typeString": "literal_string \"CHANNEL_TIMEOUT\"" }, "value": "CHANNEL_TIMEOUT" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_2f1fa2053e0350673863473956465393d1f0eda87a14bad59c41799d0c64f3b0", "typeString": "literal_string \"CHANNEL_TIMEOUT\"" } ], "id": 1177, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "13227:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1186, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13227:87:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1187, "nodeType": "ExpressionStatement", "src": "13227:87:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 1194, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1189, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "13422:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1191, "indexExpression": { "argumentTypes": null, "id": 1190, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13443:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13422:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1192, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingSeq", "nodeType": "MemberAccess", "referencedDeclaration": 4490, "src": "13422:42:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "argumentTypes": null, "id": 1193, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "13467:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "13422:62:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4f555444415445445f5452414e53414354494f4e", "id": 1195, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13486:22:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_69a39add021b1191a84ee8f2b6c6c0cff6c615b9dd9611085e766bbb02a07159", "typeString": "literal_string \"OUTDATED_TRANSACTION\"" }, "value": "OUTDATED_TRANSACTION" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_69a39add021b1191a84ee8f2b6c6c0cff6c615b9dd9611085e766bbb02a07159", "typeString": "literal_string \"OUTDATED_TRANSACTION\"" } ], "id": 1188, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "13414:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1196, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13414:95:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1197, "nodeType": "ExpressionStatement", "src": "13414:95:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1200, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "13598:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1201, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "13618:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1203, "indexExpression": { "argumentTypes": null, "id": 1202, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13639:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13618:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1204, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingSeq", "nodeType": "MemberAccess", "referencedDeclaration": 4490, "src": "13618:42:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "13598:62:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1213, "nodeType": "IfStatement", "src": "13594:142:2", "trueBody": { "id": 1212, "nodeType": "Block", "src": "13662:74:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1207, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13687:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1208, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "13698:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 1209, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "13717:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1206, "name": "_doClosing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1388, "src": "13676:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes16_$_t_uint32_$_t_uint256_$returns$__$", "typeString": "function (bytes16,uint32,uint256)" } }, "id": 1210, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "13676:49:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1211, "nodeType": "ExpressionStatement", "src": "13676:49:2" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1236, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1218, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1214, "name": "isFinal", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 988, "src": "13790:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1215, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "13801:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1216, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13812:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "13801:12:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "13790:23:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" }, "id": 1226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1219, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "13830:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1221, "indexExpression": { "argumentTypes": null, "id": 1220, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13851:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13830:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1222, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "13830:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1223, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "13871:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "13871:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1225, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSING", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13871:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "13830:70:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1227, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "13904:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "13904:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1229, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "13923:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1231, "indexExpression": { "argumentTypes": null, "id": 1230, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "13944:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13923:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1232, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingAt", "nodeType": "MemberAccess", "referencedDeclaration": 4488, "src": "13923:41:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "13904:60:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "13830:134:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 1235, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "13829:136:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "13790:175:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1244, "nodeType": "IfStatement", "src": "13786:277:2", "trueBody": { "id": 1243, "nodeType": "Block", "src": "13967:96:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1238, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 980, "src": "14014:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1239, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 984, "src": "14025:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "argumentTypes": null, "id": 1240, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 986, "src": "14044:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1237, "name": "_doClose", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1625, "src": "14005:8:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes16_$_t_uint32_$_t_uint256_$returns$__$", "typeString": "function (bytes16,uint32,uint256)" } }, "id": 1241, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14005:47:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1242, "nodeType": "ExpressionStatement", "src": "14005:47:2" } ] } } ] }, "documentation": "Trigger closing this payment channel. When the first participant has called `close()`\nsubmitting its latest transaction/state, a timeout period begins during which the\nother party of the payment channel has to submit its latest transaction/state too.\nWhen both transaction have been submitted, and the submitted transactions/states agree,\nthe channel immediately closes, and the consumed amount of token in the channel is\ntransferred to the channel recipient, and the remaining amount of token is transferred\nback to the original sender.", "id": 1246, "implemented": true, "kind": "function", "modifiers": [], "name": "closeChannel", "nodeType": "FunctionDefinition", "parameters": { "id": 993, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 980, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10856:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 979, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "10856:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 982, "name": "closeAt", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10875:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 981, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10875:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 984, "name": "closingChannelSeq", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10892:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 983, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "10892:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 986, "name": "balance", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10918:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 985, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10918:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 988, "name": "isFinal", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10935:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 987, "name": "bool", "nodeType": "ElementaryTypeName", "src": "10935:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 990, "name": "delegateSignature", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10957:30:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 989, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "10957:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 992, "name": "marketmakerSignature", "nodeType": "VariableDeclaration", "scope": 1246, "src": "10989:33:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 991, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "10989:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "10855:168:2" }, "returnParameters": { "id": 994, "nodeType": "ParameterList", "parameters": [], "src": "11031:0:2" }, "scope": 1626, "src": "10833:3236:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 1387, "nodeType": "Block", "src": "14165:2169:2", "statements": [ { "assignments": [ 1256 ], "declarations": [ { "constant": false, "id": 1256, "name": "coin", "nodeType": "VariableDeclaration", "scope": 1387, "src": "14242:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1255, "name": "address", "nodeType": "ElementaryTypeName", "src": "14242:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 1264, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1259, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "14278:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1261, "indexExpression": { "argumentTypes": null, "id": 1260, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "14287:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14278:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1262, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "14278:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 1257, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "14257:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketCoin", "nodeType": "MemberAccess", "referencedDeclaration": 3042, "src": "14257:20:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 1263, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14257:50:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "14242:65:2" }, { "assignments": [ 1266 ], "declarations": [ { "constant": false, "id": 1266, "name": "earned", "nodeType": "VariableDeclaration", "scope": 1387, "src": "14421:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1265, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14421:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1274, "initialValue": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1272, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1267, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "14439:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1269, "indexExpression": { "argumentTypes": null, "id": 1268, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "14448:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14439:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1270, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 4481, "src": "14439:26:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1271, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1252, "src": "14468:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "14439:36:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 1273, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "14438:38:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "14421:55:2" }, { "assignments": [ 1276 ], "declarations": [ { "constant": false, "id": 1276, "name": "fee", "nodeType": "VariableDeclaration", "scope": 1387, "src": "14908:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1275, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14908:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1292, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1277, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1266, "src": "14922:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1280, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "14951:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1282, "indexExpression": { "argumentTypes": null, "id": 1281, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "14960:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14951:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1283, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "14951:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 1278, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "14931:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketFee", "nodeType": "MemberAccess", "referencedDeclaration": 3055, "src": "14931:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_uint256_$", "typeString": "function (bytes16) view external returns (uint256)" } }, "id": 1284, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14931:49:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "14922:58:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1287, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1256, "src": "14990:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1286, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "14983:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1288, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14983:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 6271, "src": "14983:24:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "14983:26:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "14922:87:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "14908:101:2" }, { "assignments": [ 1294 ], "declarations": [ { "constant": false, "id": 1294, "name": "contribution", "nodeType": "VariableDeclaration", "scope": 1387, "src": "15019:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1293, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15019:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1310, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1309, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1295, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1276, "src": "15042:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1296, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "15048:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "15048:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15048:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "contribution", "nodeType": "MemberAccess", "referencedDeclaration": 3424, "src": "15048:29:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1300, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15048:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15042:37:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1302, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "15082:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1303, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "15082:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1304, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15082:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1305, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "token", "nodeType": "MemberAccess", "referencedDeclaration": 3426, "src": "15082:22:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRToken_$4327_$", "typeString": "function () view external returns (contract XBRToken)" } }, "id": 1306, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15082:24:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "id": 1307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 5833, "src": "15082:36:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1308, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15082:38:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15042:78:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "15019:101:2" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 1316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1311, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "15441:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1313, "indexExpression": { "argumentTypes": null, "id": 1312, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "15462:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15441:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1314, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingSeq", "nodeType": "MemberAccess", "referencedDeclaration": 4490, "src": "15441:42:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1315, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "15486:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "15441:46:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1328, "nodeType": "IfStatement", "src": "15437:175:2", "trueBody": { "id": 1327, "nodeType": "Block", "src": "15489:123:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1323, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1318, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1252, "src": "15511:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1319, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "15522:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1321, "indexExpression": { "argumentTypes": null, "id": 1320, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "15543:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15522:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1322, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingBalance", "nodeType": "MemberAccess", "referencedDeclaration": 4492, "src": "15522:46:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15511:57:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "5452414e53414354494f4e5f42414c414e43455f4f55544441544544", "id": 1324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "15570:30:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_fe0b7c504c6ef3aff0106a24f85ebed725505a0f8ed74bccf8203afbd20c0c4a", "typeString": "literal_string \"TRANSACTION_BALANCE_OUTDATED\"" }, "value": "TRANSACTION_BALANCE_OUTDATED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_fe0b7c504c6ef3aff0106a24f85ebed725505a0f8ed74bccf8203afbd20c0c4a", "typeString": "literal_string \"TRANSACTION_BALANCE_OUTDATED\"" } ], "id": 1317, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "15503:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1325, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "15503:98:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1326, "nodeType": "ExpressionStatement", "src": "15503:98:2" } ] } }, { "expression": { "argumentTypes": null, "id": 1336, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1329, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "15708:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1331, "indexExpression": { "argumentTypes": null, "id": 1330, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "15729:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15708:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1332, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "15708:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1333, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "15748:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "15748:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1335, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSING", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "15748:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "15708:69:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "id": 1337, "nodeType": "ExpressionStatement", "src": "15708:69:2" }, { "expression": { "argumentTypes": null, "id": 1343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1338, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "15787:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1340, "indexExpression": { "argumentTypes": null, "id": 1339, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "15808:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15787:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1341, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "closingSeq", "nodeType": "MemberAccess", "referencedDeclaration": 4490, "src": "15787:42:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1342, "name": "closingChannelSeq", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1250, "src": "15832:17:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "15787:62:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 1344, "nodeType": "ExpressionStatement", "src": "15787:62:2" }, { "expression": { "argumentTypes": null, "id": 1350, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1345, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "15859:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1347, "indexExpression": { "argumentTypes": null, "id": 1346, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "15880:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15859:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1348, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "closingBalance", "nodeType": "MemberAccess", "referencedDeclaration": 4492, "src": "15859:46:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 1349, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1252, "src": "15908:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15859:56:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1351, "nodeType": "ExpressionStatement", "src": "15859:56:2" }, { "expression": { "argumentTypes": null, "id": 1362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1352, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "15971:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1354, "indexExpression": { "argumentTypes": null, "id": 1353, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "15992:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15971:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1355, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "closingAt", "nodeType": "MemberAccess", "referencedDeclaration": 4488, "src": "15971:41:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1361, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1356, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "16015:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1357, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "16015:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1358, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "16033:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "NONCOOPERATIVE_CHANNEL_CLOSE_TIMEOUT", "nodeType": "MemberAccess", "referencedDeclaration": 1836, "src": "16033:43:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1360, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16033:45:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16015:63:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15971:107:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1363, "nodeType": "ExpressionStatement", "src": "15971:107:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1365, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "16162:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1367, "indexExpression": { "argumentTypes": null, "id": 1366, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "16171:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16162:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1368, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "ctype", "nodeType": "MemberAccess", "referencedDeclaration": 4467, "src": "16162:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1369, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "16189:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1371, "indexExpression": { "argumentTypes": null, "id": 1370, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "16198:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16189:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1372, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "16189:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1373, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "16219:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1374, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1266, "src": "16242:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1375, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1276, "src": "16251:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16242:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1377, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1276, "src": "16256:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1378, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1294, "src": "16262:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16256:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1380, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1252, "src": "16276:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1381, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "16285:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1383, "indexExpression": { "argumentTypes": null, "id": 1382, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1248, "src": "16306:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16285:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1384, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "closingAt", "nodeType": "MemberAccess", "referencedDeclaration": 4488, "src": "16285:41:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1364, "name": "Closing", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 524, "src": "16154:7:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_enum$_ChannelType_$4346_$_t_bytes16_$_t_bytes16_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (enum XBRTypes.ChannelType,bytes16,bytes16,uint256,uint256,uint256,uint256)" } }, "id": 1385, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16154:173:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1386, "nodeType": "EmitStatement", "src": "16149:178:2" } ] }, "documentation": null, "id": 1388, "implemented": true, "kind": "function", "modifiers": [], "name": "_doClosing", "nodeType": "FunctionDefinition", "parameters": { "id": 1253, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1248, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 1388, "src": "14095:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1247, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "14095:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1250, "name": "closingChannelSeq", "nodeType": "VariableDeclaration", "scope": 1388, "src": "14114:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 1249, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "14114:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1252, "name": "balance", "nodeType": "VariableDeclaration", "scope": 1388, "src": "14140:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1251, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14140:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "14094:62:2" }, "returnParameters": { "id": 1254, "nodeType": "ParameterList", "parameters": [], "src": "14165:0:2" }, "scope": 1626, "src": "14075:2259:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" }, { "body": { "id": 1624, "nodeType": "Block", "src": "16428:2726:2", "statements": [ { "assignments": [ 1398 ], "declarations": [ { "constant": false, "id": 1398, "name": "coin", "nodeType": "VariableDeclaration", "scope": 1624, "src": "16505:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1397, "name": "address", "nodeType": "ElementaryTypeName", "src": "16505:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 1406, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1401, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "16541:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1403, "indexExpression": { "argumentTypes": null, "id": 1402, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "16550:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16541:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1404, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "16541:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 1399, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "16520:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketCoin", "nodeType": "MemberAccess", "referencedDeclaration": 3042, "src": "16520:20:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 1405, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "16520:50:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "16505:65:2" }, { "assignments": [ 1408 ], "declarations": [ { "constant": false, "id": 1408, "name": "earned", "nodeType": "VariableDeclaration", "scope": 1624, "src": "16684:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1407, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "16684:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1416, "initialValue": { "argumentTypes": null, "components": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1409, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "16702:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1411, "indexExpression": { "argumentTypes": null, "id": 1410, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "16711:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16702:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1412, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", "referencedDeclaration": 4481, "src": "16702:26:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1413, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1394, "src": "16731:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16702:36:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 1415, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "16701:38:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "16684:55:2" }, { "assignments": [ 1418 ], "declarations": [ { "constant": false, "id": 1418, "name": "fee", "nodeType": "VariableDeclaration", "scope": 1624, "src": "17171:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1417, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17171:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1434, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1427, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1419, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1408, "src": "17185:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1422, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "17214:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1424, "indexExpression": { "argumentTypes": null, "id": 1423, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "17223:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17214:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1425, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "17214:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 1420, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "17194:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketFee", "nodeType": "MemberAccess", "referencedDeclaration": 3055, "src": "17194:19:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_uint256_$", "typeString": "function (bytes16) view external returns (uint256)" } }, "id": 1426, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17194:49:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17185:58:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1429, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "17253:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1428, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "17246:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1430, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17246:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 6271, "src": "17246:24:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1432, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17246:26:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17185:87:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "17171:101:2" }, { "assignments": [ 1436 ], "declarations": [ { "constant": false, "id": 1436, "name": "contribution", "nodeType": "VariableDeclaration", "scope": 1624, "src": "17282:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1435, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "17282:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 1452, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1443, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1437, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "17305:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1438, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "17311:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "17311:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1440, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17311:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1441, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "contribution", "nodeType": "MemberAccess", "referencedDeclaration": 3424, "src": "17311:29:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1442, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17311:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17305:37:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1444, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "17345:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1445, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "17345:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1446, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17345:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1447, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "token", "nodeType": "MemberAccess", "referencedDeclaration": 3426, "src": "17345:22:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRToken_$4327_$", "typeString": "function () view external returns (contract XBRToken)" } }, "id": 1448, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17345:24:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRToken_$4327", "typeString": "contract XBRToken" } }, "id": 1449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", "referencedDeclaration": 5833, "src": "17345:36:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 1450, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17345:38:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17305:78:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "17282:101:2" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1455, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1453, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1408, "src": "17594:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1454, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "17603:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17594:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1456, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "17609:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "17594:16:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1502, "nodeType": "IfStatement", "src": "17590:409:2", "trueBody": { "id": 1501, "nodeType": "Block", "src": "17612:387:2", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "id": 1465, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1458, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "17630:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1460, "indexExpression": { "argumentTypes": null, "id": 1459, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "17639:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17630:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1461, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "ctype", "nodeType": "MemberAccess", "referencedDeclaration": 4467, "src": "17630:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1462, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "17659:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelType", "nodeType": "MemberAccess", "referencedDeclaration": 4346, "src": "17659:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelType_$4346_$", "typeString": "type(enum XBRTypes.ChannelType)" } }, "id": 1464, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PAYMENT", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "17659:28:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "src": "17630:57:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 1499, "nodeType": "Block", "src": "17845:144:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1488, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "17893:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1490, "indexExpression": { "argumentTypes": null, "id": 1489, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "17902:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17893:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1491, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actor", "nodeType": "MemberAccess", "referencedDeclaration": 4473, "src": "17893:25:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1492, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1408, "src": "17920:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1493, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "17929:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17920:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1485, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "17878:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1484, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "17871:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1486, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17871:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 6287, "src": "17871:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 1495, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17871:62:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f434c4f53455f5041594f55545f5452414e534645525f4641494c4544", "id": 1496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "17935:38:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f7735df21d72af26076ac0e2ac6cdf55729ac87d88f38c9fe287d1c665f10de7", "typeString": "literal_string \"CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED\"" }, "value": "CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f7735df21d72af26076ac0e2ac6cdf55729ac87d88f38c9fe287d1c665f10de7", "typeString": "literal_string \"CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED\"" } ], "id": 1483, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "17863:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1497, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17863:111:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1498, "nodeType": "ExpressionStatement", "src": "17863:111:2" } ] }, "id": 1500, "nodeType": "IfStatement", "src": "17626:363:2", "trueBody": { "id": 1482, "nodeType": "Block", "src": "17689:150:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1471, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "17737:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1473, "indexExpression": { "argumentTypes": null, "id": 1472, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "17746:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17737:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1474, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketmaker", "nodeType": "MemberAccess", "referencedDeclaration": 4477, "src": "17737:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1477, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1475, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1408, "src": "17770:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1476, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "17779:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "17770:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1468, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "17722:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1467, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "17715:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1469, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17715:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 6287, "src": "17715:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 1478, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17715:68:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f434c4f53455f5041594f55545f5452414e534645525f4641494c4544", "id": 1479, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "17785:38:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f7735df21d72af26076ac0e2ac6cdf55729ac87d88f38c9fe287d1c665f10de7", "typeString": "literal_string \"CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED\"" }, "value": "CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f7735df21d72af26076ac0e2ac6cdf55729ac87d88f38c9fe287d1c665f10de7", "typeString": "literal_string \"CHANNEL_CLOSE_PAYOUT_TRANSFER_FAILED\"" } ], "id": 1466, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "17707:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1480, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "17707:117:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1481, "nodeType": "ExpressionStatement", "src": "17707:117:2" } ] } } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1505, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1503, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1394, "src": "18013:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "18023:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "18013:11:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1546, "nodeType": "IfStatement", "src": "18009:394:2", "trueBody": { "id": 1545, "nodeType": "Block", "src": "18026:377:2", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, "id": 1513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1506, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "18044:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1508, "indexExpression": { "argumentTypes": null, "id": 1507, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "18053:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18044:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1509, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "ctype", "nodeType": "MemberAccess", "referencedDeclaration": 4467, "src": "18044:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1510, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "18073:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelType", "nodeType": "MemberAccess", "referencedDeclaration": 4346, "src": "18073:20:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelType_$4346_$", "typeString": "type(enum XBRTypes.ChannelType)" } }, "id": 1512, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "PAYMENT", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "18073:28:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, "src": "18044:57:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 1543, "nodeType": "Block", "src": "18248:145:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1534, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "18296:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1536, "indexExpression": { "argumentTypes": null, "id": 1535, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "18305:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18296:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1537, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketmaker", "nodeType": "MemberAccess", "referencedDeclaration": 4477, "src": "18296:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1538, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1394, "src": "18329:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1531, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "18281:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1530, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "18274:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1532, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18274:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1533, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 6287, "src": "18274:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18274:63:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f434c4f53455f524546554e445f5452414e534645525f4641494c4544", "id": 1540, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18339:38:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a0e715685b9bed6bffe911b5f2ed20616d488c05c087fb181a65cc1fe9baa29b", "typeString": "literal_string \"CHANNEL_CLOSE_REFUND_TRANSFER_FAILED\"" }, "value": "CHANNEL_CLOSE_REFUND_TRANSFER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a0e715685b9bed6bffe911b5f2ed20616d488c05c087fb181a65cc1fe9baa29b", "typeString": "literal_string \"CHANNEL_CLOSE_REFUND_TRANSFER_FAILED\"" } ], "id": 1529, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "18266:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1541, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18266:112:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1542, "nodeType": "ExpressionStatement", "src": "18266:112:2" } ] }, "id": 1544, "nodeType": "IfStatement", "src": "18040:353:2", "trueBody": { "id": 1528, "nodeType": "Block", "src": "18103:139:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1519, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "18151:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1521, "indexExpression": { "argumentTypes": null, "id": 1520, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "18160:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18151:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1522, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "actor", "nodeType": "MemberAccess", "referencedDeclaration": 4473, "src": "18151:25:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1523, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1394, "src": "18178:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1516, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "18136:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1515, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "18129:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1517, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18129:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 6287, "src": "18129:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 1524, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18129:57:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f434c4f53455f524546554e445f5452414e534645525f4641494c4544", "id": 1525, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18188:38:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a0e715685b9bed6bffe911b5f2ed20616d488c05c087fb181a65cc1fe9baa29b", "typeString": "literal_string \"CHANNEL_CLOSE_REFUND_TRANSFER_FAILED\"" }, "value": "CHANNEL_CLOSE_REFUND_TRANSFER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a0e715685b9bed6bffe911b5f2ed20616d488c05c087fb181a65cc1fe9baa29b", "typeString": "literal_string \"CHANNEL_CLOSE_REFUND_TRANSFER_FAILED\"" } ], "id": 1514, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "18121:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1526, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18121:106:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1527, "nodeType": "ExpressionStatement", "src": "18121:106:2" } ] } } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1549, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1547, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "18417:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 1548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "18423:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "18417:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 1585, "nodeType": "IfStatement", "src": "18413:306:2", "trueBody": { "id": 1584, "nodeType": "Block", "src": "18426:293:2", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1557, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "18492:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1559, "indexExpression": { "argumentTypes": null, "id": 1558, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "18501:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18492:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1560, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "18492:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } ], "expression": { "argumentTypes": null, "id": 1555, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "18470:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1556, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMarketOwner", "nodeType": "MemberAccess", "referencedDeclaration": 3029, "src": "18470:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_bytes16_$returns$_t_address_$", "typeString": "function (bytes16) view external returns (address)" } }, "id": 1561, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18470:51:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1562, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "18523:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1563, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1436, "src": "18529:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "18523:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1552, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "18455:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1551, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "18448:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1553, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18448:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 6287, "src": "18448:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 1565, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18448:94:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f434c4f53455f4645455f5452414e534645525f4641494c4544", "id": 1566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18544:35:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_20c683b470acae7a12ee87f6da277edc4594b1899950d1ce35610823e471e294", "typeString": "literal_string \"CHANNEL_CLOSE_FEE_TRANSFER_FAILED\"" }, "value": "CHANNEL_CLOSE_FEE_TRANSFER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_20c683b470acae7a12ee87f6da277edc4594b1899950d1ce35610823e471e294", "typeString": "literal_string \"CHANNEL_CLOSE_FEE_TRANSFER_FAILED\"" } ], "id": 1550, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "18440:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1567, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18440:140:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1568, "nodeType": "ExpressionStatement", "src": "18440:140:2" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 1574, "name": "market", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 542, "src": "18624:6:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRMarket_$3361", "typeString": "contract XBRMarket" } }, "id": 1575, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "network", "nodeType": "MemberAccess", "referencedDeclaration": 1838, "src": "18624:14:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_XBRNetwork_$3886_$", "typeString": "function () view external returns (contract XBRNetwork)" } }, "id": 1576, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18624:16:2", "typeDescriptions": { "typeIdentifier": "t_contract$_XBRNetwork_$3886", "typeString": "contract XBRNetwork" } }, "id": 1577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "organization", "nodeType": "MemberAccess", "referencedDeclaration": 3428, "src": "18624:29:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 1578, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18624:31:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 1579, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1436, "src": "18657:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1571, "name": "coin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1398, "src": "18609:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1570, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6333, "src": "18602:6:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC20_$6333_$", "typeString": "type(contract IERC20)" } }, "id": 1572, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18602:12:2", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$6333", "typeString": "contract IERC20" } }, "id": 1573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 6287, "src": "18602:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, "id": 1580, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18602:68:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4348414e4e454c5f434c4f53455f4645455f5452414e534645525f4641494c4544", "id": 1581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "18672:35:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_20c683b470acae7a12ee87f6da277edc4594b1899950d1ce35610823e471e294", "typeString": "literal_string \"CHANNEL_CLOSE_FEE_TRANSFER_FAILED\"" }, "value": "CHANNEL_CLOSE_FEE_TRANSFER_FAILED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_20c683b470acae7a12ee87f6da277edc4594b1899950d1ce35610823e471e294", "typeString": "literal_string \"CHANNEL_CLOSE_FEE_TRANSFER_FAILED\"" } ], "id": 1569, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 6351, 6352 ], "referencedDeclaration": 6352, "src": "18594:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 1582, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "18594:114:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1583, "nodeType": "ExpressionStatement", "src": "18594:114:2" } ] } }, { "expression": { "argumentTypes": null, "id": 1592, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1586, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "18789:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1588, "indexExpression": { "argumentTypes": null, "id": 1587, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "18810:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18789:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1589, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "closedAt", "nodeType": "MemberAccess", "referencedDeclaration": 4494, "src": "18789:40:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1590, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "18832:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1591, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "18832:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "18789:58:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 1593, "nodeType": "ExpressionStatement", "src": "18789:58:2" }, { "expression": { "argumentTypes": null, "id": 1601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1594, "name": "channelClosingStates", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 553, "src": "18881:20:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_ChannelClosingState_$4503_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.ChannelClosingState storage ref)" } }, "id": 1596, "indexExpression": { "argumentTypes": null, "id": 1595, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "18902:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18881:31:2", "typeDescriptions": { "typeIdentifier": "t_struct$_ChannelClosingState_$4503_storage", "typeString": "struct XBRTypes.ChannelClosingState storage ref" } }, "id": 1597, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "state", "nodeType": "MemberAccess", "referencedDeclaration": 4486, "src": "18881:37:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1598, "name": "XBRTypes", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5425, "src": "18921:8:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_XBRTypes_$5425_$", "typeString": "type(library XBRTypes)" } }, "id": 1599, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "ChannelState", "nodeType": "MemberAccess", "referencedDeclaration": 4352, "src": "18921:21:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_ChannelState_$4352_$", "typeString": "type(enum XBRTypes.ChannelState)" } }, "id": 1600, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "CLOSED", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "18921:28:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "src": "18881:68:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelState_$4352", "typeString": "enum XBRTypes.ChannelState" } }, "id": 1602, "nodeType": "ExpressionStatement", "src": "18881:68:2" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1604, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "19008:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1606, "indexExpression": { "argumentTypes": null, "id": 1605, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "19017:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19008:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1607, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "ctype", "nodeType": "MemberAccess", "referencedDeclaration": 4467, "src": "19008:25:2", "typeDescriptions": { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 1608, "name": "channels", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 549, "src": "19035:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes16_$_t_struct$_Channel_$4484_storage_$", "typeString": "mapping(bytes16 => struct XBRTypes.Channel storage ref)" } }, "id": 1610, "indexExpression": { "argumentTypes": null, "id": 1609, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "19044:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "19035:19:2", "typeDescriptions": { "typeIdentifier": "t_struct$_Channel_$4484_storage", "typeString": "struct XBRTypes.Channel storage ref" } }, "id": 1611, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "marketId", "nodeType": "MemberAccess", "referencedDeclaration": 4469, "src": "19035:28:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "id": 1612, "name": "channelId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1390, "src": "19065:9:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1613, "name": "earned", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1408, "src": "19088:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1614, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "19097:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "19088:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1618, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 1616, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1418, "src": "19102:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "argumentTypes": null, "id": 1617, "name": "contribution", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1436, "src": "19108:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "19102:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "id": 1619, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1394, "src": "19122:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1620, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6338, "src": "19131:5:2", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 1621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "19131:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_enum$_ChannelType_$4346", "typeString": "enum XBRTypes.ChannelType" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 1603, "name": "Closed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 540, "src": "19001:6:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_enum$_ChannelType_$4346_$_t_bytes16_$_t_bytes16_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (enum XBRTypes.ChannelType,bytes16,bytes16,uint256,uint256,uint256,uint256)" } }, "id": 1622, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "19001:146:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 1623, "nodeType": "EmitStatement", "src": "18996:151:2" } ] }, "documentation": null, "id": 1625, "implemented": true, "kind": "function", "modifiers": [], "name": "_doClose", "nodeType": "FunctionDefinition", "parameters": { "id": 1395, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1390, "name": "channelId", "nodeType": "VariableDeclaration", "scope": 1625, "src": "16358:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" }, "typeName": { "id": 1389, "name": "bytes16", "nodeType": "ElementaryTypeName", "src": "16358:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes16", "typeString": "bytes16" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1392, "name": "closingChannelSeq", "nodeType": "VariableDeclaration", "scope": 1625, "src": "16377:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 1391, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "16377:6:2", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1394, "name": "balance", "nodeType": "VariableDeclaration", "scope": 1625, "src": "16403:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 1393, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "16403:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "16357:62:2" }, "returnParameters": { "id": 1396, "nodeType": "ParameterList", "parameters": [], "src": "16428:0:2" }, "scope": 1626, "src": "16340:2814:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "private" } ], "scope": 1627, "src": "1393:17763:2" } ], "src": "810:18347:2" }, "compiler": { "name": "solc", "version": "0.5.16+commit.9c3226ce.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.1.0", "updatedAt": "2020-04-13T15:29:57.147Z", "devdoc": { "methods": { "addMaintainer(address)": { "params": { "account": "The account to grant maintainer rights to." } }, "constructor": { "params": { "marketAdr": "The XBR markets contract this instance is associated with." } }, "isMaintainer(address)": { "params": { "account": "The account to check." }, "return": "`true` if the account is maintainer, otherwise `false`." }, "openChannel(uint8,uint256,bytes16,bytes16,address,address,address,address,uint256,bytes)": { "params": { "actor": "The actor (buyer/seller in the market) that opened this channel.", "amount": "The amount initially transfered to and held in the channel until closed.", "channelId": "The ID of the new XBR channel (must be unique).", "ctype": "Channel type: payment or paying channel.", "delegate": "The delegate (off-chain) allowed to spend/earn-on this channel (off-chain) in the name of the actor (buyer/seller in the market).", "marketId": "The ID of the XBR market this channel is associated with.", "marketmaker": "The off-chain market maker executing the channel.", "openedAt": "Block number when the channel opening signature was created.", "recipient": "The receiver (on-chain) of the channel payout.", "signature": "EIP712 signature, signed by the member." } } } }, "userdoc": { "methods": { "addMaintainer(address)": { "notice": "Add a new maintainer to the list of maintainers." }, "closeChannel(bytes16,uint256,uint32,uint256,bool,bytes,bytes)": { "notice": "Trigger closing this payment channel. When the first participant has called `close()` submitting its latest transaction/state, a timeout period begins during which the other party of the payment channel has to submit its latest transaction/state too. When both transaction have been submitted, and the submitted transactions/states agree, the channel immediately closes, and the consumed amount of token in the channel is transferred to the channel recipient, and the remaining amount of token is transferred back to the original sender." }, "constructor": "Constructor for this contract, only called once (when deploying the network). ", "isMaintainer(address)": { "notice": "Check if the given address is currently a maintainer." }, "openChannel(uint8,uint256,bytes16,bytes16,address,address,address,address,uint256,bytes)": { "notice": "Open a new XBR payment/paying channel for processing off-chain micro-transactions. " }, "renounceMaintainer()": { "notice": "Give away maintainer rights." } }, "notice": "XBR Payment/Paying Channel between a XBR data consumer and the XBR market maker, or the XBR Market Maker and a XBR data provider." } }