diff --git a/rollup-sequencer/src/RollDown.json b/rollup-sequencer/src/RollDown.json new file mode 100644 index 000000000..500a2e4bb --- /dev/null +++ b/rollup-sequencer/src/RollDown.json @@ -0,0 +1,14197 @@ +{ + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "depositRecipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "DepositAcceptedIntoQueue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "originalRequestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "cancelJustified", + "type": "bool" + } + ], + "name": "DisputeResolutionAcceptedIntoQueue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "withdrawRecipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "FundsWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "l2UpdatesToRemove", + "type": "uint256[]" + } + ], + "name": "L2UpdatesToRemovedAcceptedIntoQueue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "withdrawRecipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "WithdrawAcceptedIntoQueue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "cancelHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "calculatedHash", + "type": "bytes32" + } + ], + "name": "cancelAndCalculatedHash", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "cancelResolutions", + "outputs": [ + { + "internalType": "uint256", + "name": "l2RequestId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "cancelJustified", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getUpdateForL2", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "lastProccessedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastAcceptedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "offset", + "type": "uint256" + }, + { + "internalType": "enum RollDown.PendingRequestType[]", + "name": "order", + "type": "uint8[]" + }, + { + "components": [ + { + "internalType": "address", + "name": "withdrawRecipient", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct RollDown.Withdraw[]", + "name": "pendingWithdraws", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "address", + "name": "depositRecipient", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct RollDown.Deposit[]", + "name": "pendingDeposits", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "l2RequestId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "cancelJustified", + "type": "bool" + } + ], + "internalType": "struct RollDown.CancelResolution[]", + "name": "pendingCancelResultions", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "uint256[]", + "name": "l2UpdatesToRemove", + "type": "uint256[]" + } + ], + "internalType": "struct RollDown.L2UpdatesToRemove[]", + "name": "pendingL2UpdatesToRemove", + "type": "tuple[]" + } + ], + "internalType": "struct RollDown.L1Update", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastProcessedUpdate_origin_l1", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastProcessedUpdate_origin_l2", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "bytes", + "name": "updater", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "canceler", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "lastProccessedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastAcceptedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "hash", + "type": "bytes32" + } + ], + "internalType": "struct RollDown.Cancel[]", + "name": "cancles", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "enum RollDown.UpdateType", + "name": "updateType", + "type": "uint8" + }, + { + "internalType": "bool", + "name": "status", + "type": "bool" + } + ], + "internalType": "struct RollDown.RequestResult[]", + "name": "results", + "type": "tuple[]" + } + ], + "internalType": "struct RollDown.L2Update", + "name": "inputArray", + "type": "tuple" + } + ], + "name": "update_l1_from_l2", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b506000600281905560018055600381905580546001600160a01b03191633179055611817806100406000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b15387061161005b578063b1538706146100da578063ca9b21ae146100ef578063f26ee9d01461012e578063f3fef3a31461013757600080fd5b806334b038051461008d57806347e7ef24146100a257806361bc221a146100b55780637fd4f845146100d1575b600080fd5b6100a061009b366004611333565b61014a565b005b6100a06100b0366004611375565b610619565b6100be60015481565b6040519081526020015b60405180910390f35b6100be60025481565b6100e2610863565b6040516100c8919061154b565b6101196100fd366004611607565b6004602052600090815260409020805460019091015460ff1682565b604080519283529015156020830152016100c8565b6100be60035481565b6100a0610145366004611375565b61088a565b6000546001600160a01b031633146101995760405162461bcd60e51b815260206004820152600d60248201526c2737ba103a34329037bbb732b960991b60448201526064015b60405180910390fd5b60016101a86020830183611620565b90501015806101c3575060016101be8280611670565b905010155b6102195760405162461bcd60e51b815260206004820152602160248201527f4172726179206d7573742068617665206174206c6561737420312075706461746044820152606560f81b6064820152608401610190565b6000806102296020840184611620565b905067ffffffffffffffff811115610243576102436116ba565b60405190808252806020026020018201604052801561026c578160200160208202803683370190505b509050600061027e6020850185611620565b600081811061028f5761028f6116d0565b60600291909101359150600190505b6102ab6020860186611620565b9050811015610363576102bf8260016116fc565b6102cc6020870187611620565b838181106102dc576102dc6116d0565b90506060020160000135146103335760405162461bcd60e51b815260206004820152601960248201527f526571756573747320617265206e6f7420696e206f72646572000000000000006044820152606401610190565b6103406020860186611620565b82818110610350576103506116d0565b606002919091013592505060010161029e565b5060005b6103746020860186611620565b90508110156104db573661038b6020870187611620565b8381811061039b5761039b6116d0565b90506060020190506002548160000135116103b657506104d3565b60006103c8604083016020840161170f565b60038111156103d9576103d96113ad565b0361040e57803584866103eb81611730565b9750815181106103fd576103fd6116d0565b6020026020010181815250506104d1565b6001610420604083016020840161170f565b6003811115610431576104316113ad565b0361045d57610450813561044b606084016040850161175a565b610a1b565b803584866103eb81611730565b600261046f604083016020840161170f565b6003811115610480576104806113ad565b0361049257803584866103eb81611730565b60405162461bcd60e51b8152602060048201526014602482015273756e6b6e6f776e2072657175657374207479706560601b6044820152606401610190565b505b600101610367565b5082156106135760008367ffffffffffffffff8111156104fd576104fd6116ba565b604051908082528060200260200182016040528015610526578160200160208202803683370190505b50905060005b8481101561057357838181518110610546576105466116d0565b6020026020010151828281518110610560576105606116d0565b602090810291909101015260010161052c565b506001805482916007916000918261058a83611730565b91905055815260200190815260200160002060000190805190602001906105b292919061128e565b508051600260008282546105c691906116fc565b9091555050600180547f09b30365986269e3939307e7ca7b7b7421a8ad08ef18bb766c668d27cbc2aef9916105fa91611777565b8260405161060992919061178a565b60405180910390a1505b50505050565b6001600160a01b0382166106675760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610190565b600081116106b75760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610190565b6040516323b872dd60e01b815233600482018190526001600160a01b038416602483018190526044830184905290918491906323b872dd906064016020604051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073591906117ab565b6107795760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610190565b604080516060810182526001600160a01b03808516825286166020820152908101849052600180548291600591600091826107b383611730565b9091555081526020808201929092526040908101600020835181546001600160a01b039182166001600160a01b03199182161783559385015160018084018054929093169190951617905592015160029092019190915580547fe28491c2da97a9923c92f6590a040dfc143fe636e8545356cdab0a796e1acefa9161083791611777565b604080519182526001600160a01b03808716602084015288169082015260608101869052608001610609565b61086b6112d9565b610885600254600161087d91906116fc565b600154610c00565b905090565b6001600160a01b0382166108d85760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610190565b600081116109285760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610190565b60408051606081018252338082526001600160a01b03851660208301529181018390526001805482916006916000918261096183611730565b9091555081526020808201929092526040908101600020835181546001600160a01b039182166001600160a01b03199182161783559385015160018084018054929093169190951617905592015160029092019190915580547fc764405a2acf44bf91c070359a13daa334e14c5a24f6f78b82e5b94d4863b0df916109e591611777565b604080519182526001600160a01b038086166020840152871690820152606081018590526080015b60405180910390a150505050565b8015610bfc57600082815260066020908152604091829020825160608101845281546001600160a01b03908116825260018301541692810183905260029091015481840181905292516370a0823160e01b815230600482015290929082906370a0823190602401602060405180830381865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac391906117c8565b1015610b1d5760405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e742062616c616e636520696e2074686520636f6e746044820152631c9858dd60e21b6064820152608401610190565b8151604080840151905163a9059cbb60e01b81526001600160a01b0384169263a9059cbb92610b62926004016001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba591906117ab565b50815160208084015160408086015181516001600160a01b0395861681529490921692840192909252908201527fa92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8a90606001610a0d565b5050565b610c086112d9565b610c106112d9565b6000808080875b878111610cd6576000818152600560205260409020546001600160a01b031615610c4d5784610c4581611730565b955050610cc4565b6000818152600660205260409020546001600160a01b031615610c7c5783610c7481611730565b945050610cc4565b60008181526007602052604090205415610ca25781610c9a81611730565b925050610cc4565b60008181526004602052604090205415610cc45782610cc081611730565b9350505b80610cce81611730565b915050610c17565b5060008183610ce586886116fc565b610cef91906116fc565b610cf991906116fc565b90508067ffffffffffffffff811115610d1457610d146116ba565b604051908082528060200260200182016040528015610d3d578160200160208202803683370190505b506060870152604086018990528367ffffffffffffffff811115610d6357610d636116ba565b604051908082528060200260200182016040528015610dae57816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610d815790505b5060808701528467ffffffffffffffff811115610dcd57610dcd6116ba565b604051908082528060200260200182016040528015610e1857816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610deb5790505b5060a08701528267ffffffffffffffff811115610e3757610e376116ba565b604051908082528060200260200182016040528015610e7c57816020015b6040805180820190915260008082526020820152815260200190600190039081610e555790505b5060c08701528167ffffffffffffffff811115610e9b57610e9b6116ba565b604051908082528060200260200182016040528015610edb57816020015b604080516020810190915260608152815260200190600190039081610eb95790505b5060e0870152600254865260018054610ef49190611777565b6020870152506000935083925082915081905080885b88811161127e576000818152600560205260409020546001600160a01b031615610ff357600087606001518380610f4090611730565b945081518110610f5257610f526116d0565b60200260200101906003811115610f6b57610f6b6113ad565b90816003811115610f7e57610f7e6113ad565b905250600081815260056020908152604091829020825160608101845281546001600160a01b03908116825260018301541692810192909252600201549181019190915260a088015187610fd181611730565b985081518110610fe357610fe36116d0565b602002602001018190525061126c565b6000818152600660205260409020546001600160a01b0316156110c55760018760600151838061102290611730565b945081518110611034576110346116d0565b6020026020010190600381111561104d5761104d6113ad565b90816003811115611060576110606113ad565b905250600081815260066020908152604091829020825160608101845281546001600160a01b0390811682526001830154169281019290925260020154918101919091526080880151866110b381611730565b975081518110610fe357610fe36116d0565b600081815260076020526040902054156111b4576003876060015183806110eb90611730565b9450815181106110fd576110fd6116d0565b60200260200101906003811115611116576111166113ad565b90816003811115611129576111296113ad565b9052506000818152600760209081526040918290208251815480840282018501855292810183815290939192849284919084018282801561118957602002820191906000526020600020905b815481526020019060010190808311611175575b5050505050815250508760e0015184806111a290611730565b955081518110610fe357610fe36116d0565b60008181526004602052604090205415611267576002876060015183806111da90611730565b9450815181106111ec576111ec6116d0565b60200260200101906003811115611205576112056113ad565b90816003811115611218576112186113ad565b9052506000818152600460209081526040918290208251808401909352805483526001015460ff1615159082015260c08801518561125581611730565b965081518110610fe357610fe36116d0565b61127e565b8061127681611730565b915050610f0a565b5094955050505050505b92915050565b8280548282559060005260206000209081019282156112c9579160200282015b828111156112c95782518255916020019190600101906112ae565b506112d592915061131e565b5090565b60405180610100016040528060008152602001600081526020016000815260200160608152602001606081526020016060815260200160608152602001606081525090565b5b808211156112d5576000815560010161131f565b60006020828403121561134557600080fd5b813567ffffffffffffffff81111561135c57600080fd5b82016040818503121561136e57600080fd5b9392505050565b6000806040838503121561138857600080fd5b82356001600160a01b038116811461139f57600080fd5b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b6000815180845260208085019450602084016000805b8481101561141257825160048082106113ff57634e487b7160e01b845260218152602484fd5b50885296830196918301916001016113d9565b50959695505050505050565b60008151808452602080850194506020840160005b8381101561147157815180516001600160a01b0390811689528482015116848901526040908101519088015260609096019590820190600101611433565b509495945050505050565b60008151808452602080850194506020840160005b838110156114715781518051885283015115158388015260409096019590820190600101611491565b60008151808452602080850194506020840160005b83811015611471578151875295820195908201906001016114cf565b600082825180855260208086019550808260051b84010181860160005b8481101561153e57858303601f1901895281515184845261152b858501826114ba565b9985019993505090830190600101611508565b5090979650505050505050565b60208152815160208201526020820151604082015260408201516060820152600060608301516101008060808501526115886101208501836113c3565b91506080850151601f19808685030160a08701526115a6848361141e565b935060a08701519150808685030160c08701526115c3848361141e565b935060c08701519150808685030160e08701526115e0848361147c565b935060e08701519150808685030183870152506115fd83826114eb565b9695505050505050565b60006020828403121561161957600080fd5b5035919050565b6000808335601e1984360301811261163757600080fd5b83018035915067ffffffffffffffff82111561165257600080fd5b602001915060608102360382131561166957600080fd5b9250929050565b6000808335601e1984360301811261168757600080fd5b83018035915067ffffffffffffffff8211156116a257600080fd5b6020019150600581901b360382131561166957600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611288576112886116e6565b60006020828403121561172157600080fd5b81356004811061136e57600080fd5b600060018201611742576117426116e6565b5060010190565b801515811461175757600080fd5b50565b60006020828403121561176c57600080fd5b813561136e81611749565b81810381811115611288576112886116e6565b8281526040602082015260006117a360408301846114ba565b949350505050565b6000602082840312156117bd57600080fd5b815161136e81611749565b6000602082840312156117da57600080fd5b505191905056fea2646970667358221220f1374b438f74eb32eea780bb31bf5a818cfaa61ca8554b45912cfc9614adc0c464736f6c63430008160033", + "sourceMap": "194:12162:24:-:0;;;2936:156;;;;;;;;;-1:-1:-1;2992:1:24;2960:29;:33;;;3013:1;3003:11;;3024:29;:33;;;3067:18;;-1:-1:-1;;;;;;3067:18:24;3075:10;3067:18;;;194:12162;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063b15387061161005b578063b1538706146100da578063ca9b21ae146100ef578063f26ee9d01461012e578063f3fef3a31461013757600080fd5b806334b038051461008d57806347e7ef24146100a257806361bc221a146100b55780637fd4f845146100d1575b600080fd5b6100a061009b366004611333565b61014a565b005b6100a06100b0366004611375565b610619565b6100be60015481565b6040519081526020015b60405180910390f35b6100be60025481565b6100e2610863565b6040516100c8919061154b565b6101196100fd366004611607565b6004602052600090815260409020805460019091015460ff1682565b604080519283529015156020830152016100c8565b6100be60035481565b6100a0610145366004611375565b61088a565b6000546001600160a01b031633146101995760405162461bcd60e51b815260206004820152600d60248201526c2737ba103a34329037bbb732b960991b60448201526064015b60405180910390fd5b60016101a86020830183611620565b90501015806101c3575060016101be8280611670565b905010155b6102195760405162461bcd60e51b815260206004820152602160248201527f4172726179206d7573742068617665206174206c6561737420312075706461746044820152606560f81b6064820152608401610190565b6000806102296020840184611620565b905067ffffffffffffffff811115610243576102436116ba565b60405190808252806020026020018201604052801561026c578160200160208202803683370190505b509050600061027e6020850185611620565b600081811061028f5761028f6116d0565b60600291909101359150600190505b6102ab6020860186611620565b9050811015610363576102bf8260016116fc565b6102cc6020870187611620565b838181106102dc576102dc6116d0565b90506060020160000135146103335760405162461bcd60e51b815260206004820152601960248201527f526571756573747320617265206e6f7420696e206f72646572000000000000006044820152606401610190565b6103406020860186611620565b82818110610350576103506116d0565b606002919091013592505060010161029e565b5060005b6103746020860186611620565b90508110156104db573661038b6020870187611620565b8381811061039b5761039b6116d0565b90506060020190506002548160000135116103b657506104d3565b60006103c8604083016020840161170f565b60038111156103d9576103d96113ad565b0361040e57803584866103eb81611730565b9750815181106103fd576103fd6116d0565b6020026020010181815250506104d1565b6001610420604083016020840161170f565b6003811115610431576104316113ad565b0361045d57610450813561044b606084016040850161175a565b610a1b565b803584866103eb81611730565b600261046f604083016020840161170f565b6003811115610480576104806113ad565b0361049257803584866103eb81611730565b60405162461bcd60e51b8152602060048201526014602482015273756e6b6e6f776e2072657175657374207479706560601b6044820152606401610190565b505b600101610367565b5082156106135760008367ffffffffffffffff8111156104fd576104fd6116ba565b604051908082528060200260200182016040528015610526578160200160208202803683370190505b50905060005b8481101561057357838181518110610546576105466116d0565b6020026020010151828281518110610560576105606116d0565b602090810291909101015260010161052c565b506001805482916007916000918261058a83611730565b91905055815260200190815260200160002060000190805190602001906105b292919061128e565b508051600260008282546105c691906116fc565b9091555050600180547f09b30365986269e3939307e7ca7b7b7421a8ad08ef18bb766c668d27cbc2aef9916105fa91611777565b8260405161060992919061178a565b60405180910390a1505b50505050565b6001600160a01b0382166106675760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610190565b600081116106b75760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610190565b6040516323b872dd60e01b815233600482018190526001600160a01b038416602483018190526044830184905290918491906323b872dd906064016020604051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073591906117ab565b6107795760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610190565b604080516060810182526001600160a01b03808516825286166020820152908101849052600180548291600591600091826107b383611730565b9091555081526020808201929092526040908101600020835181546001600160a01b039182166001600160a01b03199182161783559385015160018084018054929093169190951617905592015160029092019190915580547fe28491c2da97a9923c92f6590a040dfc143fe636e8545356cdab0a796e1acefa9161083791611777565b604080519182526001600160a01b03808716602084015288169082015260608101869052608001610609565b61086b6112d9565b610885600254600161087d91906116fc565b600154610c00565b905090565b6001600160a01b0382166108d85760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610190565b600081116109285760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610190565b60408051606081018252338082526001600160a01b03851660208301529181018390526001805482916006916000918261096183611730565b9091555081526020808201929092526040908101600020835181546001600160a01b039182166001600160a01b03199182161783559385015160018084018054929093169190951617905592015160029092019190915580547fc764405a2acf44bf91c070359a13daa334e14c5a24f6f78b82e5b94d4863b0df916109e591611777565b604080519182526001600160a01b038086166020840152871690820152606081018590526080015b60405180910390a150505050565b8015610bfc57600082815260066020908152604091829020825160608101845281546001600160a01b03908116825260018301541692810183905260029091015481840181905292516370a0823160e01b815230600482015290929082906370a0823190602401602060405180830381865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac391906117c8565b1015610b1d5760405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e742062616c616e636520696e2074686520636f6e746044820152631c9858dd60e21b6064820152608401610190565b8151604080840151905163a9059cbb60e01b81526001600160a01b0384169263a9059cbb92610b62926004016001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba591906117ab565b50815160208084015160408086015181516001600160a01b0395861681529490921692840192909252908201527fa92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8a90606001610a0d565b5050565b610c086112d9565b610c106112d9565b6000808080875b878111610cd6576000818152600560205260409020546001600160a01b031615610c4d5784610c4581611730565b955050610cc4565b6000818152600660205260409020546001600160a01b031615610c7c5783610c7481611730565b945050610cc4565b60008181526007602052604090205415610ca25781610c9a81611730565b925050610cc4565b60008181526004602052604090205415610cc45782610cc081611730565b9350505b80610cce81611730565b915050610c17565b5060008183610ce586886116fc565b610cef91906116fc565b610cf991906116fc565b90508067ffffffffffffffff811115610d1457610d146116ba565b604051908082528060200260200182016040528015610d3d578160200160208202803683370190505b506060870152604086018990528367ffffffffffffffff811115610d6357610d636116ba565b604051908082528060200260200182016040528015610dae57816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610d815790505b5060808701528467ffffffffffffffff811115610dcd57610dcd6116ba565b604051908082528060200260200182016040528015610e1857816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610deb5790505b5060a08701528267ffffffffffffffff811115610e3757610e376116ba565b604051908082528060200260200182016040528015610e7c57816020015b6040805180820190915260008082526020820152815260200190600190039081610e555790505b5060c08701528167ffffffffffffffff811115610e9b57610e9b6116ba565b604051908082528060200260200182016040528015610edb57816020015b604080516020810190915260608152815260200190600190039081610eb95790505b5060e0870152600254865260018054610ef49190611777565b6020870152506000935083925082915081905080885b88811161127e576000818152600560205260409020546001600160a01b031615610ff357600087606001518380610f4090611730565b945081518110610f5257610f526116d0565b60200260200101906003811115610f6b57610f6b6113ad565b90816003811115610f7e57610f7e6113ad565b905250600081815260056020908152604091829020825160608101845281546001600160a01b03908116825260018301541692810192909252600201549181019190915260a088015187610fd181611730565b985081518110610fe357610fe36116d0565b602002602001018190525061126c565b6000818152600660205260409020546001600160a01b0316156110c55760018760600151838061102290611730565b945081518110611034576110346116d0565b6020026020010190600381111561104d5761104d6113ad565b90816003811115611060576110606113ad565b905250600081815260066020908152604091829020825160608101845281546001600160a01b0390811682526001830154169281019290925260020154918101919091526080880151866110b381611730565b975081518110610fe357610fe36116d0565b600081815260076020526040902054156111b4576003876060015183806110eb90611730565b9450815181106110fd576110fd6116d0565b60200260200101906003811115611116576111166113ad565b90816003811115611129576111296113ad565b9052506000818152600760209081526040918290208251815480840282018501855292810183815290939192849284919084018282801561118957602002820191906000526020600020905b815481526020019060010190808311611175575b5050505050815250508760e0015184806111a290611730565b955081518110610fe357610fe36116d0565b60008181526004602052604090205415611267576002876060015183806111da90611730565b9450815181106111ec576111ec6116d0565b60200260200101906003811115611205576112056113ad565b90816003811115611218576112186113ad565b9052506000818152600460209081526040918290208251808401909352805483526001015460ff1615159082015260c08801518561125581611730565b965081518110610fe357610fe36116d0565b61127e565b8061127681611730565b915050610f0a565b5094955050505050505b92915050565b8280548282559060005260206000209081019282156112c9579160200282015b828111156112c95782518255916020019190600101906112ae565b506112d592915061131e565b5090565b60405180610100016040528060008152602001600081526020016000815260200160608152602001606081526020016060815260200160608152602001606081525090565b5b808211156112d5576000815560010161131f565b60006020828403121561134557600080fd5b813567ffffffffffffffff81111561135c57600080fd5b82016040818503121561136e57600080fd5b9392505050565b6000806040838503121561138857600080fd5b82356001600160a01b038116811461139f57600080fd5b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b6000815180845260208085019450602084016000805b8481101561141257825160048082106113ff57634e487b7160e01b845260218152602484fd5b50885296830196918301916001016113d9565b50959695505050505050565b60008151808452602080850194506020840160005b8381101561147157815180516001600160a01b0390811689528482015116848901526040908101519088015260609096019590820190600101611433565b509495945050505050565b60008151808452602080850194506020840160005b838110156114715781518051885283015115158388015260409096019590820190600101611491565b60008151808452602080850194506020840160005b83811015611471578151875295820195908201906001016114cf565b600082825180855260208086019550808260051b84010181860160005b8481101561153e57858303601f1901895281515184845261152b858501826114ba565b9985019993505090830190600101611508565b5090979650505050505050565b60208152815160208201526020820151604082015260408201516060820152600060608301516101008060808501526115886101208501836113c3565b91506080850151601f19808685030160a08701526115a6848361141e565b935060a08701519150808685030160c08701526115c3848361141e565b935060c08701519150808685030160e08701526115e0848361147c565b935060e08701519150808685030183870152506115fd83826114eb565b9695505050505050565b60006020828403121561161957600080fd5b5035919050565b6000808335601e1984360301811261163757600080fd5b83018035915067ffffffffffffffff82111561165257600080fd5b602001915060608102360382131561166957600080fd5b9250929050565b6000808335601e1984360301811261168757600080fd5b83018035915067ffffffffffffffff8211156116a257600080fd5b6020019150600581901b360382131561166957600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611288576112886116e6565b60006020828403121561172157600080fd5b81356004811061136e57600080fd5b600060018201611742576117426116e6565b5060010190565b801515811461175757600080fd5b50565b60006020828403121561176c57600080fd5b813561136e81611749565b81810381811115611288576112886116e6565b8281526040602082015260006117a360408301846114ba565b949350505050565b6000602082840312156117bd57600080fd5b815161136e81611749565b6000602082840312156117da57600080fd5b505191905056fea2646970667358221220f1374b438f74eb32eea780bb31bf5a818cfaa61ca8554b45912cfc9614adc0c464736f6c63430008160033", + "sourceMap": "194:12162:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4755:2641;;;;;;:::i;:::-;;:::i;:::-;;3098:875;;;;;;:::i;:::-;;:::i;279:22::-;;;;;;;;;912:25:28;;;900:2;885:18;279:22:24;;;;;;;;404:44;;;;;;4601:148;;;:::i;:::-;;;;;;;:::i;2262:61::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;5989:25:28;;;6057:14;;6050:22;6045:2;6030:18;;6023:50;5962:18;2262:61:24;5821:258:28;567:44:24;;;;;;3979:616;;;;;;:::i;:::-;;:::i;4755:2641::-;4958:5;;-1:-1:-1;;;;;4958:5:24;4944:10;:19;4936:45;;;;-1:-1:-1;;;4936:45:24;;6286:2:28;4936:45:24;;;6268:21:28;6325:2;6305:18;;;6298:30;-1:-1:-1;;;6344:18:28;;;6337:43;6397:18;;4936:45:24;;;;;;;;;5028:1;4999:18;;;;:10;:18;:::i;:::-;:25;;:30;;:64;;;-1:-1:-1;5062:1:24;5033:18;:10;;:18;:::i;:::-;:25;;:30;;4999:64;4991:110;;;;-1:-1:-1;;;4991:110:24;;7792:2:28;4991:110:24;;;7774:21:28;7831:2;7811:18;;;7804:30;7870:34;7850:18;;;7843:62;-1:-1:-1;;;7921:18:28;;;7914:31;7962:19;;4991:110:24;7590:397:28;4991:110:24;5112:33;;5230:18;;;;:10;:18;:::i;:::-;:25;;5203:62;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5203:62:24;-1:-1:-1;5159:106:24;-1:-1:-1;5276:19:24;5298:18;;;;:10;:18;:::i;:::-;5317:1;5298:21;;;;;;;:::i;:::-;;;;;;;:31;;-1:-1:-1;5358:1:24;;-1:-1:-1;5339:271:24;5367:18;;;;:10;:18;:::i;:::-;:25;;5361:3;:31;5339:271;;;5456:15;:11;5470:1;5456:15;:::i;:::-;5419:18;;;;:10;:18;:::i;:::-;5438:3;5419:23;;;;;;;:::i;:::-;;;;;;:33;;;:52;5415:124;;5489:35;;-1:-1:-1;;;5489:35:24;;8720:2:28;5489:35:24;;;8702:21:28;8759:2;8739:18;;;8732:30;8798:27;8778:18;;;8771:55;8843:18;;5489:35:24;8518:349:28;5415:124:24;5566:18;;;;:10;:18;:::i;:::-;5585:3;5566:23;;;;;;;:::i;:::-;;;;;;;:33;;-1:-1:-1;;5394:5:24;;5339:271;;;;5625:11;5620:1067;5648:18;;;;:10;:18;:::i;:::-;:25;;5642:3;:31;5620:1067;;;5696:30;5729:18;;;;:10;:18;:::i;:::-;5748:3;5729:23;;;;;;;:::i;:::-;;;;;;5696:56;;5792:29;;5771:7;:17;;;:50;5767:95;;5839:8;;;5767:95;5902:18;5880;;;;;;;;:::i;:::-;:40;;;;;;;;:::i;:::-;;5876:800;;6018:17;;5940:24;5965:27;;;;:::i;:::-;;;5940:53;;;;;;;;:::i;:::-;;;;;;:113;;;;;5876:800;;;6112:21;6090:18;;;;;;;;:::i;:::-;:43;;;;;;;;:::i;:::-;;6086:590;;6153:120;6204:17;;6241:14;;;;;;;;:::i;:::-;6153:31;:120::i;:::-;6364:17;;6290:24;6315:27;;;;:::i;6086:590::-;6444:23;6422:18;;;;;;;;:::i;:::-;:45;;;;;;;;:::i;:::-;;6418:258;;6559:17;;6485:24;6510:27;;;;:::i;6418:258::-;6631:30;;-1:-1:-1;;;6631:30:24;;9860:2:28;6631:30:24;;;9842:21:28;9899:2;9879:18;;;9872:30;-1:-1:-1;;;9918:18:28;;;9911:50;9978:18;;6631:30:24;9658:344:28;6418:258:24;5682:1005;5620:1067;5675:5;;5620:1067;;;-1:-1:-1;6700:29:24;;6697:693;;6796:37;6863:25;6836:64;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6836:64:24;;6796:104;;6974:9;6969:136;6993:25;6989:1;:29;6969:136;;;7065:24;7090:1;7065:27;;;;;;;;:::i;:::-;;;;;;;7039:20;7060:1;7039:23;;;;;;;;:::i;:::-;;;;;;;;;;:53;7020:3;;6969:136;;;-1:-1:-1;7135:7:24;:9;;7166:20;;7117:17;;:28;;;7135:9;;;:::i;:::-;;;;;7117:28;;;;;;;;;;;:46;;:69;;;;;;;;;;;;:::i;:::-;;7265:20;:27;7232:29;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;7355:1:24;7345:7;;7309:70;;7345:11;;;:::i;:::-;7358:20;7309:70;;;;;;;:::i;:::-;;;;;;;;6730:660;6697:693;4821:2575;;;4755:2641;:::o;3098:875::-;-1:-1:-1;;;;;3178:26:24;;3170:60;;;;-1:-1:-1;;;3170:60:24;;10679:2:28;3170:60:24;;;10661:21:28;10718:2;10698:18;;;10691:30;-1:-1:-1;;;10737:18:28;;;10730:51;10798:18;;3170:60:24;10477:345:28;3170:60:24;3257:1;3248:6;:10;3240:55;;;;-1:-1:-1;;;3240:55:24;;11029:2:28;3240:55:24;;;11011:21:28;;;11048:18;;;11041:30;11107:34;11087:18;;;11080:62;11159:18;;3240:55:24;10827:356:28;3240:55:24;3515:52;;-1:-1:-1;;;3515:52:24;;3332:10;3515:52;;;11428:34:28;;;-1:-1:-1;;;;;3515:18:24;;11478::28;;;11471:43;;;11530:18;;;11523:34;;;3332:10:24;;3375:12;;3515:18;;;11363::28;;3515:52:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3494:120;;;;-1:-1:-1;;;3494:120:24;;12020:2:28;3494:120:24;;;12002:21:28;12059:2;12039:18;;;12032:30;-1:-1:-1;;;12078:18:28;;;12071:51;12139:18;;3494:120:24;11818:345:28;3494:120:24;3653:135;;;;;;;;-1:-1:-1;;;;;3653:135:24;;;;;;;;;;;;;;;;;3853:7;:9;;3653:135;;3844:8;;3625:25;;;3853:9;;;:::i;:::-;;;;-1:-1:-1;3844:19:24;;;;;;;;;;;;;;-1:-1:-1;3844:19:24;:32;;;;-1:-1:-1;;;;;3844:32:24;;;-1:-1:-1;;;;;;3844:32:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3916:7;;3891:75;;3916:9;;;:::i;:::-;3891:75;;;12399:25:28;;;-1:-1:-1;;;;;12498:15:28;;;12493:2;12478:18;;12471:43;12550:15;;12530:18;;;12523:43;12597:2;12582:18;;12575:34;;;12386:3;12371:19;3891:75:24;12168:447:28;4601:148:24;4648:15;;:::i;:::-;4682:60;4701:29;;4731:1;4701:31;;;;:::i;:::-;4734:7;;4682:18;:60::i;:::-;4675:67;;4601:148;:::o;3979:616::-;-1:-1:-1;;;;;4060:26:24;;4052:60;;;;-1:-1:-1;;;4052:60:24;;10679:2:28;4052:60:24;;;10661:21:28;10718:2;10698:18;;;10691:30;-1:-1:-1;;;10737:18:28;;;10730:51;10798:18;;4052:60:24;10477:345:28;4052:60:24;4139:1;4130:6;:10;4122:55;;;;-1:-1:-1;;;4122:55:24;;11029:2:28;4122:55:24;;;11011:21:28;;;11048:18;;;11041:30;11107:34;11087:18;;;11080:62;11159:18;;4122:55:24;10827:356:28;4122:55:24;4266:138;;;;;;;;4215:10;4266:138;;;-1:-1:-1;;;;;4266:138:24;;;;;;;;;;;;4472:7;:9;;4266:138;;4462:9;;4187:25;;;4472:9;;;:::i;:::-;;;;-1:-1:-1;4462:20:24;;;;;;;;;;;;;;-1:-1:-1;4462:20:24;:34;;;;-1:-1:-1;;;;;4462:34:24;;;-1:-1:-1;;;;;;4462:34:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4537:7;;4511:77;;4537:9;;;:::i;:::-;4511:77;;;12399:25:28;;;-1:-1:-1;;;;;12498:15:28;;;12493:2;12478:18;;12471:43;12550:15;;12530:18;;;12523:43;12597:2;12582:18;;12575:34;;;12386:3;12371:19;4511:77:24;;;;;;;;4042:553;;3979:616;;:::o;8626:750::-;8744:7;8740:630;;;8767:27;8797:20;;;:9;:20;;;;;;;;;8767:50;;;;;;;;;-1:-1:-1;;;;;8767:50:24;;;;;;;;;;;;;;;;;;;;;;;;;;;8918:30;;-1:-1:-1;;;8918:30:24;;8942:4;8918:30;;;12766:51:28;8767:50:24;;;;;8918:15;;12739:18:28;;8918:30:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;8893:147;;;;-1:-1:-1;;;8893:147:24;;13219:2:28;8893:147:24;;;13201:21:28;13258:2;13238:18;;;13231:30;13297:34;13277:18;;;13270:62;-1:-1:-1;;;13348:18:28;;;13341:34;13392:19;;8893:147:24;13017:400:28;8893:147:24;9136:29;;9167:18;;;;;9121:65;;-1:-1:-1;;;9121:65:24;;-1:-1:-1;;;;;9121:14:24;;;;;:65;;;;-1:-1:-1;;;;;13614:32:28;;;;13596:51;;13678:2;13663:18;;13656:34;13584:2;13569:18;;13422:274;9121:65:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9238:29:24;;9285:24;;;;;9327:18;;;;;9206:153;;-1:-1:-1;;;;;11446:15:28;;;11428:34;;11498:15;;;;11478:18;;;11471:43;;;;11530:18;;;11523:34;9206:153:24;;11378:2:28;11363:18;9206:153:24;11188:375:28;8740:630:24;8626:750;;:::o;9534:2819::-;9635:15;;:::i;:::-;9662:22;;:::i;:::-;9695:23;;;;9879:5;9854:534;9899:3;9886:9;:16;9854:534;;9983:1;9935:19;;;:8;:19;;;;;:36;-1:-1:-1;;;;;9935:36:24;:50;9931:447;;10003:17;;;;:::i;:::-;;;;9931:447;;;10095:1;10045:20;;;:9;:20;;;;;:38;-1:-1:-1;;;;;10045:38:24;:52;10041:337;;10115:18;;;;:::i;:::-;;;;10041:337;;;10214:1;10158:28;;;:17;:28;;;;;:53;:57;10154:224;;10233:27;;;;:::i;:::-;;;;10154:224;;;10328:1;10285:28;;;:17;:28;;;;;:40;:44;10281:97;;10347:16;;;;:::i;:::-;;;;10281:97;9904:11;;;;:::i;:::-;;;;9854:534;;;-1:-1:-1;10398:22:24;10477:25;10460:14;10423:34;10441:16;10423:15;:34;:::i;:::-;:51;;;;:::i;:::-;:79;;;;:::i;:::-;10398:104;;10552:14;10527:40;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10527:40:24;-1:-1:-1;10512:12:24;;;:55;10578:13;;;:21;;;10650:16;10635:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;10635:32:24;;-1:-1:-1;;10635:32:24;;;;;;;;;;;-1:-1:-1;10609:23:24;;;:58;10716:15;10702:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;10702:30:24;;-1:-1:-1;;10702:30:24;;;;;;;;;;;-1:-1:-1;10677:22:24;;;:55;10798:14;10775:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;10775:38:24;;;;;;;;;;;;;;;-1:-1:-1;10742:30:24;;;:71;10881:25;10857:50;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;10857:50:24;;;;;;;;;;;;;;;-1:-1:-1;10823:31:24;;;:84;10952:29;;10917:64;;11034:1;11024:7;;:11;;11034:1;11024:11;:::i;:::-;10991:30;;;:44;-1:-1:-1;11065:1:24;;-1:-1:-1;11065:1:24;;-1:-1:-1;11065:1:24;;-1:-1:-1;11065:1:24;;-1:-1:-1;11065:1:24;11226:5;11201:1122;11246:3;11233:9;:16;11201:1122;;11330:1;11282:19;;;:8;:19;;;;;:36;-1:-1:-1;;;;;11282:36:24;:50;11278:1035;;11383:26;11350:6;:12;;;11363:16;;;;;:::i;:::-;;;11350:30;;;;;;;;:::i;:::-;;;;;;:59;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;11469:19:24;;;;:8;:19;;;;;;;;;11425:63;;;;;;;;;-1:-1:-1;;;;;11425:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;;11448:17;;;;:::i;:::-;;;11425:41;;;;;;;;:::i;:::-;;;;;;:63;;;;11278:1035;;;11563:1;11513:20;;;:9;:20;;;;;:38;-1:-1:-1;;;;;11513:38:24;:52;11509:804;;11616:29;11583:6;:12;;;11596:16;;;;;:::i;:::-;;;11583:30;;;;;;;;:::i;:::-;;;;;;:62;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;11707:20:24;;;;:9;:20;;;;;;;;;11661:66;;;;;;;;;-1:-1:-1;;;;;11661:66:24;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;11685:18;;;;:::i;:::-;;;11661:43;;;;;;;;:::i;11509:804::-;11809:1;11753:28;;;:17;:28;;;;;:53;:57;11748:565;;11861:39;11828:6;:12;;;11841:16;;;;;:::i;:::-;;;11828:30;;;;;;;;:::i;:::-;;;;;;:72;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;11979:28:24;;;;:17;:28;;;;;;;;;11916:91;;;;;;;;;;;;;;;;;;;;;11979:28;;11916:91;;11979:28;;11916:91;;;11979:28;11916:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:6;:31;;;11948:27;;;;;:::i;:::-;;;11916:60;;;;;;;;:::i;11748:565::-;12075:1;12032:28;;;:17;:28;;;;;:40;:44;12028:285;;12127:36;12094:6;:12;;;12107:16;;;;;:::i;:::-;;;12094:30;;;;;;;;:::i;:::-;;;;;;:69;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;12230:28:24;;;;:17;:28;;;;;;;;;12179:79;;;;;;;;;;;;;;;;;;;;;;;:30;;;;12210:16;;;;:::i;:::-;;;12179:48;;;;;;;;:::i;12028:285::-;12293:5;;12028:285;11251:11;;;;:::i;:::-;;;;11201:1122;;;-1:-1:-1;12340:6:24;;-1:-1:-1;;;;;;9534:2819:24;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:388:28;102:6;155:2;143:9;134:7;130:23;126:32;123:52;;;171:1;168;161:12;123:52;211:9;198:23;244:18;236:6;233:30;230:50;;;276:1;273;266:12;230:50;299:22;;355:2;337:16;;;333:25;330:45;;;371:1;368;361:12;330:45;394:2;14:388;-1:-1:-1;;;14:388:28:o;407:354::-;475:6;483;536:2;524:9;515:7;511:23;507:32;504:52;;;552:1;549;542:12;504:52;578:23;;-1:-1:-1;;;;;630:31:28;;620:42;;610:70;;676:1;673;666:12;610:70;699:5;751:2;736:18;;;;723:32;;-1:-1:-1;;;407:354:28:o;948:127::-;1009:10;1004:3;1000:20;997:1;990:31;1040:4;1037:1;1030:15;1064:4;1061:1;1054:15;1080:706;1149:3;1187:5;1181:12;1214:6;1209:3;1202:19;1240:4;1269;1264:3;1260:14;1253:21;;1308:4;1301:5;1297:16;1331:1;1352;1362:399;1378:6;1373:3;1370:15;1362:399;;;1447:6;1441:13;1477:1;1508:2;1504;1501:10;1491:162;;-1:-1:-1;;;1543:31:28;;1602:4;1591:16;;1634:4;1550:1;1624:15;1491:162;-1:-1:-1;1666:15:28;;1701:12;;;;1736:15;;;;1404:1;1395:11;1362:399;;;-1:-1:-1;1777:3:28;;1080:706;-1:-1:-1;;;;;;1080:706:28:o;1791:674::-;1852:3;1890:5;1884:12;1917:6;1912:3;1905:19;1943:4;1972;1967:3;1963:14;1956:21;;2011:4;2004:5;2000:16;2034:1;2044:396;2058:6;2055:1;2052:13;2044:396;;;2117:13;;2201:9;;-1:-1:-1;;;;;2197:18:28;;;2185:31;;2260:11;;;2254:18;2250:27;2236:12;;;2229:49;2301:4;2345:11;;;2339:18;2325:12;;;2318:40;2387:4;2378:14;;;;2415:15;;;;2170:1;2073:9;2044:396;;;-1:-1:-1;2456:3:28;;1791:674;-1:-1:-1;;;;;1791:674:28:o;2470:558::-;2539:3;2577:5;2571:12;2604:6;2599:3;2592:19;2630:4;2659;2654:3;2650:14;2643:21;;2698:4;2691:5;2687:16;2721:1;2731:272;2745:6;2742:1;2739:13;2731:272;;;2804:13;;2842:9;;2830:22;;2906:11;;2900:18;2893:26;2886:34;2872:12;;;2865:56;2950:4;2941:14;;;;2978:15;;;;2767:1;2760:9;2731:272;;3033:439;3086:3;3124:5;3118:12;3151:6;3146:3;3139:19;3177:4;3206;3201:3;3197:14;3190:21;;3245:4;3238:5;3234:16;3268:1;3278:169;3292:6;3289:1;3286:13;3278:169;;;3353:13;;3341:26;;3387:12;;;;3422:15;;;;3314:1;3307:9;3278:169;;3477:711;3547:3;3578;3610:5;3604:12;3637:6;3632:3;3625:19;3663:4;3692:2;3687:3;3683:12;3676:19;;3748:2;3738:6;3735:1;3731:14;3724:5;3720:26;3716:35;3785:2;3778:5;3774:14;3806:1;3816:346;3830:6;3827:1;3824:13;3816:346;;;3895:16;;;-1:-1:-1;;3891:30:28;3879:43;;3961:13;;3955:20;3988:16;;;4025:57;4068:13;;;3955:20;4025:57;:::i;:::-;4140:12;;;;4017:65;-1:-1:-1;;4105:15:28;;;;3852:1;3845:9;3816:346;;;-1:-1:-1;4178:4:28;;3477:711;-1:-1:-1;;;;;;;3477:711:28:o;4193:1438::-;4376:2;4365:9;4358:21;4421:6;4415:13;4410:2;4399:9;4395:18;4388:41;4483:2;4475:6;4471:15;4465:22;4460:2;4449:9;4445:18;4438:50;4542:2;4534:6;4530:15;4524:22;4519:2;4508:9;4504:18;4497:50;4339:4;4594:2;4586:6;4582:15;4576:22;4617:6;4660:2;4654:3;4643:9;4639:19;4632:31;4686:79;4760:3;4749:9;4745:19;4731:12;4686:79;:::i;:::-;4672:93;;4814:3;4806:6;4802:16;4796:23;4842:2;4838:7;4910:2;4898:9;4890:6;4886:22;4882:31;4876:3;4865:9;4861:19;4854:60;4937;4990:6;4974:14;4937:60;:::i;:::-;4923:74;;5046:3;5038:6;5034:16;5028:23;5006:45;;5116:2;5104:9;5096:6;5092:22;5088:31;5082:3;5071:9;5067:19;5060:60;5143;5196:6;5180:14;5143:60;:::i;:::-;5129:74;;5252:3;5244:6;5240:16;5234:23;5212:45;;5322:2;5310:9;5302:6;5298:22;5294:31;5288:3;5277:9;5273:19;5266:60;5349:68;5410:6;5394:14;5349:68;:::i;:::-;5335:82;;5466:3;5458:6;5454:16;5448:23;5426:45;;5535:2;5523:9;5515:6;5511:22;5507:31;5502:2;5491:9;5487:18;5480:59;;5556:69;5618:6;5602:14;5556:69;:::i;:::-;5548:77;4193:1438;-1:-1:-1;;;;;;4193:1438:28:o;5636:180::-;5695:6;5748:2;5736:9;5727:7;5723:23;5719:32;5716:52;;;5764:1;5761;5754:12;5716:52;-1:-1:-1;5787:23:28;;5636:180;-1:-1:-1;5636:180:28:o;6426:582::-;6553:4;6559:6;6619:11;6606:25;6713:2;6709:7;6698:8;6682:14;6678:29;6674:43;6654:18;6650:68;6640:96;;6732:1;6729;6722:12;6640:96;6759:33;;6811:20;;;-1:-1:-1;6854:18:28;6843:30;;6840:50;;;6886:1;6883;6876:12;6840:50;6919:4;6907:17;;-1:-1:-1;6978:4:28;6966:17;;6950:14;6946:38;6936:49;;6933:69;;;6998:1;6995;6988:12;6933:69;6426:582;;;;;:::o;7013:572::-;7133:4;7139:6;7199:11;7186:25;7293:2;7289:7;7278:8;7262:14;7258:29;7254:43;7234:18;7230:68;7220:96;;7312:1;7309;7302:12;7220:96;7339:33;;7391:20;;;-1:-1:-1;7434:18:28;7423:30;;7420:50;;;7466:1;7463;7456:12;7420:50;7499:4;7487:17;;-1:-1:-1;7550:1:28;7546:14;;;7530;7526:35;7516:46;;7513:66;;;7575:1;7572;7565:12;7992:127;8053:10;8048:3;8044:20;8041:1;8034:31;8084:4;8081:1;8074:15;8108:4;8105:1;8098:15;8124:127;8185:10;8180:3;8176:20;8173:1;8166:31;8216:4;8213:1;8206:15;8240:4;8237:1;8230:15;8256:127;8317:10;8312:3;8308:20;8305:1;8298:31;8348:4;8345:1;8338:15;8372:4;8369:1;8362:15;8388:125;8453:9;;;8474:10;;;8471:36;;;8487:18;;:::i;8872:272::-;8947:6;9000:2;8988:9;8979:7;8975:23;8971:32;8968:52;;;9016:1;9013;9006:12;8968:52;9055:9;9042:23;9094:1;9087:5;9084:12;9074:40;;9110:1;9107;9100:12;9149:135;9188:3;9209:17;;;9206:43;;9229:18;;:::i;:::-;-1:-1:-1;9276:1:28;9265:13;;9149:135::o;9289:118::-;9375:5;9368:13;9361:21;9354:5;9351:32;9341:60;;9397:1;9394;9387:12;9341:60;9289:118;:::o;9412:241::-;9468:6;9521:2;9509:9;9500:7;9496:23;9492:32;9489:52;;;9537:1;9534;9527:12;9489:52;9576:9;9563:23;9595:28;9617:5;9595:28;:::i;10007:128::-;10074:9;;;10095:11;;;10092:37;;;10109:18;;:::i;10140:332::-;10347:6;10336:9;10329:25;10390:2;10385;10374:9;10370:18;10363:30;10310:4;10410:56;10462:2;10451:9;10447:18;10439:6;10410:56;:::i;:::-;10402:64;10140:332;-1:-1:-1;;;;10140:332:28:o;11568:245::-;11635:6;11688:2;11676:9;11667:7;11663:23;11659:32;11656:52;;;11704:1;11701;11694:12;11656:52;11736:9;11730:16;11755:28;11777:5;11755:28;:::i;12828:184::-;12898:6;12951:2;12939:9;12930:7;12926:23;12922:32;12919:52;;;12967:1;12964;12957:12;12919:52;-1:-1:-1;12990:16:28;;12828:184;-1:-1:-1;12828:184:28:o", + "linkReferences": {} + }, + "methodIdentifiers": { + "cancelResolutions(uint256)": "ca9b21ae", + "counter()": "61bc221a", + "deposit(address,uint256)": "47e7ef24", + "getUpdateForL2()": "b1538706", + "lastProcessedUpdate_origin_l1()": "7fd4f845", + "lastProcessedUpdate_origin_l2()": "f26ee9d0", + "update_l1_from_l2(((bytes,bytes,uint256,uint256,bytes32)[],(uint256,uint8,bool)[]))": "34b03805", + "withdraw(address,uint256)": "f3fef3a3" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"depositRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DepositAcceptedIntoQueue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"originalRequestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"cancelJustified\",\"type\":\"bool\"}],\"name\":\"DisputeResolutionAcceptedIntoQueue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"l2UpdatesToRemove\",\"type\":\"uint256[]\"}],\"name\":\"L2UpdatesToRemovedAcceptedIntoQueue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrawAcceptedIntoQueue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"cancelHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"calculatedHash\",\"type\":\"bytes32\"}],\"name\":\"cancelAndCalculatedHash\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"cancelResolutions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2RequestId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"cancelJustified\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUpdateForL2\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"lastProccessedRequestOnL1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastAcceptedRequestOnL1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"enum RollDown.PendingRequestType[]\",\"name\":\"order\",\"type\":\"uint8[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"withdrawRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct RollDown.Withdraw[]\",\"name\":\"pendingWithdraws\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"depositRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct RollDown.Deposit[]\",\"name\":\"pendingDeposits\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"l2RequestId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"cancelJustified\",\"type\":\"bool\"}],\"internalType\":\"struct RollDown.CancelResolution[]\",\"name\":\"pendingCancelResultions\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"l2UpdatesToRemove\",\"type\":\"uint256[]\"}],\"internalType\":\"struct RollDown.L2UpdatesToRemove[]\",\"name\":\"pendingL2UpdatesToRemove\",\"type\":\"tuple[]\"}],\"internalType\":\"struct RollDown.L1Update\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastProcessedUpdate_origin_l1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastProcessedUpdate_origin_l2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"updater\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"canceler\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"lastProccessedRequestOnL1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastAcceptedRequestOnL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"internalType\":\"struct RollDown.Cancel[]\",\"name\":\"cancles\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"enum RollDown.UpdateType\",\"name\":\"updateType\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"internalType\":\"struct RollDown.RequestResult[]\",\"name\":\"results\",\"type\":\"tuple[]\"}],\"internalType\":\"struct RollDown.L2Update\",\"name\":\"inputArray\",\"type\":\"tuple\"}],\"name\":\"update_l1_from_l2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/rolldown.sol\":\"RollDown\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"src/rolldown.sol\":{\"keccak256\":\"0x586a74739acf6ce67e6f3758bdb19dac0fcbf88f6add3bab0007f3ce4b4f6734\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30b157084dab44c068b0c540c8121d7cbafa10e936d18140a8ace65e4d11b226\",\"dweb:/ipfs/QmShYNdbcVyhtBQHA8xHanVUpg6uvmSA51Uk7YvGkaPEUR\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.22+commit.4fc1097e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "address", + "name": "depositRecipient", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "DepositAcceptedIntoQueue", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "originalRequestId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "bool", + "name": "cancelJustified", + "type": "bool", + "indexed": false + } + ], + "type": "event", + "name": "DisputeResolutionAcceptedIntoQueue", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "withdrawRecipient", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "FundsWithdrawn", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256[]", + "name": "l2UpdatesToRemove", + "type": "uint256[]", + "indexed": false + } + ], + "type": "event", + "name": "L2UpdatesToRemovedAcceptedIntoQueue", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "address", + "name": "withdrawRecipient", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "WithdrawAcceptedIntoQueue", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "cancelHash", + "type": "bytes32", + "indexed": false + }, + { + "internalType": "bytes32", + "name": "calculatedHash", + "type": "bytes32", + "indexed": false + } + ], + "type": "event", + "name": "cancelAndCalculatedHash", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "cancelResolutions", + "outputs": [ + { + "internalType": "uint256", + "name": "l2RequestId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "cancelJustified", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "deposit" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getUpdateForL2", + "outputs": [ + { + "internalType": "struct RollDown.L1Update", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "lastProccessedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastAcceptedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "offset", + "type": "uint256" + }, + { + "internalType": "enum RollDown.PendingRequestType[]", + "name": "order", + "type": "uint8[]" + }, + { + "internalType": "struct RollDown.Withdraw[]", + "name": "pendingWithdraws", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "withdrawRecipient", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "struct RollDown.Deposit[]", + "name": "pendingDeposits", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "depositRecipient", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "struct RollDown.CancelResolution[]", + "name": "pendingCancelResultions", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "l2RequestId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "cancelJustified", + "type": "bool" + } + ] + }, + { + "internalType": "struct RollDown.L2UpdatesToRemove[]", + "name": "pendingL2UpdatesToRemove", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256[]", + "name": "l2UpdatesToRemove", + "type": "uint256[]" + } + ] + } + ] + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "lastProcessedUpdate_origin_l1", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "lastProcessedUpdate_origin_l2", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "struct RollDown.L2Update", + "name": "inputArray", + "type": "tuple", + "components": [ + { + "internalType": "struct RollDown.Cancel[]", + "name": "cancles", + "type": "tuple[]", + "components": [ + { + "internalType": "bytes", + "name": "updater", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "canceler", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "lastProccessedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastAcceptedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "hash", + "type": "bytes32" + } + ] + }, + { + "internalType": "struct RollDown.RequestResult[]", + "name": "results", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "enum RollDown.UpdateType", + "name": "updateType", + "type": "uint8" + }, + { + "internalType": "bool", + "name": "status", + "type": "bool" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "update_l1_from_l2" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "withdraw" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", + "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", + "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + "forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/rolldown.sol": "RollDown" + }, + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70", + "urls": [ + "bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c", + "dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792", + "urls": [ + "bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453", + "dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d", + "urls": [ + "bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875", + "dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { + "keccak256": "0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72", + "urls": [ + "bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc", + "dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT" + ], + "license": "MIT" + }, + "src/rolldown.sol": { + "keccak256": "0x586a74739acf6ce67e6f3758bdb19dac0fcbf88f6add3bab0007f3ce4b4f6734", + "urls": [ + "bzz-raw://30b157084dab44c068b0c540c8121d7cbafa10e936d18140a8ace65e4d11b226", + "dweb:/ipfs/QmShYNdbcVyhtBQHA8xHanVUpg6uvmSA51Uk7YvGkaPEUR" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/rolldown.sol", + "id": 28858, + "exportedSymbols": { + "IERC20": [ + 729 + ], + "Math": [ + 2094 + ], + "RollDown": [ + 28857 + ], + "SignedMath": [ + 2199 + ], + "Strings": [ + 1040 + ] + }, + "nodeType": "SourceUnit", + "src": "32:12325:24", + "nodes": [ + { + "id": 27811, + "nodeType": "PragmaDirective", + "src": "32:23:24", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ] + }, + { + "id": 27812, + "nodeType": "ImportDirective", + "src": "84:56:24", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "nameLocation": "-1:-1:-1", + "scope": 28858, + "sourceUnit": 730, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 27813, + "nodeType": "ImportDirective", + "src": "141:51:24", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "file": "@openzeppelin/contracts/utils/Strings.sol", + "nameLocation": "-1:-1:-1", + "scope": 28858, + "sourceUnit": 1041, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 28857, + "nodeType": "ContractDefinition", + "src": "194:12162:24", + "nodes": [ + { + "id": 27815, + "nodeType": "VariableDeclaration", + "src": "228:13:24", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "owner", + "nameLocation": "236:5:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27814, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "228:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "id": 27817, + "nodeType": "VariableDeclaration", + "src": "279:22:24", + "nodes": [], + "constant": false, + "functionSelector": "61bc221a", + "mutability": "mutable", + "name": "counter", + "nameLocation": "294:7:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "279:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 27819, + "nodeType": "VariableDeclaration", + "src": "404:44:24", + "nodes": [], + "constant": false, + "functionSelector": "7fd4f845", + "mutability": "mutable", + "name": "lastProcessedUpdate_origin_l1", + "nameLocation": "419:29:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "404:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 27821, + "nodeType": "VariableDeclaration", + "src": "567:44:24", + "nodes": [], + "constant": false, + "functionSelector": "f26ee9d0", + "mutability": "mutable", + "name": "lastProcessedUpdate_origin_l2", + "nameLocation": "582:29:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "567:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 27831, + "nodeType": "EventDefinition", + "src": "619:152:24", + "nodes": [], + "anonymous": false, + "eventSelector": "e28491c2da97a9923c92f6590a040dfc143fe636e8545356cdab0a796e1acefa", + "name": "DepositAcceptedIntoQueue", + "nameLocation": "625:24:24", + "parameters": { + "id": 27830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27823, + "indexed": false, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "667:9:24", + "nodeType": "VariableDeclaration", + "scope": 27831, + "src": "659:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "659:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27825, + "indexed": false, + "mutability": "mutable", + "name": "depositRecipient", + "nameLocation": "694:16:24", + "nodeType": "VariableDeclaration", + "scope": 27831, + "src": "686:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27824, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "686:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27827, + "indexed": false, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "728:12:24", + "nodeType": "VariableDeclaration", + "scope": 27831, + "src": "720:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27826, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "720:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27829, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "758:6:24", + "nodeType": "VariableDeclaration", + "scope": 27831, + "src": "750:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "750:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "649:121:24" + } + }, + { + "id": 27841, + "nodeType": "EventDefinition", + "src": "776:154:24", + "nodes": [], + "anonymous": false, + "eventSelector": "c764405a2acf44bf91c070359a13daa334e14c5a24f6f78b82e5b94d4863b0df", + "name": "WithdrawAcceptedIntoQueue", + "nameLocation": "782:25:24", + "parameters": { + "id": 27840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27833, + "indexed": false, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "825:9:24", + "nodeType": "VariableDeclaration", + "scope": 27841, + "src": "817:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "817:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27835, + "indexed": false, + "mutability": "mutable", + "name": "withdrawRecipient", + "nameLocation": "852:17:24", + "nodeType": "VariableDeclaration", + "scope": 27841, + "src": "844:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27834, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "844:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27837, + "indexed": false, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "887:12:24", + "nodeType": "VariableDeclaration", + "scope": 27841, + "src": "879:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "879:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27839, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "917:6:24", + "nodeType": "VariableDeclaration", + "scope": 27841, + "src": "909:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27838, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "909:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "807:122:24" + } + }, + { + "id": 27849, + "nodeType": "EventDefinition", + "src": "935:139:24", + "nodes": [], + "anonymous": false, + "eventSelector": "66ad31c31fbcf76dec66f20ea9044aac0527e86cc12ac4c3eafdd02187ed0991", + "name": "DisputeResolutionAcceptedIntoQueue", + "nameLocation": "941:34:24", + "parameters": { + "id": 27848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27843, + "indexed": false, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "993:9:24", + "nodeType": "VariableDeclaration", + "scope": 27849, + "src": "985:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "985:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27845, + "indexed": false, + "mutability": "mutable", + "name": "originalRequestId", + "nameLocation": "1020:17:24", + "nodeType": "VariableDeclaration", + "scope": 27849, + "src": "1012:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27844, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1012:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27847, + "indexed": false, + "mutability": "mutable", + "name": "cancelJustified", + "nameLocation": "1052:15:24", + "nodeType": "VariableDeclaration", + "scope": 27849, + "src": "1047:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 27846, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1047:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "975:98:24" + } + }, + { + "id": 27856, + "nodeType": "EventDefinition", + "src": "1079:90:24", + "nodes": [], + "anonymous": false, + "eventSelector": "09b30365986269e3939307e7ca7b7b7421a8ad08ef18bb766c668d27cbc2aef9", + "name": "L2UpdatesToRemovedAcceptedIntoQueue", + "nameLocation": "1085:35:24", + "parameters": { + "id": 27855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27851, + "indexed": false, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "1129:9:24", + "nodeType": "VariableDeclaration", + "scope": 27856, + "src": "1121:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1121:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27854, + "indexed": false, + "mutability": "mutable", + "name": "l2UpdatesToRemove", + "nameLocation": "1150:17:24", + "nodeType": "VariableDeclaration", + "scope": 27856, + "src": "1140:27:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 27852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1140:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27853, + "nodeType": "ArrayTypeName", + "src": "1140:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "1120:48:24" + } + }, + { + "id": 27864, + "nodeType": "EventDefinition", + "src": "1174:116:24", + "nodes": [], + "anonymous": false, + "eventSelector": "a92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8a", + "name": "FundsWithdrawn", + "nameLocation": "1180:14:24", + "parameters": { + "id": 27863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27858, + "indexed": false, + "mutability": "mutable", + "name": "withdrawRecipient", + "nameLocation": "1212:17:24", + "nodeType": "VariableDeclaration", + "scope": 27864, + "src": "1204:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1204:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27860, + "indexed": false, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "1247:12:24", + "nodeType": "VariableDeclaration", + "scope": 27864, + "src": "1239:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27859, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1239:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27862, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1277:6:24", + "nodeType": "VariableDeclaration", + "scope": 27864, + "src": "1269:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1269:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1194:95:24" + } + }, + { + "id": 27870, + "nodeType": "EventDefinition", + "src": "1295:74:24", + "nodes": [], + "anonymous": false, + "eventSelector": "7ed2b11bb98bfba340e605f275f4b45bd24f5fc23ac3cd7f9f6100cd1b2d7b1a", + "name": "cancelAndCalculatedHash", + "nameLocation": "1301:23:24", + "parameters": { + "id": 27869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27866, + "indexed": false, + "mutability": "mutable", + "name": "cancelHash", + "nameLocation": "1333:10:24", + "nodeType": "VariableDeclaration", + "scope": 27870, + "src": "1325:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 27865, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1325:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27868, + "indexed": false, + "mutability": "mutable", + "name": "calculatedHash", + "nameLocation": "1353:14:24", + "nodeType": "VariableDeclaration", + "scope": 27870, + "src": "1345:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 27867, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1345:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1324:44:24" + } + }, + { + "id": 27877, + "nodeType": "StructDefinition", + "src": "1419:110:24", + "nodes": [], + "canonicalName": "RollDown.Deposit", + "members": [ + { + "constant": false, + "id": 27872, + "mutability": "mutable", + "name": "depositRecipient", + "nameLocation": "1452:16:24", + "nodeType": "VariableDeclaration", + "scope": 27877, + "src": "1444:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27871, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1444:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27874, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "1486:12:24", + "nodeType": "VariableDeclaration", + "scope": 27877, + "src": "1478:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27873, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1478:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27876, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1516:6:24", + "nodeType": "VariableDeclaration", + "scope": 27877, + "src": "1508:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27875, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1508:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Deposit", + "nameLocation": "1426:7:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27885, + "nodeType": "StructDefinition", + "src": "1570:112:24", + "nodes": [], + "canonicalName": "RollDown.Withdraw", + "documentation": { + "id": 27878, + "nodeType": "StructuredDocumentation", + "src": "1535:30:24", + "text": "PENING REQUESTS TYPES (L1)" + }, + "members": [ + { + "constant": false, + "id": 27880, + "mutability": "mutable", + "name": "withdrawRecipient", + "nameLocation": "1604:17:24", + "nodeType": "VariableDeclaration", + "scope": 27885, + "src": "1596:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27879, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1596:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27882, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "1639:12:24", + "nodeType": "VariableDeclaration", + "scope": 27885, + "src": "1631:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27881, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1631:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27884, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1669:6:24", + "nodeType": "VariableDeclaration", + "scope": 27885, + "src": "1661:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1661:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Withdraw", + "nameLocation": "1577:8:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27889, + "nodeType": "StructDefinition", + "src": "1688:69:24", + "nodes": [], + "canonicalName": "RollDown.L2UpdatesToRemove", + "members": [ + { + "constant": false, + "id": 27888, + "mutability": "mutable", + "name": "l2UpdatesToRemove", + "nameLocation": "1733:17:24", + "nodeType": "VariableDeclaration", + "scope": 27889, + "src": "1723:27:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 27886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1723:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27887, + "nodeType": "ArrayTypeName", + "src": "1723:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "name": "L2UpdatesToRemove", + "nameLocation": "1695:17:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27894, + "nodeType": "StructDefinition", + "src": "1763:90:24", + "nodes": [], + "canonicalName": "RollDown.CancelResolution", + "members": [ + { + "constant": false, + "id": 27891, + "mutability": "mutable", + "name": "l2RequestId", + "nameLocation": "1805:11:24", + "nodeType": "VariableDeclaration", + "scope": 27894, + "src": "1797:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27890, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1797:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27893, + "mutability": "mutable", + "name": "cancelJustified", + "nameLocation": "1831:15:24", + "nodeType": "VariableDeclaration", + "scope": 27894, + "src": "1826:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 27892, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1826:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "CancelResolution", + "nameLocation": "1770:16:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27899, + "nodeType": "EnumDefinition", + "src": "1859:86:24", + "nodes": [], + "canonicalName": "RollDown.PendingRequestType", + "members": [ + { + "id": 27895, + "name": "DEPOSIT", + "nameLocation": "1884:7:24", + "nodeType": "EnumValue", + "src": "1884:7:24" + }, + { + "id": 27896, + "name": "WITHDRAWAL", + "nameLocation": "1893:10:24", + "nodeType": "EnumValue", + "src": "1893:10:24" + }, + { + "id": 27897, + "name": "CANCEL_RESOLUTION", + "nameLocation": "1905:17:24", + "nodeType": "EnumValue", + "src": "1905:17:24" + }, + { + "id": 27898, + "name": "L2_UPDATES_TO_REMOVE", + "nameLocation": "1924:20:24", + "nodeType": "EnumValue", + "src": "1924:20:24" + } + ], + "name": "PendingRequestType", + "nameLocation": "1864:18:24" + }, + { + "id": 27926, + "nodeType": "StructDefinition", + "src": "1951:305:24", + "nodes": [], + "canonicalName": "RollDown.L1Update", + "members": [ + { + "constant": false, + "id": 27901, + "mutability": "mutable", + "name": "lastProccessedRequestOnL1", + "nameLocation": "1980:25:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "1972:33:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27900, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1972:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27903, + "mutability": "mutable", + "name": "lastAcceptedRequestOnL1", + "nameLocation": "2018:23:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2010:31:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2010:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27905, + "mutability": "mutable", + "name": "offset", + "nameLocation": "2054:6:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2046:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2046:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27909, + "mutability": "mutable", + "name": "order", + "nameLocation": "2086:5:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2065:26:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_storage_ptr", + "typeString": "enum RollDown.PendingRequestType[]" + }, + "typeName": { + "baseType": { + "id": 27907, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27906, + "name": "PendingRequestType", + "nameLocations": [ + "2065:18:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27899, + "src": "2065:18:24" + }, + "referencedDeclaration": 27899, + "src": "2065:18:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "id": 27908, + "nodeType": "ArrayTypeName", + "src": "2065:20:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_storage_ptr", + "typeString": "enum RollDown.PendingRequestType[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27913, + "mutability": "mutable", + "name": "pendingWithdraws", + "nameLocation": "2107:16:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2096:27:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Withdraw[]" + }, + "typeName": { + "baseType": { + "id": 27911, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27910, + "name": "Withdraw", + "nameLocations": [ + "2096:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27885, + "src": "2096:8:24" + }, + "referencedDeclaration": 27885, + "src": "2096:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage_ptr", + "typeString": "struct RollDown.Withdraw" + } + }, + "id": 27912, + "nodeType": "ArrayTypeName", + "src": "2096:10:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Withdraw[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27917, + "mutability": "mutable", + "name": "pendingDeposits", + "nameLocation": "2138:15:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2128:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Deposit[]" + }, + "typeName": { + "baseType": { + "id": 27915, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27914, + "name": "Deposit", + "nameLocations": [ + "2128:7:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27877, + "src": "2128:7:24" + }, + "referencedDeclaration": 27877, + "src": "2128:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage_ptr", + "typeString": "struct RollDown.Deposit" + } + }, + "id": 27916, + "nodeType": "ArrayTypeName", + "src": "2128:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Deposit[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27921, + "mutability": "mutable", + "name": "pendingCancelResultions", + "nameLocation": "2177:23:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2158:42:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.CancelResolution[]" + }, + "typeName": { + "baseType": { + "id": 27919, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27918, + "name": "CancelResolution", + "nameLocations": [ + "2158:16:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27894, + "src": "2158:16:24" + }, + "referencedDeclaration": 27894, + "src": "2158:16:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage_ptr", + "typeString": "struct RollDown.CancelResolution" + } + }, + "id": 27920, + "nodeType": "ArrayTypeName", + "src": "2158:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.CancelResolution[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27925, + "mutability": "mutable", + "name": "pendingL2UpdatesToRemove", + "nameLocation": "2225:24:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2205:44:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove[]" + }, + "typeName": { + "baseType": { + "id": 27923, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27922, + "name": "L2UpdatesToRemove", + "nameLocations": [ + "2205:17:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27889, + "src": "2205:17:24" + }, + "referencedDeclaration": 27889, + "src": "2205:17:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove" + } + }, + "id": 27924, + "nodeType": "ArrayTypeName", + "src": "2205:19:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove[]" + } + }, + "visibility": "internal" + } + ], + "name": "L1Update", + "nameLocation": "1958:8:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27931, + "nodeType": "VariableDeclaration", + "src": "2262:61:24", + "nodes": [], + "constant": false, + "functionSelector": "ca9b21ae", + "mutability": "mutable", + "name": "cancelResolutions", + "nameLocation": "2306:17:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CancelResolution_$27894_storage_$", + "typeString": "mapping(uint256 => struct RollDown.CancelResolution)" + }, + "typeName": { + "id": 27930, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 27927, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2270:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2262:36:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CancelResolution_$27894_storage_$", + "typeString": "mapping(uint256 => struct RollDown.CancelResolution)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 27929, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27928, + "name": "CancelResolution", + "nameLocations": [ + "2281:16:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27894, + "src": "2281:16:24" + }, + "referencedDeclaration": 27894, + "src": "2281:16:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage_ptr", + "typeString": "struct RollDown.CancelResolution" + } + } + }, + "visibility": "public" + }, + { + "id": 27936, + "nodeType": "VariableDeclaration", + "src": "2329:44:24", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "deposits", + "nameLocation": "2365:8:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Deposit_$27877_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Deposit)" + }, + "typeName": { + "id": 27935, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 27932, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2337:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2329:27:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Deposit_$27877_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Deposit)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 27934, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27933, + "name": "Deposit", + "nameLocations": [ + "2348:7:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27877, + "src": "2348:7:24" + }, + "referencedDeclaration": 27877, + "src": "2348:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage_ptr", + "typeString": "struct RollDown.Deposit" + } + } + }, + "visibility": "private" + }, + { + "id": 27941, + "nodeType": "VariableDeclaration", + "src": "2379:46:24", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "withdraws", + "nameLocation": "2416:9:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw)" + }, + "typeName": { + "id": 27940, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 27937, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2387:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2379:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 27939, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27938, + "name": "Withdraw", + "nameLocations": [ + "2398:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27885, + "src": "2398:8:24" + }, + "referencedDeclaration": 27885, + "src": "2398:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage_ptr", + "typeString": "struct RollDown.Withdraw" + } + } + }, + "visibility": "private" + }, + { + "id": 27946, + "nodeType": "VariableDeclaration", + "src": "2431:63:24", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "l2UpdatesToRemove", + "nameLocation": "2477:17:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove)" + }, + "typeName": { + "id": 27945, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 27942, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2439:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2431:37:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 27944, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27943, + "name": "L2UpdatesToRemove", + "nameLocations": [ + "2450:17:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27889, + "src": "2450:17:24" + }, + "referencedDeclaration": 27889, + "src": "2450:17:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove" + } + } + }, + "visibility": "private" + }, + { + "id": 27952, + "nodeType": "EnumDefinition", + "src": "2536:70:24", + "nodes": [], + "canonicalName": "RollDown.UpdateType", + "documentation": { + "id": 27947, + "nodeType": "StructuredDocumentation", + "src": "2500:31:24", + "text": "PENING REQUESTS TYPES (L1)" + }, + "members": [ + { + "id": 27948, + "name": "DEPOSIT", + "nameLocation": "2553:7:24", + "nodeType": "EnumValue", + "src": "2553:7:24" + }, + { + "id": 27949, + "name": "WITHDRAWAL", + "nameLocation": "2562:10:24", + "nodeType": "EnumValue", + "src": "2562:10:24" + }, + { + "id": 27950, + "name": "INDEX_UPDATE", + "nameLocation": "2574:12:24", + "nodeType": "EnumValue", + "src": "2574:12:24" + }, + { + "id": 27951, + "name": "CANCEL_RESOLUTION", + "nameLocation": "2588:17:24", + "nodeType": "EnumValue", + "src": "2588:17:24" + } + ], + "name": "UpdateType", + "nameLocation": "2541:10:24" + }, + { + "id": 27960, + "nodeType": "StructDefinition", + "src": "2610:93:24", + "nodes": [], + "canonicalName": "RollDown.RequestResult", + "members": [ + { + "constant": false, + "id": 27954, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "2644:9:24", + "nodeType": "VariableDeclaration", + "scope": 27960, + "src": "2636:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2636:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27957, + "mutability": "mutable", + "name": "updateType", + "nameLocation": "2672:10:24", + "nodeType": "VariableDeclaration", + "scope": 27960, + "src": "2661:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + }, + "typeName": { + "id": 27956, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27955, + "name": "UpdateType", + "nameLocations": [ + "2661:10:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27952, + "src": "2661:10:24" + }, + "referencedDeclaration": 27952, + "src": "2661:10:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27959, + "mutability": "mutable", + "name": "status", + "nameLocation": "2692:6:24", + "nodeType": "VariableDeclaration", + "scope": 27960, + "src": "2687:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 27958, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2687:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "RequestResult", + "nameLocation": "2617:13:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27969, + "nodeType": "StructDefinition", + "src": "2707:70:24", + "nodes": [], + "canonicalName": "RollDown.L2Update", + "members": [ + { + "constant": false, + "id": 27964, + "mutability": "mutable", + "name": "cancles", + "nameLocation": "2737:7:24", + "nodeType": "VariableDeclaration", + "scope": 27969, + "src": "2728:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Cancel_$27980_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Cancel[]" + }, + "typeName": { + "baseType": { + "id": 27962, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27961, + "name": "Cancel", + "nameLocations": [ + "2728:6:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27980, + "src": "2728:6:24" + }, + "referencedDeclaration": 27980, + "src": "2728:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Cancel_$27980_storage_ptr", + "typeString": "struct RollDown.Cancel" + } + }, + "id": 27963, + "nodeType": "ArrayTypeName", + "src": "2728:8:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Cancel_$27980_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Cancel[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27968, + "mutability": "mutable", + "name": "results", + "nameLocation": "2765:7:24", + "nodeType": "VariableDeclaration", + "scope": 27969, + "src": "2749:23:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.RequestResult[]" + }, + "typeName": { + "baseType": { + "id": 27966, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27965, + "name": "RequestResult", + "nameLocations": [ + "2749:13:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27960, + "src": "2749:13:24" + }, + "referencedDeclaration": 27960, + "src": "2749:13:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_storage_ptr", + "typeString": "struct RollDown.RequestResult" + } + }, + "id": 27967, + "nodeType": "ArrayTypeName", + "src": "2749:15:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.RequestResult[]" + } + }, + "visibility": "internal" + } + ], + "name": "L2Update", + "nameLocation": "2714:8:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27980, + "nodeType": "StructDefinition", + "src": "2781:147:24", + "nodes": [], + "canonicalName": "RollDown.Cancel", + "members": [ + { + "constant": false, + "id": 27971, + "mutability": "mutable", + "name": "updater", + "nameLocation": "2806:7:24", + "nodeType": "VariableDeclaration", + "scope": 27980, + "src": "2800:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 27970, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2800:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27973, + "mutability": "mutable", + "name": "canceler", + "nameLocation": "2824:8:24", + "nodeType": "VariableDeclaration", + "scope": 27980, + "src": "2818:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 27972, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2818:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27975, + "mutability": "mutable", + "name": "lastProccessedRequestOnL1", + "nameLocation": "2845:25:24", + "nodeType": "VariableDeclaration", + "scope": 27980, + "src": "2837:33:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27974, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2837:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27977, + "mutability": "mutable", + "name": "lastAcceptedRequestOnL1", + "nameLocation": "2883:23:24", + "nodeType": "VariableDeclaration", + "scope": 27980, + "src": "2875:31:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27976, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2875:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27979, + "mutability": "mutable", + "name": "hash", + "nameLocation": "2919:4:24", + "nodeType": "VariableDeclaration", + "scope": 27980, + "src": "2911:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 27978, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2911:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "Cancel", + "nameLocation": "2788:6:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 28001, + "nodeType": "FunctionDefinition", + "src": "2936:156:24", + "nodes": [], + "body": { + "id": 28000, + "nodeType": "Block", + "src": "2950:142:24", + "nodes": [], + "statements": [ + { + "expression": { + "id": 27985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27983, + "name": "lastProcessedUpdate_origin_l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27819, + "src": "2960:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 27984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2992:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2960:33:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27986, + "nodeType": "ExpressionStatement", + "src": "2960:33:24" + }, + { + "expression": { + "id": 27989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27987, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "3003:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 27988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3013:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3003:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27990, + "nodeType": "ExpressionStatement", + "src": "3003:11:24" + }, + { + "expression": { + "id": 27993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27991, + "name": "lastProcessedUpdate_origin_l2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27821, + "src": "3024:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 27992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3056:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3024:33:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27994, + "nodeType": "ExpressionStatement", + "src": "3024:33:24" + }, + { + "expression": { + "id": 27998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27995, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27815, + "src": "3067:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 27996, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3075:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3079:6:24", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3075:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3067:18:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27999, + "nodeType": "ExpressionStatement", + "src": "3067:18:24" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 27981, + "nodeType": "ParameterList", + "parameters": [], + "src": "2947:2:24" + }, + "returnParameters": { + "id": 27982, + "nodeType": "ParameterList", + "parameters": [], + "src": "2950:0:24" + }, + "scope": 28857, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 28074, + "nodeType": "FunctionDefinition", + "src": "3098:875:24", + "nodes": [], + "body": { + "id": 28073, + "nodeType": "Block", + "src": "3160:813:24", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28009, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28003, + "src": "3178:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3202:1:24", + "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": 28011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3194:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28010, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3194:7:24", + "typeDescriptions": {} + } + }, + "id": 28013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3194:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3178:26:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e76616c696420746f6b656e2061646472657373", + "id": 28015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3206:23:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d34df3e6e5f402d3417b1a16a0a8a7541b184d7fb338e177a15236f4037e3743", + "typeString": "literal_string \"Invalid token address\"" + }, + "value": "Invalid token address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d34df3e6e5f402d3417b1a16a0a8a7541b184d7fb338e177a15236f4037e3743", + "typeString": "literal_string \"Invalid token address\"" + } + ], + "id": 28008, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3170:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3170:60:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28017, + "nodeType": "ExpressionStatement", + "src": "3170:60:24" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28019, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28005, + "src": "3248:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3257:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3248:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416d6f756e74206d7573742062652067726561746572207468616e207a65726f", + "id": 28022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3260:34:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_335ff2e4b249975444723ab3dc1716db90a7dff95cbce35a34ad25055762f887", + "typeString": "literal_string \"Amount must be greater than zero\"" + }, + "value": "Amount must be greater than zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_335ff2e4b249975444723ab3dc1716db90a7dff95cbce35a34ad25055762f887", + "typeString": "literal_string \"Amount must be greater than zero\"" + } + ], + "id": 28018, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3240:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3240:55:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28024, + "nodeType": "ExpressionStatement", + "src": "3240:55:24" + }, + { + "assignments": [ + 28026 + ], + "declarations": [ + { + "constant": false, + "id": 28026, + "mutability": "mutable", + "name": "depositRecipient", + "nameLocation": "3313:16:24", + "nodeType": "VariableDeclaration", + "scope": 28073, + "src": "3305:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3305:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 28029, + "initialValue": { + "expression": { + "id": 28027, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3332:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 28028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3336:6:24", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3332:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3305:37:24" + }, + { + "assignments": [ + 28032 + ], + "declarations": [ + { + "constant": false, + "id": 28032, + "mutability": "mutable", + "name": "token", + "nameLocation": "3360:5:24", + "nodeType": "VariableDeclaration", + "scope": 28073, + "src": "3353:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 28031, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28030, + "name": "IERC20", + "nameLocations": [ + "3353:6:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "3353:6:24" + }, + "referencedDeclaration": 729, + "src": "3353:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "id": 28036, + "initialValue": { + "arguments": [ + { + "id": 28034, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28003, + "src": "3375:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 28033, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3368:6:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 28035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3368:20:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3353:35:24" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 28040, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3534:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 28041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3538:6:24", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3534:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28042, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28003, + "src": "3546:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28043, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28005, + "src": "3560:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 28038, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28032, + "src": "3515:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 28039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3521:12:24", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "3515:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 28044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3515:52:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546f6b656e207472616e73666572206661696c6564", + "id": 28045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3581:23:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4", + "typeString": "literal_string \"Token transfer failed\"" + }, + "value": "Token transfer failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4", + "typeString": "literal_string \"Token transfer failed\"" + } + ], + "id": 28037, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3494:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3494:120:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28047, + "nodeType": "ExpressionStatement", + "src": "3494:120:24" + }, + { + "assignments": [ + 28050 + ], + "declarations": [ + { + "constant": false, + "id": 28050, + "mutability": "mutable", + "name": "newDeposit", + "nameLocation": "3640:10:24", + "nodeType": "VariableDeclaration", + "scope": 28073, + "src": "3625:25:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_memory_ptr", + "typeString": "struct RollDown.Deposit" + }, + "typeName": { + "id": 28049, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28048, + "name": "Deposit", + "nameLocations": [ + "3625:7:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27877, + "src": "3625:7:24" + }, + "referencedDeclaration": 27877, + "src": "3625:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage_ptr", + "typeString": "struct RollDown.Deposit" + } + }, + "visibility": "internal" + } + ], + "id": 28056, + "initialValue": { + "arguments": [ + { + "id": 28052, + "name": "depositRecipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28026, + "src": "3693:16:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28053, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28003, + "src": "3737:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28054, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28005, + "src": "3771:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28051, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27877, + "src": "3653:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Deposit_$27877_storage_ptr_$", + "typeString": "type(struct RollDown.Deposit storage pointer)" + } + }, + "id": 28055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "3675:16:24", + "3723:12:24", + "3763:6:24" + ], + "names": [ + "depositRecipient", + "tokenAddress", + "amount" + ], + "nodeType": "FunctionCall", + "src": "3653:135:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_memory_ptr", + "typeString": "struct RollDown.Deposit memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3625:163:24" + }, + { + "expression": { + "id": 28062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28057, + "name": "deposits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27936, + "src": "3844:8:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Deposit_$27877_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Deposit storage ref)" + } + }, + "id": 28060, + "indexExpression": { + "id": 28059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3853:9:24", + "subExpression": { + "id": 28058, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "3853:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3844:19:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage", + "typeString": "struct RollDown.Deposit storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28061, + "name": "newDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28050, + "src": "3866:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_memory_ptr", + "typeString": "struct RollDown.Deposit memory" + } + }, + "src": "3844:32:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage", + "typeString": "struct RollDown.Deposit storage ref" + } + }, + "id": 28063, + "nodeType": "ExpressionStatement", + "src": "3844:32:24" + }, + { + "eventCall": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28065, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "3916:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 28066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3924:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3916:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28068, + "name": "depositRecipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28026, + "src": "3927:16:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28069, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28003, + "src": "3945:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28070, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28005, + "src": "3959:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28064, + "name": "DepositAcceptedIntoQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27831, + "src": "3891:24:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address,address,uint256)" + } + }, + "id": 28071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3891:75:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28072, + "nodeType": "EmitStatement", + "src": "3886:80:24" + } + ] + }, + "functionSelector": "47e7ef24", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "3107:7:24", + "parameters": { + "id": 28006, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28003, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "3123:12:24", + "nodeType": "VariableDeclaration", + "scope": 28074, + "src": "3115:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3115:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28005, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3145:6:24", + "nodeType": "VariableDeclaration", + "scope": 28074, + "src": "3137:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28004, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3137:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3114:38:24" + }, + "returnParameters": { + "id": 28007, + "nodeType": "ParameterList", + "parameters": [], + "src": "3160:0:24" + }, + "scope": 28857, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 28129, + "nodeType": "FunctionDefinition", + "src": "3979:616:24", + "nodes": [], + "body": { + "id": 28128, + "nodeType": "Block", + "src": "4042:553:24", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28082, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28076, + "src": "4060:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4084:1:24", + "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": 28084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4076:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4076:7:24", + "typeDescriptions": {} + } + }, + "id": 28086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4076:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4060:26:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e76616c696420746f6b656e2061646472657373", + "id": 28088, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4088:23:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d34df3e6e5f402d3417b1a16a0a8a7541b184d7fb338e177a15236f4037e3743", + "typeString": "literal_string \"Invalid token address\"" + }, + "value": "Invalid token address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d34df3e6e5f402d3417b1a16a0a8a7541b184d7fb338e177a15236f4037e3743", + "typeString": "literal_string \"Invalid token address\"" + } + ], + "id": 28081, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4052:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4052:60:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28090, + "nodeType": "ExpressionStatement", + "src": "4052:60:24" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28092, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28078, + "src": "4130:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4139:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4130:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416d6f756e74206d7573742062652067726561746572207468616e207a65726f", + "id": 28095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4142:34:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_335ff2e4b249975444723ab3dc1716db90a7dff95cbce35a34ad25055762f887", + "typeString": "literal_string \"Amount must be greater than zero\"" + }, + "value": "Amount must be greater than zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_335ff2e4b249975444723ab3dc1716db90a7dff95cbce35a34ad25055762f887", + "typeString": "literal_string \"Amount must be greater than zero\"" + } + ], + "id": 28091, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4122:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4122:55:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28097, + "nodeType": "ExpressionStatement", + "src": "4122:55:24" + }, + { + "assignments": [ + 28099 + ], + "declarations": [ + { + "constant": false, + "id": 28099, + "mutability": "mutable", + "name": "withdrawRecipient", + "nameLocation": "4195:17:24", + "nodeType": "VariableDeclaration", + "scope": 28128, + "src": "4187:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28098, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4187:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 28102, + "initialValue": { + "expression": { + "id": 28100, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4215:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 28101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4219:6:24", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4215:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4187:38:24" + }, + { + "assignments": [ + 28105 + ], + "declarations": [ + { + "constant": false, + "id": 28105, + "mutability": "mutable", + "name": "newWithdraw", + "nameLocation": "4252:11:24", + "nodeType": "VariableDeclaration", + "scope": 28128, + "src": "4236:27:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw" + }, + "typeName": { + "id": 28104, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28103, + "name": "Withdraw", + "nameLocations": [ + "4236:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27885, + "src": "4236:8:24" + }, + "referencedDeclaration": 27885, + "src": "4236:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage_ptr", + "typeString": "struct RollDown.Withdraw" + } + }, + "visibility": "internal" + } + ], + "id": 28111, + "initialValue": { + "arguments": [ + { + "id": 28107, + "name": "withdrawRecipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28099, + "src": "4308:17:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28108, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28076, + "src": "4353:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28109, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28078, + "src": "4387:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28106, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27885, + "src": "4266:8:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Withdraw_$27885_storage_ptr_$", + "typeString": "type(struct RollDown.Withdraw storage pointer)" + } + }, + "id": 28110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "4289:17:24", + "4339:12:24", + "4379:6:24" + ], + "names": [ + "withdrawRecipient", + "tokenAddress", + "amount" + ], + "nodeType": "FunctionCall", + "src": "4266:138:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4236:168:24" + }, + { + "expression": { + "id": 28117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28112, + "name": "withdraws", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27941, + "src": "4462:9:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw storage ref)" + } + }, + "id": 28115, + "indexExpression": { + "id": 28114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4472:9:24", + "subExpression": { + "id": 28113, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "4472:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4462:20:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage", + "typeString": "struct RollDown.Withdraw storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28116, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28105, + "src": "4485:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "src": "4462:34:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage", + "typeString": "struct RollDown.Withdraw storage ref" + } + }, + "id": 28118, + "nodeType": "ExpressionStatement", + "src": "4462:34:24" + }, + { + "eventCall": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28120, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "4537:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 28121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4545:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4537:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28123, + "name": "withdrawRecipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28099, + "src": "4548:17:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28124, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28076, + "src": "4567:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28125, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28078, + "src": "4581:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28119, + "name": "WithdrawAcceptedIntoQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27841, + "src": "4511:25:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address,address,uint256)" + } + }, + "id": 28126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4511:77:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28127, + "nodeType": "EmitStatement", + "src": "4506:82:24" + } + ] + }, + "functionSelector": "f3fef3a3", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "3988:8:24", + "parameters": { + "id": 28079, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28076, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "4005:12:24", + "nodeType": "VariableDeclaration", + "scope": 28129, + "src": "3997:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3997:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28078, + "mutability": "mutable", + "name": "amount", + "nameLocation": "4027:6:24", + "nodeType": "VariableDeclaration", + "scope": 28129, + "src": "4019:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28077, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4019:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3996:38:24" + }, + "returnParameters": { + "id": 28080, + "nodeType": "ParameterList", + "parameters": [], + "src": "4042:0:24" + }, + "scope": 28857, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 28143, + "nodeType": "FunctionDefinition", + "src": "4601:148:24", + "nodes": [], + "body": { + "id": 28142, + "nodeType": "Block", + "src": "4665:84:24", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28136, + "name": "lastProcessedUpdate_origin_l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27819, + "src": "4701:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 28137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4731:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4701:31:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28139, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "4734:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28135, + "name": "getPendingRequests", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28856, + "src": "4682:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_struct$_L1Update_$27926_memory_ptr_$", + "typeString": "function (uint256,uint256) view returns (struct RollDown.L1Update memory)" + } + }, + "id": 28140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4682:60:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "functionReturnParameters": 28134, + "id": 28141, + "nodeType": "Return", + "src": "4675:67:24" + } + ] + }, + "functionSelector": "b1538706", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUpdateForL2", + "nameLocation": "4610:14:24", + "parameters": { + "id": 28130, + "nodeType": "ParameterList", + "parameters": [], + "src": "4624:2:24" + }, + "returnParameters": { + "id": 28134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28133, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28143, + "src": "4648:15:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update" + }, + "typeName": { + "id": 28132, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28131, + "name": "L1Update", + "nameLocations": [ + "4648:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27926, + "src": "4648:8:24" + }, + "referencedDeclaration": 27926, + "src": "4648:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_storage_ptr", + "typeString": "struct RollDown.L1Update" + } + }, + "visibility": "internal" + } + ], + "src": "4647:17:24" + }, + "scope": 28857, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 28380, + "nodeType": "FunctionDefinition", + "src": "4755:2641:24", + "nodes": [], + "body": { + "id": 28379, + "nodeType": "Block", + "src": "4821:2575:24", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 28150, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4944:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 28151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4948:6:24", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4944:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 28152, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27815, + "src": "4958:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4944:19:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f7420746865206f776e6572", + "id": 28154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4965:15:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_72ec00def0a4f647f10f2a5c1742fab7d53364130edc365182f3ccef5864f2a5", + "typeString": "literal_string \"Not the owner\"" + }, + "value": "Not the owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_72ec00def0a4f647f10f2a5c1742fab7d53364130edc365182f3ccef5864f2a5", + "typeString": "literal_string \"Not the owner\"" + } + ], + "id": 28149, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4936:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4936:45:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28156, + "nodeType": "ExpressionStatement", + "src": "4936:45:24" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 28168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 28158, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "4999:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5010:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "4999:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5018:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4999:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "31", + "id": 28161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5028:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4999:30:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 28163, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5033:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5044:7:24", + "memberName": "cancles", + "nodeType": "MemberAccess", + "referencedDeclaration": 27964, + "src": "5033:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Cancel_$27980_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.Cancel calldata[] calldata" + } + }, + "id": 28165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5052:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5033:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "31", + "id": 28166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5062:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5033:30:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4999:64:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4172726179206d7573742068617665206174206c65617374203120757064617465", + "id": 28169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5065:35:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c76f6081997b8909fc579de678851d25c5e7e1b7980403398f4a50630baa9e33", + "typeString": "literal_string \"Array must have at least 1 update\"" + }, + "value": "Array must have at least 1 update" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c76f6081997b8909fc579de678851d25c5e7e1b7980403398f4a50630baa9e33", + "typeString": "literal_string \"Array must have at least 1 update\"" + } + ], + "id": 28157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4991:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4991:110:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28171, + "nodeType": "ExpressionStatement", + "src": "4991:110:24" + }, + { + "assignments": [ + 28173 + ], + "declarations": [ + { + "constant": false, + "id": 28173, + "mutability": "mutable", + "name": "updatesToBeRemovedCounter", + "nameLocation": "5120:25:24", + "nodeType": "VariableDeclaration", + "scope": 28379, + "src": "5112:33:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28172, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5112:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28175, + "initialValue": { + "hexValue": "30", + "id": 28174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5148:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5112:37:24" + }, + { + "assignments": [ + 28180 + ], + "declarations": [ + { + "constant": false, + "id": 28180, + "mutability": "mutable", + "name": "l2UpdatesToBeRemovedTemp", + "nameLocation": "5176:24:24", + "nodeType": "VariableDeclaration", + "scope": 28379, + "src": "5159:41:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 28178, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5159:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28179, + "nodeType": "ArrayTypeName", + "src": "5159:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 28188, + "initialValue": { + "arguments": [ + { + "expression": { + "expression": { + "id": 28184, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5230:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5241:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5230:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5249:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5230:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "5203:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 28181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5207:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28182, + "nodeType": "ArrayTypeName", + "src": "5207:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 28187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5203:62:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5159:106:24" + }, + { + "assignments": [ + 28190 + ], + "declarations": [ + { + "constant": false, + "id": 28190, + "mutability": "mutable", + "name": "oderCounter", + "nameLocation": "5284:11:24", + "nodeType": "VariableDeclaration", + "scope": 28379, + "src": "5276:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28189, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5276:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28196, + "initialValue": { + "expression": { + "baseExpression": { + "expression": { + "id": 28191, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5298:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5309:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5298:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28194, + "indexExpression": { + "hexValue": "30", + "id": 28193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5317:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5298:21:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5320:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "5298:31:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5276:53:24" + }, + { + "body": { + "id": 28232, + "nodeType": "Block", + "src": "5401:209:24", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 28209, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5419:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5430:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5419:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28212, + "indexExpression": { + "id": 28211, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28198, + "src": "5438:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5419:23:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5443:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "5419:33:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28214, + "name": "oderCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28190, + "src": "5456:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 28215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5470:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5456:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5419:52:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28223, + "nodeType": "IfStatement", + "src": "5415:124:24", + "trueBody": { + "id": 28222, + "nodeType": "Block", + "src": "5473:66:24", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "526571756573747320617265206e6f7420696e206f72646572", + "id": 28219, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5496:27:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_52f1b20d753528409636ecbd3b2e375704eaa6588062e4064becc7bda532685c", + "typeString": "literal_string \"Requests are not in order\"" + }, + "value": "Requests are not in order" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_52f1b20d753528409636ecbd3b2e375704eaa6588062e4064becc7bda532685c", + "typeString": "literal_string \"Requests are not in order\"" + } + ], + "id": 28218, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "5489:6:24", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 28220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5489:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28221, + "nodeType": "ExpressionStatement", + "src": "5489:35:24" + } + ] + } + }, + { + "expression": { + "id": 28230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28224, + "name": "oderCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28190, + "src": "5552:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 28225, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5566:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5577:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5566:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28228, + "indexExpression": { + "id": 28227, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28198, + "src": "5585:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5566:23:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5590:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "5566:33:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5552:47:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28231, + "nodeType": "ExpressionStatement", + "src": "5552:47:24" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28201, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28198, + "src": "5361:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "expression": { + "id": 28202, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5367:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5378:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5367:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5386:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5367:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5361:31:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28233, + "initializationExpression": { + "assignments": [ + 28198 + ], + "declarations": [ + { + "constant": false, + "id": 28198, + "mutability": "mutable", + "name": "idx", + "nameLocation": "5352:3:24", + "nodeType": "VariableDeclaration", + "scope": 28233, + "src": "5344:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5344:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28200, + "initialValue": { + "hexValue": "31", + "id": 28199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5358:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5344:15:24" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 28207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5394:5:24", + "subExpression": { + "id": 28206, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28198, + "src": "5394:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28208, + "nodeType": "ExpressionStatement", + "src": "5394:5:24" + }, + "nodeType": "ForStatement", + "src": "5339:271:24" + }, + { + "body": { + "id": 28321, + "nodeType": "Block", + "src": "5682:1005:24", + "statements": [ + { + "assignments": [ + 28248 + ], + "declarations": [ + { + "constant": false, + "id": 28248, + "mutability": "mutable", + "name": "element", + "nameLocation": "5719:7:24", + "nodeType": "VariableDeclaration", + "scope": 28321, + "src": "5696:30:24", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult" + }, + "typeName": { + "id": 28247, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28246, + "name": "RequestResult", + "nameLocations": [ + "5696:13:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27960, + "src": "5696:13:24" + }, + "referencedDeclaration": 27960, + "src": "5696:13:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_storage_ptr", + "typeString": "struct RollDown.RequestResult" + } + }, + "visibility": "internal" + } + ], + "id": 28253, + "initialValue": { + "baseExpression": { + "expression": { + "id": 28249, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5729:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5740:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5729:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28252, + "indexExpression": { + "id": 28251, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28235, + "src": "5748:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5729:23:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5696:56:24" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 28254, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "5771:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5779:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "5771:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 28256, + "name": "lastProcessedUpdate_origin_l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27819, + "src": "5792:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5771:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28260, + "nodeType": "IfStatement", + "src": "5767:95:24", + "trueBody": { + "id": 28259, + "nodeType": "Block", + "src": "5823:39:24", + "statements": [ + { + "id": 28258, + "nodeType": "Continue", + "src": "5839:8:24" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + }, + "id": 28265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 28261, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "5880:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5888:10:24", + "memberName": "updateType", + "nodeType": "MemberAccess", + "referencedDeclaration": 27957, + "src": "5880:18:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 28263, + "name": "UpdateType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27952, + "src": "5902:10:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_UpdateType_$27952_$", + "typeString": "type(enum RollDown.UpdateType)" + } + }, + "id": 28264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5913:7:24", + "memberName": "DEPOSIT", + "nodeType": "MemberAccess", + "referencedDeclaration": 27948, + "src": "5902:18:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "src": "5880:40:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + }, + "id": 28280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 28276, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6090:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6098:10:24", + "memberName": "updateType", + "nodeType": "MemberAccess", + "referencedDeclaration": 27957, + "src": "6090:18:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 28278, + "name": "UpdateType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27952, + "src": "6112:10:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_UpdateType_$27952_$", + "typeString": "type(enum RollDown.UpdateType)" + } + }, + "id": 28279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6123:10:24", + "memberName": "WITHDRAWAL", + "nodeType": "MemberAccess", + "referencedDeclaration": 27949, + "src": "6112:21:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "src": "6090:43:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + }, + "id": 28302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 28298, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6422:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6430:10:24", + "memberName": "updateType", + "nodeType": "MemberAccess", + "referencedDeclaration": 27957, + "src": "6422:18:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 28300, + "name": "UpdateType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27952, + "src": "6444:10:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_UpdateType_$27952_$", + "typeString": "type(enum RollDown.UpdateType)" + } + }, + "id": 28301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6455:12:24", + "memberName": "INDEX_UPDATE", + "nodeType": "MemberAccess", + "referencedDeclaration": 27950, + "src": "6444:23:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "src": "6422:45:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 28317, + "nodeType": "Block", + "src": "6613:63:24", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "756e6b6e6f776e20726571756573742074797065", + "id": 28314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6638:22:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_52ad04e229b0b879ae849b2e6950490fab9ceda234e3598d9b74c97984bcfc85", + "typeString": "literal_string \"unknown request type\"" + }, + "value": "unknown request type" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_52ad04e229b0b879ae849b2e6950490fab9ceda234e3598d9b74c97984bcfc85", + "typeString": "literal_string \"unknown request type\"" + } + ], + "id": 28313, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "6631:6:24", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 28315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6631:30:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28316, + "nodeType": "ExpressionStatement", + "src": "6631:30:24" + } + ] + }, + "id": 28318, + "nodeType": "IfStatement", + "src": "6418:258:24", + "trueBody": { + "id": 28312, + "nodeType": "Block", + "src": "6469:138:24", + "statements": [ + { + "expression": { + "id": 28310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28303, + "name": "l2UpdatesToBeRemovedTemp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28180, + "src": "6485:24:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 28306, + "indexExpression": { + "id": 28305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6510:27:24", + "subExpression": { + "id": 28304, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28173, + "src": "6510:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6485:53:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "expression": { + "id": 28307, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6559:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6567:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "6559:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28309, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6541:51:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6485:107:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28311, + "nodeType": "ExpressionStatement", + "src": "6485:107:24" + } + ] + } + }, + "id": 28319, + "nodeType": "IfStatement", + "src": "6086:590:24", + "trueBody": { + "id": 28297, + "nodeType": "Block", + "src": "6135:277:24", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 28282, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6204:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6212:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "6204:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 28284, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6241:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6249:6:24", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 27959, + "src": "6241:14:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 28281, + "name": "process_pending_update_withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28504, + "src": "6153:31:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,bool)" + } + }, + "id": 28286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6153:120:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28287, + "nodeType": "ExpressionStatement", + "src": "6153:120:24" + }, + { + "expression": { + "id": 28295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28288, + "name": "l2UpdatesToBeRemovedTemp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28180, + "src": "6290:24:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 28291, + "indexExpression": { + "id": 28290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6315:27:24", + "subExpression": { + "id": 28289, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28173, + "src": "6315:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6290:53:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "expression": { + "id": 28292, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6364:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6372:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "6364:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28294, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6346:51:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6290:107:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28296, + "nodeType": "ExpressionStatement", + "src": "6290:107:24" + } + ] + } + }, + "id": 28320, + "nodeType": "IfStatement", + "src": "5876:800:24", + "trueBody": { + "id": 28275, + "nodeType": "Block", + "src": "5922:146:24", + "statements": [ + { + "expression": { + "id": 28273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28266, + "name": "l2UpdatesToBeRemovedTemp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28180, + "src": "5940:24:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 28269, + "indexExpression": { + "id": 28268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5965:27:24", + "subExpression": { + "id": 28267, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28173, + "src": "5965:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5940:53:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "expression": { + "id": 28270, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6018:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6026:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "6018:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28272, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5996:57:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5940:113:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28274, + "nodeType": "ExpressionStatement", + "src": "5940:113:24" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28238, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28235, + "src": "5642:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "expression": { + "id": 28239, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5648:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5659:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5648:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5667:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5648:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5642:31:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28322, + "initializationExpression": { + "assignments": [ + 28235 + ], + "declarations": [ + { + "constant": false, + "id": 28235, + "mutability": "mutable", + "name": "idx", + "nameLocation": "5633:3:24", + "nodeType": "VariableDeclaration", + "scope": 28322, + "src": "5625:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28234, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5625:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28237, + "initialValue": { + "hexValue": "30", + "id": 28236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5639:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5625:15:24" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 28244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5675:5:24", + "subExpression": { + "id": 28243, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28235, + "src": "5675:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28245, + "nodeType": "ExpressionStatement", + "src": "5675:5:24" + }, + "nodeType": "ForStatement", + "src": "5620:1067:24" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28323, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28173, + "src": "6700:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6728:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6700:29:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28378, + "nodeType": "IfStatement", + "src": "6697:693:24", + "trueBody": { + "id": 28377, + "nodeType": "Block", + "src": "6730:660:24", + "statements": [ + { + "assignments": [ + 28330 + ], + "declarations": [ + { + "constant": false, + "id": 28330, + "mutability": "mutable", + "name": "l2UpdatesToBeRemoved", + "nameLocation": "6813:20:24", + "nodeType": "VariableDeclaration", + "scope": 28377, + "src": "6796:37:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 28328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6796:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28329, + "nodeType": "ArrayTypeName", + "src": "6796:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 28336, + "initialValue": { + "arguments": [ + { + "id": 28334, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28173, + "src": "6863:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6836:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 28331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6840:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28332, + "nodeType": "ArrayTypeName", + "src": "6840:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 28335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6836:64:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6796:104:24" + }, + { + "body": { + "id": 28355, + "nodeType": "Block", + "src": "7025:80:24", + "statements": [ + { + "expression": { + "id": 28353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28347, + "name": "l2UpdatesToBeRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28330, + "src": "7039:20:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 28349, + "indexExpression": { + "id": 28348, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28338, + "src": "7060:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7039:23:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 28350, + "name": "l2UpdatesToBeRemovedTemp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28180, + "src": "7065:24:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 28352, + "indexExpression": { + "id": 28351, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28338, + "src": "7090:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7065:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7039:53:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28354, + "nodeType": "ExpressionStatement", + "src": "7039:53:24" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28341, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28338, + "src": "6989:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 28342, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28173, + "src": "6993:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6989:29:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28356, + "initializationExpression": { + "assignments": [ + 28338 + ], + "declarations": [ + { + "constant": false, + "id": 28338, + "mutability": "mutable", + "name": "i", + "nameLocation": "6982:1:24", + "nodeType": "VariableDeclaration", + "scope": 28356, + "src": "6974:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28337, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6974:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28340, + "initialValue": { + "hexValue": "30", + "id": 28339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6986:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6974:13:24" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 28345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7020:3:24", + "subExpression": { + "id": 28344, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28338, + "src": "7020:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28346, + "nodeType": "ExpressionStatement", + "src": "7020:3:24" + }, + "nodeType": "ForStatement", + "src": "6969:136:24" + }, + { + "expression": { + "id": 28363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 28357, + "name": "l2UpdatesToRemove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27946, + "src": "7117:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove storage ref)" + } + }, + "id": 28360, + "indexExpression": { + "id": 28359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7135:9:24", + "subExpression": { + "id": 28358, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "7135:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7117:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage", + "typeString": "struct RollDown.L2UpdatesToRemove storage ref" + } + }, + "id": 28361, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "7146:17:24", + "memberName": "l2UpdatesToRemove", + "nodeType": "MemberAccess", + "referencedDeclaration": 27888, + "src": "7117:46:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28362, + "name": "l2UpdatesToBeRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28330, + "src": "7166:20:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "7117:69:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 28364, + "nodeType": "ExpressionStatement", + "src": "7117:69:24" + }, + { + "expression": { + "id": 28368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28365, + "name": "lastProcessedUpdate_origin_l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27819, + "src": "7232:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "expression": { + "id": 28366, + "name": "l2UpdatesToBeRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28330, + "src": "7265:20:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 28367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7286:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7265:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7232:60:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28369, + "nodeType": "ExpressionStatement", + "src": "7232:60:24" + }, + { + "eventCall": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28371, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "7345:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 28372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7355:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7345:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28374, + "name": "l2UpdatesToBeRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28330, + "src": "7358:20:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 28370, + "name": "L2UpdatesToRemovedAcceptedIntoQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27856, + "src": "7309:35:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256[] memory)" + } + }, + "id": 28375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7309:70:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28376, + "nodeType": "EmitStatement", + "src": "7304:75:24" + } + ] + } + } + ] + }, + "functionSelector": "34b03805", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "update_l1_from_l2", + "nameLocation": "4764:17:24", + "parameters": { + "id": 28147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28146, + "mutability": "mutable", + "name": "inputArray", + "nameLocation": "4800:10:24", + "nodeType": "VariableDeclaration", + "scope": 28380, + "src": "4782:28:24", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update" + }, + "typeName": { + "id": 28145, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28144, + "name": "L2Update", + "nameLocations": [ + "4782:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27969, + "src": "4782:8:24" + }, + "referencedDeclaration": 27969, + "src": "4782:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_storage_ptr", + "typeString": "struct RollDown.L2Update" + } + }, + "visibility": "internal" + } + ], + "src": "4781:30:24" + }, + "returnParameters": { + "id": 28148, + "nodeType": "ParameterList", + "parameters": [], + "src": "4821:0:24" + }, + "scope": 28857, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 28446, + "nodeType": "FunctionDefinition", + "src": "7428:1192:24", + "nodes": [], + "body": { + "id": 28445, + "nodeType": "Block", + "src": "7626:994:24", + "nodes": [], + "statements": [ + { + "expression": { + "id": 28392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7636:9:24", + "subExpression": { + "id": 28391, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "7636:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28393, + "nodeType": "ExpressionStatement", + "src": "7636:9:24" + }, + { + "assignments": [ + 28395 + ], + "declarations": [ + { + "constant": false, + "id": 28395, + "mutability": "mutable", + "name": "jsonString", + "nameLocation": "7871:10:24", + "nodeType": "VariableDeclaration", + "scope": 28445, + "src": "7857:24:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28394, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7857:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 28397, + "initialValue": { + "hexValue": "68656c6c6f", + "id": 28396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7884:7:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8", + "typeString": "literal_string \"hello\"" + }, + "value": "hello" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7857:34:24" + }, + { + "assignments": [ + 28399 + ], + "declarations": [ + { + "constant": false, + "id": 28399, + "mutability": "mutable", + "name": "jsonHash", + "nameLocation": "7951:8:24", + "nodeType": "VariableDeclaration", + "scope": 28445, + "src": "7943:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 28398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7943:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 28406, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 28403, + "name": "jsonString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28395, + "src": "7989:10:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 28401, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7972:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 28402, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7976:12:24", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "7972:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 28404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7972:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 28400, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7962:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 28405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7962:39:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7943:58:24" + }, + { + "assignments": [ + 28408 + ], + "declarations": [ + { + "constant": false, + "id": 28408, + "mutability": "mutable", + "name": "cancelJustified", + "nameLocation": "8063:15:24", + "nodeType": "VariableDeclaration", + "scope": 28445, + "src": "8058:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28407, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8058:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 28416, + "initialValue": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 28414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28409, + "name": "jsonHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28399, + "src": "8082:8:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "id": 28412, + "name": "cancelHashAsUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28388, + "src": "8102:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8094:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 28410, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8094:7:24", + "typeDescriptions": {} + } + }, + "id": 28413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8094:25:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "8082:37:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 28415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8081:39:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8058:62:24" + }, + { + "assignments": [ + 28419 + ], + "declarations": [ + { + "constant": false, + "id": 28419, + "mutability": "mutable", + "name": "newCancelResolution", + "nameLocation": "8154:19:24", + "nodeType": "VariableDeclaration", + "scope": 28445, + "src": "8130:43:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_memory_ptr", + "typeString": "struct RollDown.CancelResolution" + }, + "typeName": { + "id": 28418, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28417, + "name": "CancelResolution", + "nameLocations": [ + "8130:16:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27894, + "src": "8130:16:24" + }, + "referencedDeclaration": 27894, + "src": "8130:16:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage_ptr", + "typeString": "struct RollDown.CancelResolution" + } + }, + "visibility": "internal" + } + ], + "id": 28424, + "initialValue": { + "arguments": [ + { + "id": 28421, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28382, + "src": "8220:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28422, + "name": "cancelJustified", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28408, + "src": "8260:15:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 28420, + "name": "CancelResolution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27894, + "src": "8176:16:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CancelResolution_$27894_storage_ptr_$", + "typeString": "type(struct RollDown.CancelResolution storage pointer)" + } + }, + "id": 28423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "8207:11:24", + "8243:15:24" + ], + "names": [ + "l2RequestId", + "cancelJustified" + ], + "nodeType": "FunctionCall", + "src": "8176:110:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8130:156:24" + }, + { + "expression": { + "id": 28429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28425, + "name": "cancelResolutions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27931, + "src": "8342:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CancelResolution_$27894_storage_$", + "typeString": "mapping(uint256 => struct RollDown.CancelResolution storage ref)" + } + }, + "id": 28427, + "indexExpression": { + "id": 28426, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "8360:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8342:26:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage", + "typeString": "struct RollDown.CancelResolution storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28428, + "name": "newCancelResolution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28419, + "src": "8371:19:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory" + } + }, + "src": "8342:48:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage", + "typeString": "struct RollDown.CancelResolution storage ref" + } + }, + "id": 28430, + "nodeType": "ExpressionStatement", + "src": "8342:48:24" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 28434, + "name": "cancelHashAsUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28388, + "src": "8452:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8444:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 28432, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8444:7:24", + "typeDescriptions": {} + } + }, + "id": 28435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8444:25:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 28436, + "name": "jsonHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28399, + "src": "8471:8:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 28431, + "name": "cancelAndCalculatedHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27870, + "src": "8420:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 28437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8420:60:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28438, + "nodeType": "EmitStatement", + "src": "8415:65:24" + }, + { + "eventCall": { + "arguments": [ + { + "id": 28440, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "8544:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28441, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28382, + "src": "8565:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28442, + "name": "cancelJustified", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28408, + "src": "8588:15:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 28439, + "name": "DisputeResolutionAcceptedIntoQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27849, + "src": "8496:34:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,uint256,bool)" + } + }, + "id": 28443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8496:117:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28444, + "nodeType": "EmitStatement", + "src": "8491:122:24" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "process_pending_update_cancel", + "nameLocation": "7437:29:24", + "parameters": { + "id": 28389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28382, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "7484:9:24", + "nodeType": "VariableDeclaration", + "scope": 28446, + "src": "7476:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7476:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28384, + "mutability": "mutable", + "name": "lastProccessedRequestOnL1", + "nameLocation": "7511:25:24", + "nodeType": "VariableDeclaration", + "scope": 28446, + "src": "7503:33:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7503:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28386, + "mutability": "mutable", + "name": "lastAcceptedRequestOnL1", + "nameLocation": "7554:23:24", + "nodeType": "VariableDeclaration", + "scope": 28446, + "src": "7546:31:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7546:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28388, + "mutability": "mutable", + "name": "cancelHashAsUint", + "nameLocation": "7595:16:24", + "nodeType": "VariableDeclaration", + "scope": 28446, + "src": "7587:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7587:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7466:151:24" + }, + "returnParameters": { + "id": 28390, + "nodeType": "ParameterList", + "parameters": [], + "src": "7626:0:24" + }, + "scope": 28857, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "id": 28504, + "nodeType": "FunctionDefinition", + "src": "8626:750:24", + "nodes": [], + "body": { + "id": 28503, + "nodeType": "Block", + "src": "8730:646:24", + "nodes": [], + "statements": [ + { + "condition": { + "id": 28453, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28450, + "src": "8744:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28502, + "nodeType": "IfStatement", + "src": "8740:630:24", + "trueBody": { + "id": 28501, + "nodeType": "Block", + "src": "8753:617:24", + "statements": [ + { + "assignments": [ + 28456 + ], + "declarations": [ + { + "constant": false, + "id": 28456, + "mutability": "mutable", + "name": "newWithdraw", + "nameLocation": "8783:11:24", + "nodeType": "VariableDeclaration", + "scope": 28501, + "src": "8767:27:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw" + }, + "typeName": { + "id": 28455, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28454, + "name": "Withdraw", + "nameLocations": [ + "8767:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27885, + "src": "8767:8:24" + }, + "referencedDeclaration": 27885, + "src": "8767:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage_ptr", + "typeString": "struct RollDown.Withdraw" + } + }, + "visibility": "internal" + } + ], + "id": 28460, + "initialValue": { + "baseExpression": { + "id": 28457, + "name": "withdraws", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27941, + "src": "8797:9:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw storage ref)" + } + }, + "id": 28459, + "indexExpression": { + "id": 28458, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28448, + "src": "8807:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8797:20:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage", + "typeString": "struct RollDown.Withdraw storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8767:50:24" + }, + { + "assignments": [ + 28463 + ], + "declarations": [ + { + "constant": false, + "id": 28463, + "mutability": "mutable", + "name": "token", + "nameLocation": "8839:5:24", + "nodeType": "VariableDeclaration", + "scope": 28501, + "src": "8832:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 28462, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28461, + "name": "IERC20", + "nameLocations": [ + "8832:6:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "8832:6:24" + }, + "referencedDeclaration": 729, + "src": "8832:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "id": 28468, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 28465, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "8854:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8866:12:24", + "memberName": "tokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 27882, + "src": "8854:24:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 28464, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "8847:6:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 28467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8847:32:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8832:47:24" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 28474, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8942:4:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RollDown_$28857", + "typeString": "contract RollDown" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_RollDown_$28857", + "typeString": "contract RollDown" + } + ], + "id": 28473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8934:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8934:7:24", + "typeDescriptions": {} + } + }, + "id": 28475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8934:13:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 28470, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28463, + "src": "8918:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 28471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8924:9:24", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "8918:15:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 28476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8918:30:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 28477, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "8952:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28478, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8964:6:24", + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 27884, + "src": "8952:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8918:52:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e73756666696369656e742062616c616e636520696e2074686520636f6e7472616374", + "id": 28480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8988:38:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f686c516712e3f5d906ecf2d98f44565932ce5496611b2681ed768e7ceb36388", + "typeString": "literal_string \"Insufficient balance in the contract\"" + }, + "value": "Insufficient balance in the contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f686c516712e3f5d906ecf2d98f44565932ce5496611b2681ed768e7ceb36388", + "typeString": "literal_string \"Insufficient balance in the contract\"" + } + ], + "id": 28469, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8893:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8893:147:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28482, + "nodeType": "ExpressionStatement", + "src": "8893:147:24" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 28486, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "9136:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28487, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9148:17:24", + "memberName": "withdrawRecipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 27880, + "src": "9136:29:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 28488, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "9167:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28489, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9179:6:24", + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 27884, + "src": "9167:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 28483, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28463, + "src": "9121:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 28485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9127:8:24", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "9121:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 28490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9121:65:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28491, + "nodeType": "ExpressionStatement", + "src": "9121:65:24" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 28493, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "9238:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9250:17:24", + "memberName": "withdrawRecipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 27880, + "src": "9238:29:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 28495, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "9285:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9297:12:24", + "memberName": "tokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 27882, + "src": "9285:24:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 28497, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "9327:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28498, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9339:6:24", + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 27884, + "src": "9327:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28492, + "name": "FundsWithdrawn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27864, + "src": "9206:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9206:153:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28500, + "nodeType": "EmitStatement", + "src": "9201:158:24" + } + ] + } + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "process_pending_update_withdraw", + "nameLocation": "8635:31:24", + "parameters": { + "id": 28451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28448, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "8684:9:24", + "nodeType": "VariableDeclaration", + "scope": 28504, + "src": "8676:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28447, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8676:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28450, + "mutability": "mutable", + "name": "success", + "nameLocation": "8708:7:24", + "nodeType": "VariableDeclaration", + "scope": 28504, + "src": "8703:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28449, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8703:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8666:55:24" + }, + "returnParameters": { + "id": 28452, + "nodeType": "ParameterList", + "parameters": [], + "src": "8730:0:24" + }, + "scope": 28857, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "id": 28518, + "nodeType": "FunctionDefinition", + "src": "9382:146:24", + "nodes": [], + "body": { + "id": 28517, + "nodeType": "Block", + "src": "9467:61:24", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 28512, + "name": "l2UpdatesToRemove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27946, + "src": "9482:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove storage ref)" + } + }, + "id": 28514, + "indexExpression": { + "id": 28513, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28506, + "src": "9500:2:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9482:21:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage", + "typeString": "struct RollDown.L2UpdatesToRemove storage ref" + } + }, + "id": 28515, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9504:17:24", + "memberName": "l2UpdatesToRemove", + "nodeType": "MemberAccess", + "referencedDeclaration": 27888, + "src": "9482:39:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "functionReturnParameters": 28511, + "id": 28516, + "nodeType": "Return", + "src": "9475:46:24" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPendingRequestsRemove", + "nameLocation": "9391:24:24", + "parameters": { + "id": 28507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28506, + "mutability": "mutable", + "name": "id", + "nameLocation": "9424:2:24", + "nodeType": "VariableDeclaration", + "scope": 28518, + "src": "9416:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9416:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9415:12:24" + }, + "returnParameters": { + "id": 28511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28510, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28518, + "src": "9450:16:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 28508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9450:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28509, + "nodeType": "ArrayTypeName", + "src": "9450:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "9449:18:24" + }, + "scope": 28857, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "id": 28856, + "nodeType": "FunctionDefinition", + "src": "9534:2819:24", + "nodes": [], + "body": { + "id": 28855, + "nodeType": "Block", + "src": "9652:2701:24", + "nodes": [], + "statements": [ + { + "assignments": [ + 28530 + ], + "declarations": [ + { + "constant": false, + "id": 28530, + "mutability": "mutable", + "name": "result", + "nameLocation": "9678:6:24", + "nodeType": "VariableDeclaration", + "scope": 28855, + "src": "9662:22:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update" + }, + "typeName": { + "id": 28529, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28528, + "name": "L1Update", + "nameLocations": [ + "9662:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27926, + "src": "9662:8:24" + }, + "referencedDeclaration": 27926, + "src": "9662:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_storage_ptr", + "typeString": "struct RollDown.L1Update" + } + }, + "visibility": "internal" + } + ], + "id": 28531, + "nodeType": "VariableDeclarationStatement", + "src": "9662:22:24" + }, + { + "assignments": [ + 28533 + ], + "declarations": [ + { + "constant": false, + "id": 28533, + "mutability": "mutable", + "name": "depositsCounter", + "nameLocation": "9703:15:24", + "nodeType": "VariableDeclaration", + "scope": 28855, + "src": "9695:23:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9695:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28535, + "initialValue": { + "hexValue": "30", + "id": 28534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9721:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9695:27:24" + }, + { + "assignments": [ + 28537 + ], + "declarations": [ + { + "constant": false, + "id": 28537, + "mutability": "mutable", + "name": "withdrawsCounter", + "nameLocation": "9740:16:24", + "nodeType": "VariableDeclaration", + "scope": 28855, + "src": "9732:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9732:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28539, + "initialValue": { + "hexValue": "30", + "id": 28538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9759:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9732:28:24" + }, + { + "assignments": [ + 28541 + ], + "declarations": [ + { + "constant": false, + "id": 28541, + "mutability": "mutable", + "name": "cancelsCounter", + "nameLocation": "9778:14:24", + "nodeType": "VariableDeclaration", + "scope": 28855, + "src": "9770:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9770:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28543, + "initialValue": { + "hexValue": "30", + "id": 28542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9795:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9770:26:24" + }, + { + "assignments": [ + 28545 + ], + "declarations": [ + { + "constant": false, + "id": 28545, + "mutability": "mutable", + "name": "updatesToBeRemovedCounter", + "nameLocation": "9814:25:24", + "nodeType": "VariableDeclaration", + "scope": 28855, + "src": "9806:33:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28544, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9806:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28547, + "initialValue": { + "hexValue": "30", + "id": 28546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9842:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9806:37:24" + }, + { + "body": { + "id": 28609, + "nodeType": "Block", + "src": "9917:471:24", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 28558, + "name": "deposits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27936, + "src": "9935:8:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Deposit_$27877_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Deposit storage ref)" + } + }, + "id": 28560, + "indexExpression": { + "id": 28559, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28549, + "src": "9944:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9935:19:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage", + "typeString": "struct RollDown.Deposit storage ref" + } + }, + "id": 28561, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9955:16:24", + "memberName": "depositRecipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 27872, + "src": "9935:36:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9983:1:24", + "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": 28563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9975:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28562, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9975:7:24", + "typeDescriptions": {} + } + }, + "id": 28565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9975:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9935:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 28571, + "name": "withdraws", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27941, + "src": "10045:9:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw storage ref)" + } + }, + "id": 28573, + "indexExpression": { + "id": 28572, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28549, + "src": "10055:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10045:20:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage", + "typeString": "struct RollDown.Withdraw storage ref" + } + }, + "id": 28574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10066:17:24", + "memberName": "withdrawRecipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 27880, + "src": "10045:38:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10095:1:24", + "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": 28576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10087:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28575, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10087:7:24", + "typeDescriptions": {} + } + }, + "id": 28578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10087:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10045:52:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "baseExpression": { + "id": 28584, + "name": "l2UpdatesToRemove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27946, + "src": "10158:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove storage ref)" + } + }, + "id": 28586, + "indexExpression": { + "id": 28585, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28549, + "src": "10176:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10158:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage", + "typeString": "struct RollDown.L2UpdatesToRemove storage ref" + } + }, + "id": 28587, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10187:17:24", + "memberName": "l2UpdatesToRemove", + "nodeType": "MemberAccess", + "referencedDeclaration": 27888, + "src": "10158:46:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 28588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10205:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "10158:53:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10214:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10158:57:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 28595, + "name": "cancelResolutions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27931, + "src": "10285:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CancelResolution_$27894_storage_$", + "typeString": "mapping(uint256 => struct RollDown.CancelResolution storage ref)" + } + }, + "id": 28597, + "indexExpression": { + "id": 28596, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28549, + "src": "10303:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10285:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage", + "typeString": "struct RollDown.CancelResolution storage ref" + } + }, + "id": 28598, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10314:11:24", + "memberName": "l2RequestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27891, + "src": "10285:40:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10328:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10285:44:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28605, + "nodeType": "IfStatement", + "src": "10281:97:24", + "trueBody": { + "id": 28604, + "nodeType": "Block", + "src": "10331:47:24", + "statements": [ + { + "expression": { + "id": 28602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "10347:16:24", + "subExpression": { + "id": 28601, + "name": "cancelsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28541, + "src": "10347:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28603, + "nodeType": "ExpressionStatement", + "src": "10347:16:24" + } + ] + } + }, + "id": 28606, + "nodeType": "IfStatement", + "src": "10154:224:24", + "trueBody": { + "id": 28594, + "nodeType": "Block", + "src": "10217:58:24", + "statements": [ + { + "expression": { + "id": 28592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "10233:27:24", + "subExpression": { + "id": 28591, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28545, + "src": "10233:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28593, + "nodeType": "ExpressionStatement", + "src": "10233:27:24" + } + ] + } + }, + "id": 28607, + "nodeType": "IfStatement", + "src": "10041:337:24", + "trueBody": { + "id": 28583, + "nodeType": "Block", + "src": "10099:49:24", + "statements": [ + { + "expression": { + "id": 28581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "10115:18:24", + "subExpression": { + "id": 28580, + "name": "withdrawsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "10115:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28582, + "nodeType": "ExpressionStatement", + "src": "10115:18:24" + } + ] + } + }, + "id": 28608, + "nodeType": "IfStatement", + "src": "9931:447:24", + "trueBody": { + "id": 28570, + "nodeType": "Block", + "src": "9987:48:24", + "statements": [ + { + "expression": { + "id": 28568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "10003:17:24", + "subExpression": { + "id": 28567, + "name": "depositsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28533, + "src": "10003:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28569, + "nodeType": "ExpressionStatement", + "src": "10003:17:24" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28552, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28549, + "src": "9886:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 28553, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28522, + "src": "9899:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9886:16:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28610, + "initializationExpression": { + "assignments": [ + 28549 + ], + "declarations": [ + { + "constant": false, + "id": 28549, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "9867:9:24", + "nodeType": "VariableDeclaration", + "scope": 28610, + "src": "9859:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9859:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28551, + "initialValue": { + "id": 28550, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28520, + "src": "9879:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9859:25:24" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 28556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9904:11:24", + "subExpression": { + "id": 28555, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28549, + "src": "9904:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28557, + "nodeType": "ExpressionStatement", + "src": "9904:11:24" + }, + "nodeType": "ForStatement", + "src": "9854:534:24" + }, + { + "assignments": [ + 28612 + ], + "declarations": [ + { + "constant": false, + "id": 28612, + "mutability": "mutable", + "name": "requestCounter", + "nameLocation": "10406:14:24", + "nodeType": "VariableDeclaration", + "scope": 28855, + "src": "10398:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10398:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28620, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28613, + "name": "depositsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28533, + "src": "10423:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 28614, + "name": "withdrawsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "10441:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10423:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 28616, + "name": "cancelsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28541, + "src": "10460:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10423:51:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 28618, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28545, + "src": "10477:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10423:79:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10398:104:24" + }, + { + "expression": { + "id": 28630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28621, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10512:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28623, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10519:5:24", + "memberName": "order", + "nodeType": "MemberAccess", + "referencedDeclaration": 27909, + "src": "10512:12:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28628, + "name": "requestCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "10552:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "10527:24:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (enum RollDown.PendingRequestType[] memory)" + }, + "typeName": { + "baseType": { + "id": 28625, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28624, + "name": "PendingRequestType", + "nameLocations": [ + "10531:18:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27899, + "src": "10531:18:24" + }, + "referencedDeclaration": 27899, + "src": "10531:18:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "id": 28626, + "nodeType": "ArrayTypeName", + "src": "10531:20:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_storage_ptr", + "typeString": "enum RollDown.PendingRequestType[]" + } + } + }, + "id": 28629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10527:40:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "src": "10512:55:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "id": 28631, + "nodeType": "ExpressionStatement", + "src": "10512:55:24" + }, + { + "expression": { + "id": 28636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28632, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10578:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10585:6:24", + "memberName": "offset", + "nodeType": "MemberAccess", + "referencedDeclaration": 27905, + "src": "10578:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28635, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28520, + "src": "10594:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10578:21:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28637, + "nodeType": "ExpressionStatement", + "src": "10578:21:24" + }, + { + "expression": { + "id": 28647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28638, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10609:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28640, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10616:16:24", + "memberName": "pendingWithdraws", + "nodeType": "MemberAccess", + "referencedDeclaration": 27913, + "src": "10609:23:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Withdraw memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28645, + "name": "withdrawsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "10650:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "10635:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Withdraw_$27885_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct RollDown.Withdraw memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 28642, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28641, + "name": "Withdraw", + "nameLocations": [ + "10639:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27885, + "src": "10639:8:24" + }, + "referencedDeclaration": 27885, + "src": "10639:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage_ptr", + "typeString": "struct RollDown.Withdraw" + } + }, + "id": 28643, + "nodeType": "ArrayTypeName", + "src": "10639:10:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Withdraw[]" + } + } + }, + "id": 28646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10635:32:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Withdraw memory[] memory" + } + }, + "src": "10609:58:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Withdraw memory[] memory" + } + }, + "id": 28648, + "nodeType": "ExpressionStatement", + "src": "10609:58:24" + }, + { + "expression": { + "id": 28658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28649, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10677:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28651, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10684:15:24", + "memberName": "pendingDeposits", + "nodeType": "MemberAccess", + "referencedDeclaration": 27917, + "src": "10677:22:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Deposit memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28656, + "name": "depositsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28533, + "src": "10716:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "10702:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Deposit_$27877_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct RollDown.Deposit memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 28653, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28652, + "name": "Deposit", + "nameLocations": [ + "10706:7:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27877, + "src": "10706:7:24" + }, + "referencedDeclaration": 27877, + "src": "10706:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage_ptr", + "typeString": "struct RollDown.Deposit" + } + }, + "id": 28654, + "nodeType": "ArrayTypeName", + "src": "10706:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Deposit[]" + } + } + }, + "id": 28657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10702:30:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Deposit memory[] memory" + } + }, + "src": "10677:55:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Deposit memory[] memory" + } + }, + "id": 28659, + "nodeType": "ExpressionStatement", + "src": "10677:55:24" + }, + { + "expression": { + "id": 28669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28660, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10742:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28662, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10749:23:24", + "memberName": "pendingCancelResultions", + "nodeType": "MemberAccess", + "referencedDeclaration": 27921, + "src": "10742:30:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28667, + "name": "cancelsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28541, + "src": "10798:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "10775:22:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CancelResolution_$27894_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct RollDown.CancelResolution memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 28664, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28663, + "name": "CancelResolution", + "nameLocations": [ + "10779:16:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27894, + "src": "10779:16:24" + }, + "referencedDeclaration": 27894, + "src": "10779:16:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage_ptr", + "typeString": "struct RollDown.CancelResolution" + } + }, + "id": 28665, + "nodeType": "ArrayTypeName", + "src": "10779:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.CancelResolution[]" + } + } + }, + "id": 28668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10775:38:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory[] memory" + } + }, + "src": "10742:71:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory[] memory" + } + }, + "id": 28670, + "nodeType": "ExpressionStatement", + "src": "10742:71:24" + }, + { + "expression": { + "id": 28680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28671, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10823:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28673, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10830:24:24", + "memberName": "pendingL2UpdatesToRemove", + "nodeType": "MemberAccess", + "referencedDeclaration": 27925, + "src": "10823:31:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28678, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28545, + "src": "10881:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "10857:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_L2UpdatesToRemove_$27889_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct RollDown.L2UpdatesToRemove memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 28675, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28674, + "name": "L2UpdatesToRemove", + "nameLocations": [ + "10861:17:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27889, + "src": "10861:17:24" + }, + "referencedDeclaration": 27889, + "src": "10861:17:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove" + } + }, + "id": 28676, + "nodeType": "ArrayTypeName", + "src": "10861:19:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove[]" + } + } + }, + "id": 28679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10857:50:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove memory[] memory" + } + }, + "src": "10823:84:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove memory[] memory" + } + }, + "id": 28681, + "nodeType": "ExpressionStatement", + "src": "10823:84:24" + }, + { + "expression": { + "id": 28686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28682, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10917:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28684, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10924:25:24", + "memberName": "lastProccessedRequestOnL1", + "nodeType": "MemberAccess", + "referencedDeclaration": 27901, + "src": "10917:32:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28685, + "name": "lastProcessedUpdate_origin_l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27819, + "src": "10952:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10917:64:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28687, + "nodeType": "ExpressionStatement", + "src": "10917:64:24" + }, + { + "expression": { + "id": 28694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28688, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10991:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28690, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10998:23:24", + "memberName": "lastAcceptedRequestOnL1", + "nodeType": "MemberAccess", + "referencedDeclaration": 27903, + "src": "10991:30:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28691, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "11024:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 28692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11034:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11024:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10991:44:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28695, + "nodeType": "ExpressionStatement", + "src": "10991:44:24" + }, + { + "expression": { + "id": 28698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28696, + "name": "withdrawsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "11046:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 28697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11065:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11046:20:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28699, + "nodeType": "ExpressionStatement", + "src": "11046:20:24" + }, + { + "expression": { + "id": 28702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28700, + "name": "depositsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28533, + "src": "11076:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 28701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11094:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11076:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28703, + "nodeType": "ExpressionStatement", + "src": "11076:19:24" + }, + { + "expression": { + "id": 28706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28704, + "name": "cancelsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28541, + "src": "11105:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 28705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11122:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11105:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28707, + "nodeType": "ExpressionStatement", + "src": "11105:18:24" + }, + { + "expression": { + "id": 28710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28708, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28545, + "src": "11133:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 28709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11161:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11133:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28711, + "nodeType": "ExpressionStatement", + "src": "11133:29:24" + }, + { + "expression": { + "id": 28714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28712, + "name": "requestCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "11172:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 28713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11189:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11172:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28715, + "nodeType": "ExpressionStatement", + "src": "11172:18:24" + }, + { + "body": { + "id": 28851, + "nodeType": "Block", + "src": "11264:1059:24", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 28726, + "name": "deposits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27936, + "src": "11282:8:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Deposit_$27877_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Deposit storage ref)" + } + }, + "id": 28728, + "indexExpression": { + "id": 28727, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11291:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11282:19:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage", + "typeString": "struct RollDown.Deposit storage ref" + } + }, + "id": 28729, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11302:16:24", + "memberName": "depositRecipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 27872, + "src": "11282:36:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11330:1:24", + "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": 28731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11322:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11322:7:24", + "typeDescriptions": {} + } + }, + "id": 28733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11322:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11282:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 28757, + "name": "withdraws", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27941, + "src": "11513:9:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw storage ref)" + } + }, + "id": 28759, + "indexExpression": { + "id": 28758, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11523:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11513:20:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage", + "typeString": "struct RollDown.Withdraw storage ref" + } + }, + "id": 28760, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11534:17:24", + "memberName": "withdrawRecipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 27880, + "src": "11513:38:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11563:1:24", + "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": 28762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11555:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:24", + "typeDescriptions": {} + } + }, + "id": 28764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11555:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11513:52:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "baseExpression": { + "id": 28788, + "name": "l2UpdatesToRemove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27946, + "src": "11753:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove storage ref)" + } + }, + "id": 28790, + "indexExpression": { + "id": 28789, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11771:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11753:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage", + "typeString": "struct RollDown.L2UpdatesToRemove storage ref" + } + }, + "id": 28791, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11782:17:24", + "memberName": "l2UpdatesToRemove", + "nodeType": "MemberAccess", + "referencedDeclaration": 27888, + "src": "11753:46:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 28792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11800:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11753:53:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11809:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11753:57:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 28817, + "name": "cancelResolutions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27931, + "src": "12032:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CancelResolution_$27894_storage_$", + "typeString": "mapping(uint256 => struct RollDown.CancelResolution storage ref)" + } + }, + "id": 28819, + "indexExpression": { + "id": 28818, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "12050:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12032:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage", + "typeString": "struct RollDown.CancelResolution storage ref" + } + }, + "id": 28820, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12061:11:24", + "memberName": "l2RequestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27891, + "src": "12032:40:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12075:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12032:44:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 28846, + "nodeType": "Block", + "src": "12277:36:24", + "statements": [ + { + "id": 28845, + "nodeType": "Break", + "src": "12293:5:24" + } + ] + }, + "id": 28847, + "nodeType": "IfStatement", + "src": "12028:285:24", + "trueBody": { + "id": 28844, + "nodeType": "Block", + "src": "12078:195:24", + "statements": [ + { + "expression": { + "id": 28831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28823, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "12094:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28827, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12101:5:24", + "memberName": "order", + "nodeType": "MemberAccess", + "referencedDeclaration": 27909, + "src": "12094:12:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "id": 28828, + "indexExpression": { + "id": 28826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "12107:16:24", + "subExpression": { + "id": 28825, + "name": "requestCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "12107:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12094:30:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 28829, + "name": "PendingRequestType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27899, + "src": "12127:18:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PendingRequestType_$27899_$", + "typeString": "type(enum RollDown.PendingRequestType)" + } + }, + "id": 28830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12146:17:24", + "memberName": "CANCEL_RESOLUTION", + "nodeType": "MemberAccess", + "referencedDeclaration": 27897, + "src": "12127:36:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "src": "12094:69:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "id": 28832, + "nodeType": "ExpressionStatement", + "src": "12094:69:24" + }, + { + "expression": { + "id": 28842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28833, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "12179:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28837, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12186:23:24", + "memberName": "pendingCancelResultions", + "nodeType": "MemberAccess", + "referencedDeclaration": 27921, + "src": "12179:30:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory[] memory" + } + }, + "id": 28838, + "indexExpression": { + "id": 28836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "12210:16:24", + "subExpression": { + "id": 28835, + "name": "cancelsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28541, + "src": "12210:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12179:48:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 28839, + "name": "cancelResolutions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27931, + "src": "12230:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CancelResolution_$27894_storage_$", + "typeString": "mapping(uint256 => struct RollDown.CancelResolution storage ref)" + } + }, + "id": 28841, + "indexExpression": { + "id": 28840, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "12248:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12230:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage", + "typeString": "struct RollDown.CancelResolution storage ref" + } + }, + "src": "12179:79:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory" + } + }, + "id": 28843, + "nodeType": "ExpressionStatement", + "src": "12179:79:24" + } + ] + } + }, + "id": 28848, + "nodeType": "IfStatement", + "src": "11748:565:24", + "trueBody": { + "id": 28816, + "nodeType": "Block", + "src": "11812:210:24", + "statements": [ + { + "expression": { + "id": 28803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28795, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "11828:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28799, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11835:5:24", + "memberName": "order", + "nodeType": "MemberAccess", + "referencedDeclaration": 27909, + "src": "11828:12:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "id": 28800, + "indexExpression": { + "id": 28798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11841:16:24", + "subExpression": { + "id": 28797, + "name": "requestCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "11841:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11828:30:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 28801, + "name": "PendingRequestType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27899, + "src": "11861:18:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PendingRequestType_$27899_$", + "typeString": "type(enum RollDown.PendingRequestType)" + } + }, + "id": 28802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11880:20:24", + "memberName": "L2_UPDATES_TO_REMOVE", + "nodeType": "MemberAccess", + "referencedDeclaration": 27898, + "src": "11861:39:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "src": "11828:72:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "id": 28804, + "nodeType": "ExpressionStatement", + "src": "11828:72:24" + }, + { + "expression": { + "id": 28814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28805, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "11916:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28809, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11923:24:24", + "memberName": "pendingL2UpdatesToRemove", + "nodeType": "MemberAccess", + "referencedDeclaration": 27925, + "src": "11916:31:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove memory[] memory" + } + }, + "id": 28810, + "indexExpression": { + "id": 28808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11948:27:24", + "subExpression": { + "id": 28807, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28545, + "src": "11948:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11916:60:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_memory_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 28811, + "name": "l2UpdatesToRemove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27946, + "src": "11979:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove storage ref)" + } + }, + "id": 28813, + "indexExpression": { + "id": 28812, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11997:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11979:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage", + "typeString": "struct RollDown.L2UpdatesToRemove storage ref" + } + }, + "src": "11916:91:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_memory_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove memory" + } + }, + "id": 28815, + "nodeType": "ExpressionStatement", + "src": "11916:91:24" + } + ] + } + }, + "id": 28849, + "nodeType": "IfStatement", + "src": "11509:804:24", + "trueBody": { + "id": 28787, + "nodeType": "Block", + "src": "11567:175:24", + "statements": [ + { + "expression": { + "id": 28774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28766, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "11583:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28770, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11590:5:24", + "memberName": "order", + "nodeType": "MemberAccess", + "referencedDeclaration": 27909, + "src": "11583:12:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "id": 28771, + "indexExpression": { + "id": 28769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11596:16:24", + "subExpression": { + "id": 28768, + "name": "requestCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "11596:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11583:30:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 28772, + "name": "PendingRequestType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27899, + "src": "11616:18:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PendingRequestType_$27899_$", + "typeString": "type(enum RollDown.PendingRequestType)" + } + }, + "id": 28773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11635:10:24", + "memberName": "WITHDRAWAL", + "nodeType": "MemberAccess", + "referencedDeclaration": 27896, + "src": "11616:29:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "src": "11583:62:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "id": 28775, + "nodeType": "ExpressionStatement", + "src": "11583:62:24" + }, + { + "expression": { + "id": 28785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28776, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "11661:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28780, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11668:16:24", + "memberName": "pendingWithdraws", + "nodeType": "MemberAccess", + "referencedDeclaration": 27913, + "src": "11661:23:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Withdraw memory[] memory" + } + }, + "id": 28781, + "indexExpression": { + "id": 28779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11685:18:24", + "subExpression": { + "id": 28778, + "name": "withdrawsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "11685:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11661:43:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 28782, + "name": "withdraws", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27941, + "src": "11707:9:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw storage ref)" + } + }, + "id": 28784, + "indexExpression": { + "id": 28783, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11717:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11707:20:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage", + "typeString": "struct RollDown.Withdraw storage ref" + } + }, + "src": "11661:66:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28786, + "nodeType": "ExpressionStatement", + "src": "11661:66:24" + } + ] + } + }, + "id": 28850, + "nodeType": "IfStatement", + "src": "11278:1035:24", + "trueBody": { + "id": 28756, + "nodeType": "Block", + "src": "11334:169:24", + "statements": [ + { + "expression": { + "id": 28743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28735, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "11350:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28739, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11357:5:24", + "memberName": "order", + "nodeType": "MemberAccess", + "referencedDeclaration": 27909, + "src": "11350:12:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "id": 28740, + "indexExpression": { + "id": 28738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11363:16:24", + "subExpression": { + "id": 28737, + "name": "requestCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "11363:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11350:30:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 28741, + "name": "PendingRequestType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27899, + "src": "11383:18:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PendingRequestType_$27899_$", + "typeString": "type(enum RollDown.PendingRequestType)" + } + }, + "id": 28742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11402:7:24", + "memberName": "DEPOSIT", + "nodeType": "MemberAccess", + "referencedDeclaration": 27895, + "src": "11383:26:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "src": "11350:59:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "id": 28744, + "nodeType": "ExpressionStatement", + "src": "11350:59:24" + }, + { + "expression": { + "id": 28754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28745, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "11425:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28749, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11432:15:24", + "memberName": "pendingDeposits", + "nodeType": "MemberAccess", + "referencedDeclaration": 27917, + "src": "11425:22:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Deposit memory[] memory" + } + }, + "id": 28750, + "indexExpression": { + "id": 28748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11448:17:24", + "subExpression": { + "id": 28747, + "name": "depositsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28533, + "src": "11448:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11425:41:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_memory_ptr", + "typeString": "struct RollDown.Deposit memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 28751, + "name": "deposits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27936, + "src": "11469:8:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Deposit_$27877_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Deposit storage ref)" + } + }, + "id": 28753, + "indexExpression": { + "id": 28752, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11478:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11469:19:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage", + "typeString": "struct RollDown.Deposit storage ref" + } + }, + "src": "11425:63:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_memory_ptr", + "typeString": "struct RollDown.Deposit memory" + } + }, + "id": 28755, + "nodeType": "ExpressionStatement", + "src": "11425:63:24" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28720, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11233:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 28721, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28522, + "src": "11246:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11233:16:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28852, + "initializationExpression": { + "assignments": [ + 28717 + ], + "declarations": [ + { + "constant": false, + "id": 28717, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "11214:9:24", + "nodeType": "VariableDeclaration", + "scope": 28852, + "src": "11206:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28716, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11206:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28719, + "initialValue": { + "id": 28718, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28520, + "src": "11226:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11206:25:24" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 28724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11251:11:24", + "subExpression": { + "id": 28723, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11251:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28725, + "nodeType": "ExpressionStatement", + "src": "11251:11:24" + }, + "nodeType": "ForStatement", + "src": "11201:1122:24" + }, + { + "expression": { + "id": 28853, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "12340:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "functionReturnParameters": 28527, + "id": 28854, + "nodeType": "Return", + "src": "12333:13:24" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPendingRequests", + "nameLocation": "9543:18:24", + "parameters": { + "id": 28523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28520, + "mutability": "mutable", + "name": "start", + "nameLocation": "9579:5:24", + "nodeType": "VariableDeclaration", + "scope": 28856, + "src": "9571:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9571:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28522, + "mutability": "mutable", + "name": "end", + "nameLocation": "9602:3:24", + "nodeType": "VariableDeclaration", + "scope": 28856, + "src": "9594:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9594:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9561:50:24" + }, + "returnParameters": { + "id": 28527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28526, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28856, + "src": "9635:15:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update" + }, + "typeName": { + "id": 28525, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28524, + "name": "L1Update", + "nameLocations": [ + "9635:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27926, + "src": "9635:8:24" + }, + "referencedDeclaration": 27926, + "src": "9635:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_storage_ptr", + "typeString": "struct RollDown.L1Update" + } + }, + "visibility": "internal" + } + ], + "src": "9633:18:24" + }, + "scope": 28857, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "RollDown", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 28857 + ], + "name": "RollDown", + "nameLocation": "203:8:24", + "scope": 28858, + "usedErrors": [], + "usedEvents": [ + 27831, + 27841, + 27849, + 27856, + 27864, + 27870 + ] + } + ], + "license": "MIT" + }, + "id": 24 +} \ No newline at end of file diff --git a/rollup-sequencer/src/index.ts b/rollup-sequencer/src/index.ts index 811f831b6..bbcf2e740 100644 --- a/rollup-sequencer/src/index.ts +++ b/rollup-sequencer/src/index.ts @@ -3,15 +3,14 @@ import "@mangata-finance/types"; import { Keyring } from "@polkadot/api"; import "dotenv/config"; import { createPublicClient, webSocket } from "viem"; - -import * as fs from 'fs'; +import rolldownAbi from './RollDown.json' assert {type: 'json'}; type ContractAddress = `0x${string}`; const mangataContractAddress = process.env.MANGATA_CONTRACT_ADDRESS! as ContractAddress; async function main() { - let abi = JSON.parse(fs.readFileSync('./../rolldown-contract/out/rolldown.sol/RollDown.json', 'utf8'))["abi"] as unknown[]; + let abi = rolldownAbi.abi; const api = await Mangata.instance([process.env.MANGATA_URL!]).api(); diff --git a/rollup-updater/env b/rollup-updater/env index 0d0625c8e..dc34d95a7 100644 --- a/rollup-updater/env +++ b/rollup-updater/env @@ -5,4 +5,3 @@ export ETH_CHAIN_URL=ws://localhost:8545 export FINALIZATION_SOURCE=relay export WALLET_PRIVATE_KEY=ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 export VERBOSE=1 - diff --git a/rollup-updater/package-lock.json b/rollup-updater/package-lock.json index 4336590df..31c2f29fc 100644 --- a/rollup-updater/package-lock.json +++ b/rollup-updater/package-lock.json @@ -166,11 +166,11 @@ } }, "node_modules/@mangata-finance/sdk": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@mangata-finance/sdk/-/sdk-2.2.0.tgz", - "integrity": "sha512-TDM6W8nL1c+laq14YwL+uiNAxKFkVBRnRh5ezsqQDoAsLt9k/fWNEYl1KEASptTD4oXpZfVcT0ORrULW3ogzTg==", + "version": "2.2.0-feature-rpc-method.2", + "resolved": "https://registry.npmjs.org/@mangata-finance/sdk/-/sdk-2.2.0-feature-rpc-method.2.tgz", + "integrity": "sha512-dqW1RYSIf/FvXgJ1Vecpc3jXn7T9GWXazdgCnpkgF3tvdR9p/YcyXglwLFE4Nx2U7GO03F7vnxFNT6Tcy+NnZQ==", "dependencies": { - "@mangata-finance/type-definitions": "2.1.2", + "@mangata-finance/type-definitions": "2.1.2-feature-rpc-method.1", "big.js": "6.2.1", "tslib": "^2.3.0", "tslog": "4.8.2" @@ -183,9 +183,9 @@ } }, "node_modules/@mangata-finance/type-definitions": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@mangata-finance/type-definitions/-/type-definitions-2.1.2.tgz", - "integrity": "sha512-kr4mVMuQ6DqZ0H72z0YI8tcdlk4XD4vUgRVYYfTJdXFJhRsfS4YRxfs/iiQPNzWKgoQZKcDqsbQD3xz9T1gELw==", + "version": "2.1.2-feature-rpc-method.1", + "resolved": "https://registry.npmjs.org/@mangata-finance/type-definitions/-/type-definitions-2.1.2-feature-rpc-method.1.tgz", + "integrity": "sha512-2qZVWtoB9nVDOgwvHZBe1eQcrVcFsUP7x7p3otgTdLe+WFg9czQ7F9U4lLcZx+7UzSbudZTI2DDuEWnAohHKDw==", "engines": { "node": ">=18.0.0" }, @@ -194,9 +194,9 @@ } }, "node_modules/@mangata-finance/types": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@mangata-finance/types/-/types-2.2.2.tgz", - "integrity": "sha512-qsp3KgMbvC3CI4+17+ksfDExNDD2awTKcqqNl4WC3eQYxOaSdxShWW/eT0FCPpZ68Df8MFA6WQOn44jiQT4bvg==", + "version": "2.2.2-feature-rpc-method.2", + "resolved": "https://registry.npmjs.org/@mangata-finance/types/-/types-2.2.2-feature-rpc-method.2.tgz", + "integrity": "sha512-asXgRuybxcf2pyMZWjah0QaGASFxu+asnzVQYZ7oBfqGA/NXB4fsTSxs3JzvGn48Wy7t3+IdMm3t6t+z5ynF3g==", "engines": { "node": ">=18.0.0" }, diff --git a/rollup-updater/src/RollDown.json b/rollup-updater/src/RollDown.json new file mode 100644 index 000000000..500a2e4bb --- /dev/null +++ b/rollup-updater/src/RollDown.json @@ -0,0 +1,14197 @@ +{ + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "depositRecipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "DepositAcceptedIntoQueue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "originalRequestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "cancelJustified", + "type": "bool" + } + ], + "name": "DisputeResolutionAcceptedIntoQueue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "withdrawRecipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "FundsWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "l2UpdatesToRemove", + "type": "uint256[]" + } + ], + "name": "L2UpdatesToRemovedAcceptedIntoQueue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "withdrawRecipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "WithdrawAcceptedIntoQueue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "cancelHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "calculatedHash", + "type": "bytes32" + } + ], + "name": "cancelAndCalculatedHash", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "cancelResolutions", + "outputs": [ + { + "internalType": "uint256", + "name": "l2RequestId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "cancelJustified", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getUpdateForL2", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "lastProccessedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastAcceptedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "offset", + "type": "uint256" + }, + { + "internalType": "enum RollDown.PendingRequestType[]", + "name": "order", + "type": "uint8[]" + }, + { + "components": [ + { + "internalType": "address", + "name": "withdrawRecipient", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct RollDown.Withdraw[]", + "name": "pendingWithdraws", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "address", + "name": "depositRecipient", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "internalType": "struct RollDown.Deposit[]", + "name": "pendingDeposits", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "l2RequestId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "cancelJustified", + "type": "bool" + } + ], + "internalType": "struct RollDown.CancelResolution[]", + "name": "pendingCancelResultions", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "uint256[]", + "name": "l2UpdatesToRemove", + "type": "uint256[]" + } + ], + "internalType": "struct RollDown.L2UpdatesToRemove[]", + "name": "pendingL2UpdatesToRemove", + "type": "tuple[]" + } + ], + "internalType": "struct RollDown.L1Update", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastProcessedUpdate_origin_l1", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lastProcessedUpdate_origin_l2", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "bytes", + "name": "updater", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "canceler", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "lastProccessedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastAcceptedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "hash", + "type": "bytes32" + } + ], + "internalType": "struct RollDown.Cancel[]", + "name": "cancles", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "enum RollDown.UpdateType", + "name": "updateType", + "type": "uint8" + }, + { + "internalType": "bool", + "name": "status", + "type": "bool" + } + ], + "internalType": "struct RollDown.RequestResult[]", + "name": "results", + "type": "tuple[]" + } + ], + "internalType": "struct RollDown.L2Update", + "name": "inputArray", + "type": "tuple" + } + ], + "name": "update_l1_from_l2", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b506000600281905560018055600381905580546001600160a01b03191633179055611817806100406000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b15387061161005b578063b1538706146100da578063ca9b21ae146100ef578063f26ee9d01461012e578063f3fef3a31461013757600080fd5b806334b038051461008d57806347e7ef24146100a257806361bc221a146100b55780637fd4f845146100d1575b600080fd5b6100a061009b366004611333565b61014a565b005b6100a06100b0366004611375565b610619565b6100be60015481565b6040519081526020015b60405180910390f35b6100be60025481565b6100e2610863565b6040516100c8919061154b565b6101196100fd366004611607565b6004602052600090815260409020805460019091015460ff1682565b604080519283529015156020830152016100c8565b6100be60035481565b6100a0610145366004611375565b61088a565b6000546001600160a01b031633146101995760405162461bcd60e51b815260206004820152600d60248201526c2737ba103a34329037bbb732b960991b60448201526064015b60405180910390fd5b60016101a86020830183611620565b90501015806101c3575060016101be8280611670565b905010155b6102195760405162461bcd60e51b815260206004820152602160248201527f4172726179206d7573742068617665206174206c6561737420312075706461746044820152606560f81b6064820152608401610190565b6000806102296020840184611620565b905067ffffffffffffffff811115610243576102436116ba565b60405190808252806020026020018201604052801561026c578160200160208202803683370190505b509050600061027e6020850185611620565b600081811061028f5761028f6116d0565b60600291909101359150600190505b6102ab6020860186611620565b9050811015610363576102bf8260016116fc565b6102cc6020870187611620565b838181106102dc576102dc6116d0565b90506060020160000135146103335760405162461bcd60e51b815260206004820152601960248201527f526571756573747320617265206e6f7420696e206f72646572000000000000006044820152606401610190565b6103406020860186611620565b82818110610350576103506116d0565b606002919091013592505060010161029e565b5060005b6103746020860186611620565b90508110156104db573661038b6020870187611620565b8381811061039b5761039b6116d0565b90506060020190506002548160000135116103b657506104d3565b60006103c8604083016020840161170f565b60038111156103d9576103d96113ad565b0361040e57803584866103eb81611730565b9750815181106103fd576103fd6116d0565b6020026020010181815250506104d1565b6001610420604083016020840161170f565b6003811115610431576104316113ad565b0361045d57610450813561044b606084016040850161175a565b610a1b565b803584866103eb81611730565b600261046f604083016020840161170f565b6003811115610480576104806113ad565b0361049257803584866103eb81611730565b60405162461bcd60e51b8152602060048201526014602482015273756e6b6e6f776e2072657175657374207479706560601b6044820152606401610190565b505b600101610367565b5082156106135760008367ffffffffffffffff8111156104fd576104fd6116ba565b604051908082528060200260200182016040528015610526578160200160208202803683370190505b50905060005b8481101561057357838181518110610546576105466116d0565b6020026020010151828281518110610560576105606116d0565b602090810291909101015260010161052c565b506001805482916007916000918261058a83611730565b91905055815260200190815260200160002060000190805190602001906105b292919061128e565b508051600260008282546105c691906116fc565b9091555050600180547f09b30365986269e3939307e7ca7b7b7421a8ad08ef18bb766c668d27cbc2aef9916105fa91611777565b8260405161060992919061178a565b60405180910390a1505b50505050565b6001600160a01b0382166106675760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610190565b600081116106b75760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610190565b6040516323b872dd60e01b815233600482018190526001600160a01b038416602483018190526044830184905290918491906323b872dd906064016020604051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073591906117ab565b6107795760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610190565b604080516060810182526001600160a01b03808516825286166020820152908101849052600180548291600591600091826107b383611730565b9091555081526020808201929092526040908101600020835181546001600160a01b039182166001600160a01b03199182161783559385015160018084018054929093169190951617905592015160029092019190915580547fe28491c2da97a9923c92f6590a040dfc143fe636e8545356cdab0a796e1acefa9161083791611777565b604080519182526001600160a01b03808716602084015288169082015260608101869052608001610609565b61086b6112d9565b610885600254600161087d91906116fc565b600154610c00565b905090565b6001600160a01b0382166108d85760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610190565b600081116109285760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610190565b60408051606081018252338082526001600160a01b03851660208301529181018390526001805482916006916000918261096183611730565b9091555081526020808201929092526040908101600020835181546001600160a01b039182166001600160a01b03199182161783559385015160018084018054929093169190951617905592015160029092019190915580547fc764405a2acf44bf91c070359a13daa334e14c5a24f6f78b82e5b94d4863b0df916109e591611777565b604080519182526001600160a01b038086166020840152871690820152606081018590526080015b60405180910390a150505050565b8015610bfc57600082815260066020908152604091829020825160608101845281546001600160a01b03908116825260018301541692810183905260029091015481840181905292516370a0823160e01b815230600482015290929082906370a0823190602401602060405180830381865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac391906117c8565b1015610b1d5760405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e742062616c616e636520696e2074686520636f6e746044820152631c9858dd60e21b6064820152608401610190565b8151604080840151905163a9059cbb60e01b81526001600160a01b0384169263a9059cbb92610b62926004016001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba591906117ab565b50815160208084015160408086015181516001600160a01b0395861681529490921692840192909252908201527fa92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8a90606001610a0d565b5050565b610c086112d9565b610c106112d9565b6000808080875b878111610cd6576000818152600560205260409020546001600160a01b031615610c4d5784610c4581611730565b955050610cc4565b6000818152600660205260409020546001600160a01b031615610c7c5783610c7481611730565b945050610cc4565b60008181526007602052604090205415610ca25781610c9a81611730565b925050610cc4565b60008181526004602052604090205415610cc45782610cc081611730565b9350505b80610cce81611730565b915050610c17565b5060008183610ce586886116fc565b610cef91906116fc565b610cf991906116fc565b90508067ffffffffffffffff811115610d1457610d146116ba565b604051908082528060200260200182016040528015610d3d578160200160208202803683370190505b506060870152604086018990528367ffffffffffffffff811115610d6357610d636116ba565b604051908082528060200260200182016040528015610dae57816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610d815790505b5060808701528467ffffffffffffffff811115610dcd57610dcd6116ba565b604051908082528060200260200182016040528015610e1857816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610deb5790505b5060a08701528267ffffffffffffffff811115610e3757610e376116ba565b604051908082528060200260200182016040528015610e7c57816020015b6040805180820190915260008082526020820152815260200190600190039081610e555790505b5060c08701528167ffffffffffffffff811115610e9b57610e9b6116ba565b604051908082528060200260200182016040528015610edb57816020015b604080516020810190915260608152815260200190600190039081610eb95790505b5060e0870152600254865260018054610ef49190611777565b6020870152506000935083925082915081905080885b88811161127e576000818152600560205260409020546001600160a01b031615610ff357600087606001518380610f4090611730565b945081518110610f5257610f526116d0565b60200260200101906003811115610f6b57610f6b6113ad565b90816003811115610f7e57610f7e6113ad565b905250600081815260056020908152604091829020825160608101845281546001600160a01b03908116825260018301541692810192909252600201549181019190915260a088015187610fd181611730565b985081518110610fe357610fe36116d0565b602002602001018190525061126c565b6000818152600660205260409020546001600160a01b0316156110c55760018760600151838061102290611730565b945081518110611034576110346116d0565b6020026020010190600381111561104d5761104d6113ad565b90816003811115611060576110606113ad565b905250600081815260066020908152604091829020825160608101845281546001600160a01b0390811682526001830154169281019290925260020154918101919091526080880151866110b381611730565b975081518110610fe357610fe36116d0565b600081815260076020526040902054156111b4576003876060015183806110eb90611730565b9450815181106110fd576110fd6116d0565b60200260200101906003811115611116576111166113ad565b90816003811115611129576111296113ad565b9052506000818152600760209081526040918290208251815480840282018501855292810183815290939192849284919084018282801561118957602002820191906000526020600020905b815481526020019060010190808311611175575b5050505050815250508760e0015184806111a290611730565b955081518110610fe357610fe36116d0565b60008181526004602052604090205415611267576002876060015183806111da90611730565b9450815181106111ec576111ec6116d0565b60200260200101906003811115611205576112056113ad565b90816003811115611218576112186113ad565b9052506000818152600460209081526040918290208251808401909352805483526001015460ff1615159082015260c08801518561125581611730565b965081518110610fe357610fe36116d0565b61127e565b8061127681611730565b915050610f0a565b5094955050505050505b92915050565b8280548282559060005260206000209081019282156112c9579160200282015b828111156112c95782518255916020019190600101906112ae565b506112d592915061131e565b5090565b60405180610100016040528060008152602001600081526020016000815260200160608152602001606081526020016060815260200160608152602001606081525090565b5b808211156112d5576000815560010161131f565b60006020828403121561134557600080fd5b813567ffffffffffffffff81111561135c57600080fd5b82016040818503121561136e57600080fd5b9392505050565b6000806040838503121561138857600080fd5b82356001600160a01b038116811461139f57600080fd5b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b6000815180845260208085019450602084016000805b8481101561141257825160048082106113ff57634e487b7160e01b845260218152602484fd5b50885296830196918301916001016113d9565b50959695505050505050565b60008151808452602080850194506020840160005b8381101561147157815180516001600160a01b0390811689528482015116848901526040908101519088015260609096019590820190600101611433565b509495945050505050565b60008151808452602080850194506020840160005b838110156114715781518051885283015115158388015260409096019590820190600101611491565b60008151808452602080850194506020840160005b83811015611471578151875295820195908201906001016114cf565b600082825180855260208086019550808260051b84010181860160005b8481101561153e57858303601f1901895281515184845261152b858501826114ba565b9985019993505090830190600101611508565b5090979650505050505050565b60208152815160208201526020820151604082015260408201516060820152600060608301516101008060808501526115886101208501836113c3565b91506080850151601f19808685030160a08701526115a6848361141e565b935060a08701519150808685030160c08701526115c3848361141e565b935060c08701519150808685030160e08701526115e0848361147c565b935060e08701519150808685030183870152506115fd83826114eb565b9695505050505050565b60006020828403121561161957600080fd5b5035919050565b6000808335601e1984360301811261163757600080fd5b83018035915067ffffffffffffffff82111561165257600080fd5b602001915060608102360382131561166957600080fd5b9250929050565b6000808335601e1984360301811261168757600080fd5b83018035915067ffffffffffffffff8211156116a257600080fd5b6020019150600581901b360382131561166957600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611288576112886116e6565b60006020828403121561172157600080fd5b81356004811061136e57600080fd5b600060018201611742576117426116e6565b5060010190565b801515811461175757600080fd5b50565b60006020828403121561176c57600080fd5b813561136e81611749565b81810381811115611288576112886116e6565b8281526040602082015260006117a360408301846114ba565b949350505050565b6000602082840312156117bd57600080fd5b815161136e81611749565b6000602082840312156117da57600080fd5b505191905056fea2646970667358221220f1374b438f74eb32eea780bb31bf5a818cfaa61ca8554b45912cfc9614adc0c464736f6c63430008160033", + "sourceMap": "194:12162:24:-:0;;;2936:156;;;;;;;;;-1:-1:-1;2992:1:24;2960:29;:33;;;3013:1;3003:11;;3024:29;:33;;;3067:18;;-1:-1:-1;;;;;;3067:18:24;3075:10;3067:18;;;194:12162;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063b15387061161005b578063b1538706146100da578063ca9b21ae146100ef578063f26ee9d01461012e578063f3fef3a31461013757600080fd5b806334b038051461008d57806347e7ef24146100a257806361bc221a146100b55780637fd4f845146100d1575b600080fd5b6100a061009b366004611333565b61014a565b005b6100a06100b0366004611375565b610619565b6100be60015481565b6040519081526020015b60405180910390f35b6100be60025481565b6100e2610863565b6040516100c8919061154b565b6101196100fd366004611607565b6004602052600090815260409020805460019091015460ff1682565b604080519283529015156020830152016100c8565b6100be60035481565b6100a0610145366004611375565b61088a565b6000546001600160a01b031633146101995760405162461bcd60e51b815260206004820152600d60248201526c2737ba103a34329037bbb732b960991b60448201526064015b60405180910390fd5b60016101a86020830183611620565b90501015806101c3575060016101be8280611670565b905010155b6102195760405162461bcd60e51b815260206004820152602160248201527f4172726179206d7573742068617665206174206c6561737420312075706461746044820152606560f81b6064820152608401610190565b6000806102296020840184611620565b905067ffffffffffffffff811115610243576102436116ba565b60405190808252806020026020018201604052801561026c578160200160208202803683370190505b509050600061027e6020850185611620565b600081811061028f5761028f6116d0565b60600291909101359150600190505b6102ab6020860186611620565b9050811015610363576102bf8260016116fc565b6102cc6020870187611620565b838181106102dc576102dc6116d0565b90506060020160000135146103335760405162461bcd60e51b815260206004820152601960248201527f526571756573747320617265206e6f7420696e206f72646572000000000000006044820152606401610190565b6103406020860186611620565b82818110610350576103506116d0565b606002919091013592505060010161029e565b5060005b6103746020860186611620565b90508110156104db573661038b6020870187611620565b8381811061039b5761039b6116d0565b90506060020190506002548160000135116103b657506104d3565b60006103c8604083016020840161170f565b60038111156103d9576103d96113ad565b0361040e57803584866103eb81611730565b9750815181106103fd576103fd6116d0565b6020026020010181815250506104d1565b6001610420604083016020840161170f565b6003811115610431576104316113ad565b0361045d57610450813561044b606084016040850161175a565b610a1b565b803584866103eb81611730565b600261046f604083016020840161170f565b6003811115610480576104806113ad565b0361049257803584866103eb81611730565b60405162461bcd60e51b8152602060048201526014602482015273756e6b6e6f776e2072657175657374207479706560601b6044820152606401610190565b505b600101610367565b5082156106135760008367ffffffffffffffff8111156104fd576104fd6116ba565b604051908082528060200260200182016040528015610526578160200160208202803683370190505b50905060005b8481101561057357838181518110610546576105466116d0565b6020026020010151828281518110610560576105606116d0565b602090810291909101015260010161052c565b506001805482916007916000918261058a83611730565b91905055815260200190815260200160002060000190805190602001906105b292919061128e565b508051600260008282546105c691906116fc565b9091555050600180547f09b30365986269e3939307e7ca7b7b7421a8ad08ef18bb766c668d27cbc2aef9916105fa91611777565b8260405161060992919061178a565b60405180910390a1505b50505050565b6001600160a01b0382166106675760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610190565b600081116106b75760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610190565b6040516323b872dd60e01b815233600482018190526001600160a01b038416602483018190526044830184905290918491906323b872dd906064016020604051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073591906117ab565b6107795760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610190565b604080516060810182526001600160a01b03808516825286166020820152908101849052600180548291600591600091826107b383611730565b9091555081526020808201929092526040908101600020835181546001600160a01b039182166001600160a01b03199182161783559385015160018084018054929093169190951617905592015160029092019190915580547fe28491c2da97a9923c92f6590a040dfc143fe636e8545356cdab0a796e1acefa9161083791611777565b604080519182526001600160a01b03808716602084015288169082015260608101869052608001610609565b61086b6112d9565b610885600254600161087d91906116fc565b600154610c00565b905090565b6001600160a01b0382166108d85760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610190565b600081116109285760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610190565b60408051606081018252338082526001600160a01b03851660208301529181018390526001805482916006916000918261096183611730565b9091555081526020808201929092526040908101600020835181546001600160a01b039182166001600160a01b03199182161783559385015160018084018054929093169190951617905592015160029092019190915580547fc764405a2acf44bf91c070359a13daa334e14c5a24f6f78b82e5b94d4863b0df916109e591611777565b604080519182526001600160a01b038086166020840152871690820152606081018590526080015b60405180910390a150505050565b8015610bfc57600082815260066020908152604091829020825160608101845281546001600160a01b03908116825260018301541692810183905260029091015481840181905292516370a0823160e01b815230600482015290929082906370a0823190602401602060405180830381865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac391906117c8565b1015610b1d5760405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e742062616c616e636520696e2074686520636f6e746044820152631c9858dd60e21b6064820152608401610190565b8151604080840151905163a9059cbb60e01b81526001600160a01b0384169263a9059cbb92610b62926004016001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610b81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba591906117ab565b50815160208084015160408086015181516001600160a01b0395861681529490921692840192909252908201527fa92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8a90606001610a0d565b5050565b610c086112d9565b610c106112d9565b6000808080875b878111610cd6576000818152600560205260409020546001600160a01b031615610c4d5784610c4581611730565b955050610cc4565b6000818152600660205260409020546001600160a01b031615610c7c5783610c7481611730565b945050610cc4565b60008181526007602052604090205415610ca25781610c9a81611730565b925050610cc4565b60008181526004602052604090205415610cc45782610cc081611730565b9350505b80610cce81611730565b915050610c17565b5060008183610ce586886116fc565b610cef91906116fc565b610cf991906116fc565b90508067ffffffffffffffff811115610d1457610d146116ba565b604051908082528060200260200182016040528015610d3d578160200160208202803683370190505b506060870152604086018990528367ffffffffffffffff811115610d6357610d636116ba565b604051908082528060200260200182016040528015610dae57816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610d815790505b5060808701528467ffffffffffffffff811115610dcd57610dcd6116ba565b604051908082528060200260200182016040528015610e1857816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181610deb5790505b5060a08701528267ffffffffffffffff811115610e3757610e376116ba565b604051908082528060200260200182016040528015610e7c57816020015b6040805180820190915260008082526020820152815260200190600190039081610e555790505b5060c08701528167ffffffffffffffff811115610e9b57610e9b6116ba565b604051908082528060200260200182016040528015610edb57816020015b604080516020810190915260608152815260200190600190039081610eb95790505b5060e0870152600254865260018054610ef49190611777565b6020870152506000935083925082915081905080885b88811161127e576000818152600560205260409020546001600160a01b031615610ff357600087606001518380610f4090611730565b945081518110610f5257610f526116d0565b60200260200101906003811115610f6b57610f6b6113ad565b90816003811115610f7e57610f7e6113ad565b905250600081815260056020908152604091829020825160608101845281546001600160a01b03908116825260018301541692810192909252600201549181019190915260a088015187610fd181611730565b985081518110610fe357610fe36116d0565b602002602001018190525061126c565b6000818152600660205260409020546001600160a01b0316156110c55760018760600151838061102290611730565b945081518110611034576110346116d0565b6020026020010190600381111561104d5761104d6113ad565b90816003811115611060576110606113ad565b905250600081815260066020908152604091829020825160608101845281546001600160a01b0390811682526001830154169281019290925260020154918101919091526080880151866110b381611730565b975081518110610fe357610fe36116d0565b600081815260076020526040902054156111b4576003876060015183806110eb90611730565b9450815181106110fd576110fd6116d0565b60200260200101906003811115611116576111166113ad565b90816003811115611129576111296113ad565b9052506000818152600760209081526040918290208251815480840282018501855292810183815290939192849284919084018282801561118957602002820191906000526020600020905b815481526020019060010190808311611175575b5050505050815250508760e0015184806111a290611730565b955081518110610fe357610fe36116d0565b60008181526004602052604090205415611267576002876060015183806111da90611730565b9450815181106111ec576111ec6116d0565b60200260200101906003811115611205576112056113ad565b90816003811115611218576112186113ad565b9052506000818152600460209081526040918290208251808401909352805483526001015460ff1615159082015260c08801518561125581611730565b965081518110610fe357610fe36116d0565b61127e565b8061127681611730565b915050610f0a565b5094955050505050505b92915050565b8280548282559060005260206000209081019282156112c9579160200282015b828111156112c95782518255916020019190600101906112ae565b506112d592915061131e565b5090565b60405180610100016040528060008152602001600081526020016000815260200160608152602001606081526020016060815260200160608152602001606081525090565b5b808211156112d5576000815560010161131f565b60006020828403121561134557600080fd5b813567ffffffffffffffff81111561135c57600080fd5b82016040818503121561136e57600080fd5b9392505050565b6000806040838503121561138857600080fd5b82356001600160a01b038116811461139f57600080fd5b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b6000815180845260208085019450602084016000805b8481101561141257825160048082106113ff57634e487b7160e01b845260218152602484fd5b50885296830196918301916001016113d9565b50959695505050505050565b60008151808452602080850194506020840160005b8381101561147157815180516001600160a01b0390811689528482015116848901526040908101519088015260609096019590820190600101611433565b509495945050505050565b60008151808452602080850194506020840160005b838110156114715781518051885283015115158388015260409096019590820190600101611491565b60008151808452602080850194506020840160005b83811015611471578151875295820195908201906001016114cf565b600082825180855260208086019550808260051b84010181860160005b8481101561153e57858303601f1901895281515184845261152b858501826114ba565b9985019993505090830190600101611508565b5090979650505050505050565b60208152815160208201526020820151604082015260408201516060820152600060608301516101008060808501526115886101208501836113c3565b91506080850151601f19808685030160a08701526115a6848361141e565b935060a08701519150808685030160c08701526115c3848361141e565b935060c08701519150808685030160e08701526115e0848361147c565b935060e08701519150808685030183870152506115fd83826114eb565b9695505050505050565b60006020828403121561161957600080fd5b5035919050565b6000808335601e1984360301811261163757600080fd5b83018035915067ffffffffffffffff82111561165257600080fd5b602001915060608102360382131561166957600080fd5b9250929050565b6000808335601e1984360301811261168757600080fd5b83018035915067ffffffffffffffff8211156116a257600080fd5b6020019150600581901b360382131561166957600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611288576112886116e6565b60006020828403121561172157600080fd5b81356004811061136e57600080fd5b600060018201611742576117426116e6565b5060010190565b801515811461175757600080fd5b50565b60006020828403121561176c57600080fd5b813561136e81611749565b81810381811115611288576112886116e6565b8281526040602082015260006117a360408301846114ba565b949350505050565b6000602082840312156117bd57600080fd5b815161136e81611749565b6000602082840312156117da57600080fd5b505191905056fea2646970667358221220f1374b438f74eb32eea780bb31bf5a818cfaa61ca8554b45912cfc9614adc0c464736f6c63430008160033", + "sourceMap": "194:12162:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4755:2641;;;;;;:::i;:::-;;:::i;:::-;;3098:875;;;;;;:::i;:::-;;:::i;279:22::-;;;;;;;;;912:25:28;;;900:2;885:18;279:22:24;;;;;;;;404:44;;;;;;4601:148;;;:::i;:::-;;;;;;;:::i;2262:61::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;5989:25:28;;;6057:14;;6050:22;6045:2;6030:18;;6023:50;5962:18;2262:61:24;5821:258:28;567:44:24;;;;;;3979:616;;;;;;:::i;:::-;;:::i;4755:2641::-;4958:5;;-1:-1:-1;;;;;4958:5:24;4944:10;:19;4936:45;;;;-1:-1:-1;;;4936:45:24;;6286:2:28;4936:45:24;;;6268:21:28;6325:2;6305:18;;;6298:30;-1:-1:-1;;;6344:18:28;;;6337:43;6397:18;;4936:45:24;;;;;;;;;5028:1;4999:18;;;;:10;:18;:::i;:::-;:25;;:30;;:64;;;-1:-1:-1;5062:1:24;5033:18;:10;;:18;:::i;:::-;:25;;:30;;4999:64;4991:110;;;;-1:-1:-1;;;4991:110:24;;7792:2:28;4991:110:24;;;7774:21:28;7831:2;7811:18;;;7804:30;7870:34;7850:18;;;7843:62;-1:-1:-1;;;7921:18:28;;;7914:31;7962:19;;4991:110:24;7590:397:28;4991:110:24;5112:33;;5230:18;;;;:10;:18;:::i;:::-;:25;;5203:62;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5203:62:24;-1:-1:-1;5159:106:24;-1:-1:-1;5276:19:24;5298:18;;;;:10;:18;:::i;:::-;5317:1;5298:21;;;;;;;:::i;:::-;;;;;;;:31;;-1:-1:-1;5358:1:24;;-1:-1:-1;5339:271:24;5367:18;;;;:10;:18;:::i;:::-;:25;;5361:3;:31;5339:271;;;5456:15;:11;5470:1;5456:15;:::i;:::-;5419:18;;;;:10;:18;:::i;:::-;5438:3;5419:23;;;;;;;:::i;:::-;;;;;;:33;;;:52;5415:124;;5489:35;;-1:-1:-1;;;5489:35:24;;8720:2:28;5489:35:24;;;8702:21:28;8759:2;8739:18;;;8732:30;8798:27;8778:18;;;8771:55;8843:18;;5489:35:24;8518:349:28;5415:124:24;5566:18;;;;:10;:18;:::i;:::-;5585:3;5566:23;;;;;;;:::i;:::-;;;;;;;:33;;-1:-1:-1;;5394:5:24;;5339:271;;;;5625:11;5620:1067;5648:18;;;;:10;:18;:::i;:::-;:25;;5642:3;:31;5620:1067;;;5696:30;5729:18;;;;:10;:18;:::i;:::-;5748:3;5729:23;;;;;;;:::i;:::-;;;;;;5696:56;;5792:29;;5771:7;:17;;;:50;5767:95;;5839:8;;;5767:95;5902:18;5880;;;;;;;;:::i;:::-;:40;;;;;;;;:::i;:::-;;5876:800;;6018:17;;5940:24;5965:27;;;;:::i;:::-;;;5940:53;;;;;;;;:::i;:::-;;;;;;:113;;;;;5876:800;;;6112:21;6090:18;;;;;;;;:::i;:::-;:43;;;;;;;;:::i;:::-;;6086:590;;6153:120;6204:17;;6241:14;;;;;;;;:::i;:::-;6153:31;:120::i;:::-;6364:17;;6290:24;6315:27;;;;:::i;6086:590::-;6444:23;6422:18;;;;;;;;:::i;:::-;:45;;;;;;;;:::i;:::-;;6418:258;;6559:17;;6485:24;6510:27;;;;:::i;6418:258::-;6631:30;;-1:-1:-1;;;6631:30:24;;9860:2:28;6631:30:24;;;9842:21:28;9899:2;9879:18;;;9872:30;-1:-1:-1;;;9918:18:28;;;9911:50;9978:18;;6631:30:24;9658:344:28;6418:258:24;5682:1005;5620:1067;5675:5;;5620:1067;;;-1:-1:-1;6700:29:24;;6697:693;;6796:37;6863:25;6836:64;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6836:64:24;;6796:104;;6974:9;6969:136;6993:25;6989:1;:29;6969:136;;;7065:24;7090:1;7065:27;;;;;;;;:::i;:::-;;;;;;;7039:20;7060:1;7039:23;;;;;;;;:::i;:::-;;;;;;;;;;:53;7020:3;;6969:136;;;-1:-1:-1;7135:7:24;:9;;7166:20;;7117:17;;:28;;;7135:9;;;:::i;:::-;;;;;7117:28;;;;;;;;;;;:46;;:69;;;;;;;;;;;;:::i;:::-;;7265:20;:27;7232:29;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;7355:1:24;7345:7;;7309:70;;7345:11;;;:::i;:::-;7358:20;7309:70;;;;;;;:::i;:::-;;;;;;;;6730:660;6697:693;4821:2575;;;4755:2641;:::o;3098:875::-;-1:-1:-1;;;;;3178:26:24;;3170:60;;;;-1:-1:-1;;;3170:60:24;;10679:2:28;3170:60:24;;;10661:21:28;10718:2;10698:18;;;10691:30;-1:-1:-1;;;10737:18:28;;;10730:51;10798:18;;3170:60:24;10477:345:28;3170:60:24;3257:1;3248:6;:10;3240:55;;;;-1:-1:-1;;;3240:55:24;;11029:2:28;3240:55:24;;;11011:21:28;;;11048:18;;;11041:30;11107:34;11087:18;;;11080:62;11159:18;;3240:55:24;10827:356:28;3240:55:24;3515:52;;-1:-1:-1;;;3515:52:24;;3332:10;3515:52;;;11428:34:28;;;-1:-1:-1;;;;;3515:18:24;;11478::28;;;11471:43;;;11530:18;;;11523:34;;;3332:10:24;;3375:12;;3515:18;;;11363::28;;3515:52:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3494:120;;;;-1:-1:-1;;;3494:120:24;;12020:2:28;3494:120:24;;;12002:21:28;12059:2;12039:18;;;12032:30;-1:-1:-1;;;12078:18:28;;;12071:51;12139:18;;3494:120:24;11818:345:28;3494:120:24;3653:135;;;;;;;;-1:-1:-1;;;;;3653:135:24;;;;;;;;;;;;;;;;;3853:7;:9;;3653:135;;3844:8;;3625:25;;;3853:9;;;:::i;:::-;;;;-1:-1:-1;3844:19:24;;;;;;;;;;;;;;-1:-1:-1;3844:19:24;:32;;;;-1:-1:-1;;;;;3844:32:24;;;-1:-1:-1;;;;;;3844:32:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3916:7;;3891:75;;3916:9;;;:::i;:::-;3891:75;;;12399:25:28;;;-1:-1:-1;;;;;12498:15:28;;;12493:2;12478:18;;12471:43;12550:15;;12530:18;;;12523:43;12597:2;12582:18;;12575:34;;;12386:3;12371:19;3891:75:24;12168:447:28;4601:148:24;4648:15;;:::i;:::-;4682:60;4701:29;;4731:1;4701:31;;;;:::i;:::-;4734:7;;4682:18;:60::i;:::-;4675:67;;4601:148;:::o;3979:616::-;-1:-1:-1;;;;;4060:26:24;;4052:60;;;;-1:-1:-1;;;4052:60:24;;10679:2:28;4052:60:24;;;10661:21:28;10718:2;10698:18;;;10691:30;-1:-1:-1;;;10737:18:28;;;10730:51;10798:18;;4052:60:24;10477:345:28;4052:60:24;4139:1;4130:6;:10;4122:55;;;;-1:-1:-1;;;4122:55:24;;11029:2:28;4122:55:24;;;11011:21:28;;;11048:18;;;11041:30;11107:34;11087:18;;;11080:62;11159:18;;4122:55:24;10827:356:28;4122:55:24;4266:138;;;;;;;;4215:10;4266:138;;;-1:-1:-1;;;;;4266:138:24;;;;;;;;;;;;4472:7;:9;;4266:138;;4462:9;;4187:25;;;4472:9;;;:::i;:::-;;;;-1:-1:-1;4462:20:24;;;;;;;;;;;;;;-1:-1:-1;4462:20:24;:34;;;;-1:-1:-1;;;;;4462:34:24;;;-1:-1:-1;;;;;;4462:34:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4537:7;;4511:77;;4537:9;;;:::i;:::-;4511:77;;;12399:25:28;;;-1:-1:-1;;;;;12498:15:28;;;12493:2;12478:18;;12471:43;12550:15;;12530:18;;;12523:43;12597:2;12582:18;;12575:34;;;12386:3;12371:19;4511:77:24;;;;;;;;4042:553;;3979:616;;:::o;8626:750::-;8744:7;8740:630;;;8767:27;8797:20;;;:9;:20;;;;;;;;;8767:50;;;;;;;;;-1:-1:-1;;;;;8767:50:24;;;;;;;;;;;;;;;;;;;;;;;;;;;8918:30;;-1:-1:-1;;;8918:30:24;;8942:4;8918:30;;;12766:51:28;8767:50:24;;;;;8918:15;;12739:18:28;;8918:30:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;8893:147;;;;-1:-1:-1;;;8893:147:24;;13219:2:28;8893:147:24;;;13201:21:28;13258:2;13238:18;;;13231:30;13297:34;13277:18;;;13270:62;-1:-1:-1;;;13348:18:28;;;13341:34;13392:19;;8893:147:24;13017:400:28;8893:147:24;9136:29;;9167:18;;;;;9121:65;;-1:-1:-1;;;9121:65:24;;-1:-1:-1;;;;;9121:14:24;;;;;:65;;;;-1:-1:-1;;;;;13614:32:28;;;;13596:51;;13678:2;13663:18;;13656:34;13584:2;13569:18;;13422:274;9121:65:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9238:29:24;;9285:24;;;;;9327:18;;;;;9206:153;;-1:-1:-1;;;;;11446:15:28;;;11428:34;;11498:15;;;;11478:18;;;11471:43;;;;11530:18;;;11523:34;9206:153:24;;11378:2:28;11363:18;9206:153:24;11188:375:28;8740:630:24;8626:750;;:::o;9534:2819::-;9635:15;;:::i;:::-;9662:22;;:::i;:::-;9695:23;;;;9879:5;9854:534;9899:3;9886:9;:16;9854:534;;9983:1;9935:19;;;:8;:19;;;;;:36;-1:-1:-1;;;;;9935:36:24;:50;9931:447;;10003:17;;;;:::i;:::-;;;;9931:447;;;10095:1;10045:20;;;:9;:20;;;;;:38;-1:-1:-1;;;;;10045:38:24;:52;10041:337;;10115:18;;;;:::i;:::-;;;;10041:337;;;10214:1;10158:28;;;:17;:28;;;;;:53;:57;10154:224;;10233:27;;;;:::i;:::-;;;;10154:224;;;10328:1;10285:28;;;:17;:28;;;;;:40;:44;10281:97;;10347:16;;;;:::i;:::-;;;;10281:97;9904:11;;;;:::i;:::-;;;;9854:534;;;-1:-1:-1;10398:22:24;10477:25;10460:14;10423:34;10441:16;10423:15;:34;:::i;:::-;:51;;;;:::i;:::-;:79;;;;:::i;:::-;10398:104;;10552:14;10527:40;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10527:40:24;-1:-1:-1;10512:12:24;;;:55;10578:13;;;:21;;;10650:16;10635:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;10635:32:24;;-1:-1:-1;;10635:32:24;;;;;;;;;;;-1:-1:-1;10609:23:24;;;:58;10716:15;10702:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;10702:30:24;;-1:-1:-1;;10702:30:24;;;;;;;;;;;-1:-1:-1;10677:22:24;;;:55;10798:14;10775:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;10775:38:24;;;;;;;;;;;;;;;-1:-1:-1;10742:30:24;;;:71;10881:25;10857:50;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;10857:50:24;;;;;;;;;;;;;;;-1:-1:-1;10823:31:24;;;:84;10952:29;;10917:64;;11034:1;11024:7;;:11;;11034:1;11024:11;:::i;:::-;10991:30;;;:44;-1:-1:-1;11065:1:24;;-1:-1:-1;11065:1:24;;-1:-1:-1;11065:1:24;;-1:-1:-1;11065:1:24;;-1:-1:-1;11065:1:24;11226:5;11201:1122;11246:3;11233:9;:16;11201:1122;;11330:1;11282:19;;;:8;:19;;;;;:36;-1:-1:-1;;;;;11282:36:24;:50;11278:1035;;11383:26;11350:6;:12;;;11363:16;;;;;:::i;:::-;;;11350:30;;;;;;;;:::i;:::-;;;;;;:59;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;11469:19:24;;;;:8;:19;;;;;;;;;11425:63;;;;;;;;;-1:-1:-1;;;;;11425:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;;11448:17;;;;:::i;:::-;;;11425:41;;;;;;;;:::i;:::-;;;;;;:63;;;;11278:1035;;;11563:1;11513:20;;;:9;:20;;;;;:38;-1:-1:-1;;;;;11513:38:24;:52;11509:804;;11616:29;11583:6;:12;;;11596:16;;;;;:::i;:::-;;;11583:30;;;;;;;;:::i;:::-;;;;;;:62;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;11707:20:24;;;;:9;:20;;;;;;;;;11661:66;;;;;;;;;-1:-1:-1;;;;;11661:66:24;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;11685:18;;;;:::i;:::-;;;11661:43;;;;;;;;:::i;11509:804::-;11809:1;11753:28;;;:17;:28;;;;;:53;:57;11748:565;;11861:39;11828:6;:12;;;11841:16;;;;;:::i;:::-;;;11828:30;;;;;;;;:::i;:::-;;;;;;:72;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;11979:28:24;;;;:17;:28;;;;;;;;;11916:91;;;;;;;;;;;;;;;;;;;;;11979:28;;11916:91;;11979:28;;11916:91;;;11979:28;11916:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:6;:31;;;11948:27;;;;;:::i;:::-;;;11916:60;;;;;;;;:::i;11748:565::-;12075:1;12032:28;;;:17;:28;;;;;:40;:44;12028:285;;12127:36;12094:6;:12;;;12107:16;;;;;:::i;:::-;;;12094:30;;;;;;;;:::i;:::-;;;;;;:69;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;12230:28:24;;;;:17;:28;;;;;;;;;12179:79;;;;;;;;;;;;;;;;;;;;;;;:30;;;;12210:16;;;;:::i;:::-;;;12179:48;;;;;;;;:::i;12028:285::-;12293:5;;12028:285;11251:11;;;;:::i;:::-;;;;11201:1122;;;-1:-1:-1;12340:6:24;;-1:-1:-1;;;;;;9534:2819:24;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:388:28;102:6;155:2;143:9;134:7;130:23;126:32;123:52;;;171:1;168;161:12;123:52;211:9;198:23;244:18;236:6;233:30;230:50;;;276:1;273;266:12;230:50;299:22;;355:2;337:16;;;333:25;330:45;;;371:1;368;361:12;330:45;394:2;14:388;-1:-1:-1;;;14:388:28:o;407:354::-;475:6;483;536:2;524:9;515:7;511:23;507:32;504:52;;;552:1;549;542:12;504:52;578:23;;-1:-1:-1;;;;;630:31:28;;620:42;;610:70;;676:1;673;666:12;610:70;699:5;751:2;736:18;;;;723:32;;-1:-1:-1;;;407:354:28:o;948:127::-;1009:10;1004:3;1000:20;997:1;990:31;1040:4;1037:1;1030:15;1064:4;1061:1;1054:15;1080:706;1149:3;1187:5;1181:12;1214:6;1209:3;1202:19;1240:4;1269;1264:3;1260:14;1253:21;;1308:4;1301:5;1297:16;1331:1;1352;1362:399;1378:6;1373:3;1370:15;1362:399;;;1447:6;1441:13;1477:1;1508:2;1504;1501:10;1491:162;;-1:-1:-1;;;1543:31:28;;1602:4;1591:16;;1634:4;1550:1;1624:15;1491:162;-1:-1:-1;1666:15:28;;1701:12;;;;1736:15;;;;1404:1;1395:11;1362:399;;;-1:-1:-1;1777:3:28;;1080:706;-1:-1:-1;;;;;;1080:706:28:o;1791:674::-;1852:3;1890:5;1884:12;1917:6;1912:3;1905:19;1943:4;1972;1967:3;1963:14;1956:21;;2011:4;2004:5;2000:16;2034:1;2044:396;2058:6;2055:1;2052:13;2044:396;;;2117:13;;2201:9;;-1:-1:-1;;;;;2197:18:28;;;2185:31;;2260:11;;;2254:18;2250:27;2236:12;;;2229:49;2301:4;2345:11;;;2339:18;2325:12;;;2318:40;2387:4;2378:14;;;;2415:15;;;;2170:1;2073:9;2044:396;;;-1:-1:-1;2456:3:28;;1791:674;-1:-1:-1;;;;;1791:674:28:o;2470:558::-;2539:3;2577:5;2571:12;2604:6;2599:3;2592:19;2630:4;2659;2654:3;2650:14;2643:21;;2698:4;2691:5;2687:16;2721:1;2731:272;2745:6;2742:1;2739:13;2731:272;;;2804:13;;2842:9;;2830:22;;2906:11;;2900:18;2893:26;2886:34;2872:12;;;2865:56;2950:4;2941:14;;;;2978:15;;;;2767:1;2760:9;2731:272;;3033:439;3086:3;3124:5;3118:12;3151:6;3146:3;3139:19;3177:4;3206;3201:3;3197:14;3190:21;;3245:4;3238:5;3234:16;3268:1;3278:169;3292:6;3289:1;3286:13;3278:169;;;3353:13;;3341:26;;3387:12;;;;3422:15;;;;3314:1;3307:9;3278:169;;3477:711;3547:3;3578;3610:5;3604:12;3637:6;3632:3;3625:19;3663:4;3692:2;3687:3;3683:12;3676:19;;3748:2;3738:6;3735:1;3731:14;3724:5;3720:26;3716:35;3785:2;3778:5;3774:14;3806:1;3816:346;3830:6;3827:1;3824:13;3816:346;;;3895:16;;;-1:-1:-1;;3891:30:28;3879:43;;3961:13;;3955:20;3988:16;;;4025:57;4068:13;;;3955:20;4025:57;:::i;:::-;4140:12;;;;4017:65;-1:-1:-1;;4105:15:28;;;;3852:1;3845:9;3816:346;;;-1:-1:-1;4178:4:28;;3477:711;-1:-1:-1;;;;;;;3477:711:28:o;4193:1438::-;4376:2;4365:9;4358:21;4421:6;4415:13;4410:2;4399:9;4395:18;4388:41;4483:2;4475:6;4471:15;4465:22;4460:2;4449:9;4445:18;4438:50;4542:2;4534:6;4530:15;4524:22;4519:2;4508:9;4504:18;4497:50;4339:4;4594:2;4586:6;4582:15;4576:22;4617:6;4660:2;4654:3;4643:9;4639:19;4632:31;4686:79;4760:3;4749:9;4745:19;4731:12;4686:79;:::i;:::-;4672:93;;4814:3;4806:6;4802:16;4796:23;4842:2;4838:7;4910:2;4898:9;4890:6;4886:22;4882:31;4876:3;4865:9;4861:19;4854:60;4937;4990:6;4974:14;4937:60;:::i;:::-;4923:74;;5046:3;5038:6;5034:16;5028:23;5006:45;;5116:2;5104:9;5096:6;5092:22;5088:31;5082:3;5071:9;5067:19;5060:60;5143;5196:6;5180:14;5143:60;:::i;:::-;5129:74;;5252:3;5244:6;5240:16;5234:23;5212:45;;5322:2;5310:9;5302:6;5298:22;5294:31;5288:3;5277:9;5273:19;5266:60;5349:68;5410:6;5394:14;5349:68;:::i;:::-;5335:82;;5466:3;5458:6;5454:16;5448:23;5426:45;;5535:2;5523:9;5515:6;5511:22;5507:31;5502:2;5491:9;5487:18;5480:59;;5556:69;5618:6;5602:14;5556:69;:::i;:::-;5548:77;4193:1438;-1:-1:-1;;;;;;4193:1438:28:o;5636:180::-;5695:6;5748:2;5736:9;5727:7;5723:23;5719:32;5716:52;;;5764:1;5761;5754:12;5716:52;-1:-1:-1;5787:23:28;;5636:180;-1:-1:-1;5636:180:28:o;6426:582::-;6553:4;6559:6;6619:11;6606:25;6713:2;6709:7;6698:8;6682:14;6678:29;6674:43;6654:18;6650:68;6640:96;;6732:1;6729;6722:12;6640:96;6759:33;;6811:20;;;-1:-1:-1;6854:18:28;6843:30;;6840:50;;;6886:1;6883;6876:12;6840:50;6919:4;6907:17;;-1:-1:-1;6978:4:28;6966:17;;6950:14;6946:38;6936:49;;6933:69;;;6998:1;6995;6988:12;6933:69;6426:582;;;;;:::o;7013:572::-;7133:4;7139:6;7199:11;7186:25;7293:2;7289:7;7278:8;7262:14;7258:29;7254:43;7234:18;7230:68;7220:96;;7312:1;7309;7302:12;7220:96;7339:33;;7391:20;;;-1:-1:-1;7434:18:28;7423:30;;7420:50;;;7466:1;7463;7456:12;7420:50;7499:4;7487:17;;-1:-1:-1;7550:1:28;7546:14;;;7530;7526:35;7516:46;;7513:66;;;7575:1;7572;7565:12;7992:127;8053:10;8048:3;8044:20;8041:1;8034:31;8084:4;8081:1;8074:15;8108:4;8105:1;8098:15;8124:127;8185:10;8180:3;8176:20;8173:1;8166:31;8216:4;8213:1;8206:15;8240:4;8237:1;8230:15;8256:127;8317:10;8312:3;8308:20;8305:1;8298:31;8348:4;8345:1;8338:15;8372:4;8369:1;8362:15;8388:125;8453:9;;;8474:10;;;8471:36;;;8487:18;;:::i;8872:272::-;8947:6;9000:2;8988:9;8979:7;8975:23;8971:32;8968:52;;;9016:1;9013;9006:12;8968:52;9055:9;9042:23;9094:1;9087:5;9084:12;9074:40;;9110:1;9107;9100:12;9149:135;9188:3;9209:17;;;9206:43;;9229:18;;:::i;:::-;-1:-1:-1;9276:1:28;9265:13;;9149:135::o;9289:118::-;9375:5;9368:13;9361:21;9354:5;9351:32;9341:60;;9397:1;9394;9387:12;9341:60;9289:118;:::o;9412:241::-;9468:6;9521:2;9509:9;9500:7;9496:23;9492:32;9489:52;;;9537:1;9534;9527:12;9489:52;9576:9;9563:23;9595:28;9617:5;9595:28;:::i;10007:128::-;10074:9;;;10095:11;;;10092:37;;;10109:18;;:::i;10140:332::-;10347:6;10336:9;10329:25;10390:2;10385;10374:9;10370:18;10363:30;10310:4;10410:56;10462:2;10451:9;10447:18;10439:6;10410:56;:::i;:::-;10402:64;10140:332;-1:-1:-1;;;;10140:332:28:o;11568:245::-;11635:6;11688:2;11676:9;11667:7;11663:23;11659:32;11656:52;;;11704:1;11701;11694:12;11656:52;11736:9;11730:16;11755:28;11777:5;11755:28;:::i;12828:184::-;12898:6;12951:2;12939:9;12930:7;12926:23;12922:32;12919:52;;;12967:1;12964;12957:12;12919:52;-1:-1:-1;12990:16:28;;12828:184;-1:-1:-1;12828:184:28:o", + "linkReferences": {} + }, + "methodIdentifiers": { + "cancelResolutions(uint256)": "ca9b21ae", + "counter()": "61bc221a", + "deposit(address,uint256)": "47e7ef24", + "getUpdateForL2()": "b1538706", + "lastProcessedUpdate_origin_l1()": "7fd4f845", + "lastProcessedUpdate_origin_l2()": "f26ee9d0", + "update_l1_from_l2(((bytes,bytes,uint256,uint256,bytes32)[],(uint256,uint8,bool)[]))": "34b03805", + "withdraw(address,uint256)": "f3fef3a3" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"depositRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"DepositAcceptedIntoQueue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"originalRequestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"cancelJustified\",\"type\":\"bool\"}],\"name\":\"DisputeResolutionAcceptedIntoQueue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"l2UpdatesToRemove\",\"type\":\"uint256[]\"}],\"name\":\"L2UpdatesToRemovedAcceptedIntoQueue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawRecipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrawAcceptedIntoQueue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"cancelHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"calculatedHash\",\"type\":\"bytes32\"}],\"name\":\"cancelAndCalculatedHash\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"cancelResolutions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"l2RequestId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"cancelJustified\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUpdateForL2\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"lastProccessedRequestOnL1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastAcceptedRequestOnL1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"enum RollDown.PendingRequestType[]\",\"name\":\"order\",\"type\":\"uint8[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"withdrawRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct RollDown.Withdraw[]\",\"name\":\"pendingWithdraws\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"depositRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct RollDown.Deposit[]\",\"name\":\"pendingDeposits\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"l2RequestId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"cancelJustified\",\"type\":\"bool\"}],\"internalType\":\"struct RollDown.CancelResolution[]\",\"name\":\"pendingCancelResultions\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"l2UpdatesToRemove\",\"type\":\"uint256[]\"}],\"internalType\":\"struct RollDown.L2UpdatesToRemove[]\",\"name\":\"pendingL2UpdatesToRemove\",\"type\":\"tuple[]\"}],\"internalType\":\"struct RollDown.L1Update\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastProcessedUpdate_origin_l1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastProcessedUpdate_origin_l2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"updater\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"canceler\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"lastProccessedRequestOnL1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastAcceptedRequestOnL1\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"internalType\":\"struct RollDown.Cancel[]\",\"name\":\"cancles\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"enum RollDown.UpdateType\",\"name\":\"updateType\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"}],\"internalType\":\"struct RollDown.RequestResult[]\",\"name\":\"results\",\"type\":\"tuple[]\"}],\"internalType\":\"struct RollDown.L2Update\",\"name\":\"inputArray\",\"type\":\"tuple\"}],\"name\":\"update_l1_from_l2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/rolldown.sol\":\"RollDown\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"src/rolldown.sol\":{\"keccak256\":\"0x586a74739acf6ce67e6f3758bdb19dac0fcbf88f6add3bab0007f3ce4b4f6734\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30b157084dab44c068b0c540c8121d7cbafa10e936d18140a8ace65e4d11b226\",\"dweb:/ipfs/QmShYNdbcVyhtBQHA8xHanVUpg6uvmSA51Uk7YvGkaPEUR\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.22+commit.4fc1097e" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "address", + "name": "depositRecipient", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "DepositAcceptedIntoQueue", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "originalRequestId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "bool", + "name": "cancelJustified", + "type": "bool", + "indexed": false + } + ], + "type": "event", + "name": "DisputeResolutionAcceptedIntoQueue", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "withdrawRecipient", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "FundsWithdrawn", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256[]", + "name": "l2UpdatesToRemove", + "type": "uint256[]", + "indexed": false + } + ], + "type": "event", + "name": "L2UpdatesToRemovedAcceptedIntoQueue", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "address", + "name": "withdrawRecipient", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "WithdrawAcceptedIntoQueue", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "cancelHash", + "type": "bytes32", + "indexed": false + }, + { + "internalType": "bytes32", + "name": "calculatedHash", + "type": "bytes32", + "indexed": false + } + ], + "type": "event", + "name": "cancelAndCalculatedHash", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "cancelResolutions", + "outputs": [ + { + "internalType": "uint256", + "name": "l2RequestId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "cancelJustified", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "deposit" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "getUpdateForL2", + "outputs": [ + { + "internalType": "struct RollDown.L1Update", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "lastProccessedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastAcceptedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "offset", + "type": "uint256" + }, + { + "internalType": "enum RollDown.PendingRequestType[]", + "name": "order", + "type": "uint8[]" + }, + { + "internalType": "struct RollDown.Withdraw[]", + "name": "pendingWithdraws", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "withdrawRecipient", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "struct RollDown.Deposit[]", + "name": "pendingDeposits", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "depositRecipient", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ] + }, + { + "internalType": "struct RollDown.CancelResolution[]", + "name": "pendingCancelResultions", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "l2RequestId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "cancelJustified", + "type": "bool" + } + ] + }, + { + "internalType": "struct RollDown.L2UpdatesToRemove[]", + "name": "pendingL2UpdatesToRemove", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256[]", + "name": "l2UpdatesToRemove", + "type": "uint256[]" + } + ] + } + ] + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "lastProcessedUpdate_origin_l1", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "lastProcessedUpdate_origin_l2", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "struct RollDown.L2Update", + "name": "inputArray", + "type": "tuple", + "components": [ + { + "internalType": "struct RollDown.Cancel[]", + "name": "cancles", + "type": "tuple[]", + "components": [ + { + "internalType": "bytes", + "name": "updater", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "canceler", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "lastProccessedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastAcceptedRequestOnL1", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "hash", + "type": "bytes32" + } + ] + }, + { + "internalType": "struct RollDown.RequestResult[]", + "name": "results", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "enum RollDown.UpdateType", + "name": "updateType", + "type": "uint8" + }, + { + "internalType": "bool", + "name": "status", + "type": "bool" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "update_l1_from_l2" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "withdraw" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", + "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", + "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + "forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/rolldown.sol": "RollDown" + }, + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { + "keccak256": "0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70", + "urls": [ + "bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c", + "dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792", + "urls": [ + "bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453", + "dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d", + "urls": [ + "bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875", + "dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { + "keccak256": "0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72", + "urls": [ + "bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc", + "dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT" + ], + "license": "MIT" + }, + "src/rolldown.sol": { + "keccak256": "0x586a74739acf6ce67e6f3758bdb19dac0fcbf88f6add3bab0007f3ce4b4f6734", + "urls": [ + "bzz-raw://30b157084dab44c068b0c540c8121d7cbafa10e936d18140a8ace65e4d11b226", + "dweb:/ipfs/QmShYNdbcVyhtBQHA8xHanVUpg6uvmSA51Uk7YvGkaPEUR" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/rolldown.sol", + "id": 28858, + "exportedSymbols": { + "IERC20": [ + 729 + ], + "Math": [ + 2094 + ], + "RollDown": [ + 28857 + ], + "SignedMath": [ + 2199 + ], + "Strings": [ + 1040 + ] + }, + "nodeType": "SourceUnit", + "src": "32:12325:24", + "nodes": [ + { + "id": 27811, + "nodeType": "PragmaDirective", + "src": "32:23:24", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ] + }, + { + "id": 27812, + "nodeType": "ImportDirective", + "src": "84:56:24", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", + "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "nameLocation": "-1:-1:-1", + "scope": 28858, + "sourceUnit": 730, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 27813, + "nodeType": "ImportDirective", + "src": "141:51:24", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "file": "@openzeppelin/contracts/utils/Strings.sol", + "nameLocation": "-1:-1:-1", + "scope": 28858, + "sourceUnit": 1041, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 28857, + "nodeType": "ContractDefinition", + "src": "194:12162:24", + "nodes": [ + { + "id": 27815, + "nodeType": "VariableDeclaration", + "src": "228:13:24", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "owner", + "nameLocation": "236:5:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27814, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "228:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "id": 27817, + "nodeType": "VariableDeclaration", + "src": "279:22:24", + "nodes": [], + "constant": false, + "functionSelector": "61bc221a", + "mutability": "mutable", + "name": "counter", + "nameLocation": "294:7:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "279:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 27819, + "nodeType": "VariableDeclaration", + "src": "404:44:24", + "nodes": [], + "constant": false, + "functionSelector": "7fd4f845", + "mutability": "mutable", + "name": "lastProcessedUpdate_origin_l1", + "nameLocation": "419:29:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "404:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 27821, + "nodeType": "VariableDeclaration", + "src": "567:44:24", + "nodes": [], + "constant": false, + "functionSelector": "f26ee9d0", + "mutability": "mutable", + "name": "lastProcessedUpdate_origin_l2", + "nameLocation": "582:29:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "567:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 27831, + "nodeType": "EventDefinition", + "src": "619:152:24", + "nodes": [], + "anonymous": false, + "eventSelector": "e28491c2da97a9923c92f6590a040dfc143fe636e8545356cdab0a796e1acefa", + "name": "DepositAcceptedIntoQueue", + "nameLocation": "625:24:24", + "parameters": { + "id": 27830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27823, + "indexed": false, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "667:9:24", + "nodeType": "VariableDeclaration", + "scope": 27831, + "src": "659:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "659:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27825, + "indexed": false, + "mutability": "mutable", + "name": "depositRecipient", + "nameLocation": "694:16:24", + "nodeType": "VariableDeclaration", + "scope": 27831, + "src": "686:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27824, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "686:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27827, + "indexed": false, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "728:12:24", + "nodeType": "VariableDeclaration", + "scope": 27831, + "src": "720:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27826, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "720:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27829, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "758:6:24", + "nodeType": "VariableDeclaration", + "scope": 27831, + "src": "750:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "750:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "649:121:24" + } + }, + { + "id": 27841, + "nodeType": "EventDefinition", + "src": "776:154:24", + "nodes": [], + "anonymous": false, + "eventSelector": "c764405a2acf44bf91c070359a13daa334e14c5a24f6f78b82e5b94d4863b0df", + "name": "WithdrawAcceptedIntoQueue", + "nameLocation": "782:25:24", + "parameters": { + "id": 27840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27833, + "indexed": false, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "825:9:24", + "nodeType": "VariableDeclaration", + "scope": 27841, + "src": "817:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "817:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27835, + "indexed": false, + "mutability": "mutable", + "name": "withdrawRecipient", + "nameLocation": "852:17:24", + "nodeType": "VariableDeclaration", + "scope": 27841, + "src": "844:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27834, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "844:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27837, + "indexed": false, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "887:12:24", + "nodeType": "VariableDeclaration", + "scope": 27841, + "src": "879:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "879:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27839, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "917:6:24", + "nodeType": "VariableDeclaration", + "scope": 27841, + "src": "909:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27838, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "909:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "807:122:24" + } + }, + { + "id": 27849, + "nodeType": "EventDefinition", + "src": "935:139:24", + "nodes": [], + "anonymous": false, + "eventSelector": "66ad31c31fbcf76dec66f20ea9044aac0527e86cc12ac4c3eafdd02187ed0991", + "name": "DisputeResolutionAcceptedIntoQueue", + "nameLocation": "941:34:24", + "parameters": { + "id": 27848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27843, + "indexed": false, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "993:9:24", + "nodeType": "VariableDeclaration", + "scope": 27849, + "src": "985:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "985:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27845, + "indexed": false, + "mutability": "mutable", + "name": "originalRequestId", + "nameLocation": "1020:17:24", + "nodeType": "VariableDeclaration", + "scope": 27849, + "src": "1012:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27844, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1012:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27847, + "indexed": false, + "mutability": "mutable", + "name": "cancelJustified", + "nameLocation": "1052:15:24", + "nodeType": "VariableDeclaration", + "scope": 27849, + "src": "1047:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 27846, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1047:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "975:98:24" + } + }, + { + "id": 27856, + "nodeType": "EventDefinition", + "src": "1079:90:24", + "nodes": [], + "anonymous": false, + "eventSelector": "09b30365986269e3939307e7ca7b7b7421a8ad08ef18bb766c668d27cbc2aef9", + "name": "L2UpdatesToRemovedAcceptedIntoQueue", + "nameLocation": "1085:35:24", + "parameters": { + "id": 27855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27851, + "indexed": false, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "1129:9:24", + "nodeType": "VariableDeclaration", + "scope": 27856, + "src": "1121:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1121:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27854, + "indexed": false, + "mutability": "mutable", + "name": "l2UpdatesToRemove", + "nameLocation": "1150:17:24", + "nodeType": "VariableDeclaration", + "scope": 27856, + "src": "1140:27:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 27852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1140:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27853, + "nodeType": "ArrayTypeName", + "src": "1140:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "1120:48:24" + } + }, + { + "id": 27864, + "nodeType": "EventDefinition", + "src": "1174:116:24", + "nodes": [], + "anonymous": false, + "eventSelector": "a92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8a", + "name": "FundsWithdrawn", + "nameLocation": "1180:14:24", + "parameters": { + "id": 27863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27858, + "indexed": false, + "mutability": "mutable", + "name": "withdrawRecipient", + "nameLocation": "1212:17:24", + "nodeType": "VariableDeclaration", + "scope": 27864, + "src": "1204:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1204:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27860, + "indexed": false, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "1247:12:24", + "nodeType": "VariableDeclaration", + "scope": 27864, + "src": "1239:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27859, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1239:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27862, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1277:6:24", + "nodeType": "VariableDeclaration", + "scope": 27864, + "src": "1269:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1269:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1194:95:24" + } + }, + { + "id": 27870, + "nodeType": "EventDefinition", + "src": "1295:74:24", + "nodes": [], + "anonymous": false, + "eventSelector": "7ed2b11bb98bfba340e605f275f4b45bd24f5fc23ac3cd7f9f6100cd1b2d7b1a", + "name": "cancelAndCalculatedHash", + "nameLocation": "1301:23:24", + "parameters": { + "id": 27869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27866, + "indexed": false, + "mutability": "mutable", + "name": "cancelHash", + "nameLocation": "1333:10:24", + "nodeType": "VariableDeclaration", + "scope": 27870, + "src": "1325:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 27865, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1325:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27868, + "indexed": false, + "mutability": "mutable", + "name": "calculatedHash", + "nameLocation": "1353:14:24", + "nodeType": "VariableDeclaration", + "scope": 27870, + "src": "1345:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 27867, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1345:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1324:44:24" + } + }, + { + "id": 27877, + "nodeType": "StructDefinition", + "src": "1419:110:24", + "nodes": [], + "canonicalName": "RollDown.Deposit", + "members": [ + { + "constant": false, + "id": 27872, + "mutability": "mutable", + "name": "depositRecipient", + "nameLocation": "1452:16:24", + "nodeType": "VariableDeclaration", + "scope": 27877, + "src": "1444:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27871, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1444:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27874, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "1486:12:24", + "nodeType": "VariableDeclaration", + "scope": 27877, + "src": "1478:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27873, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1478:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27876, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1516:6:24", + "nodeType": "VariableDeclaration", + "scope": 27877, + "src": "1508:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27875, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1508:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Deposit", + "nameLocation": "1426:7:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27885, + "nodeType": "StructDefinition", + "src": "1570:112:24", + "nodes": [], + "canonicalName": "RollDown.Withdraw", + "documentation": { + "id": 27878, + "nodeType": "StructuredDocumentation", + "src": "1535:30:24", + "text": "PENING REQUESTS TYPES (L1)" + }, + "members": [ + { + "constant": false, + "id": 27880, + "mutability": "mutable", + "name": "withdrawRecipient", + "nameLocation": "1604:17:24", + "nodeType": "VariableDeclaration", + "scope": 27885, + "src": "1596:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27879, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1596:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27882, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "1639:12:24", + "nodeType": "VariableDeclaration", + "scope": 27885, + "src": "1631:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27881, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1631:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27884, + "mutability": "mutable", + "name": "amount", + "nameLocation": "1669:6:24", + "nodeType": "VariableDeclaration", + "scope": 27885, + "src": "1661:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1661:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Withdraw", + "nameLocation": "1577:8:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27889, + "nodeType": "StructDefinition", + "src": "1688:69:24", + "nodes": [], + "canonicalName": "RollDown.L2UpdatesToRemove", + "members": [ + { + "constant": false, + "id": 27888, + "mutability": "mutable", + "name": "l2UpdatesToRemove", + "nameLocation": "1733:17:24", + "nodeType": "VariableDeclaration", + "scope": 27889, + "src": "1723:27:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 27886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1723:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27887, + "nodeType": "ArrayTypeName", + "src": "1723:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "name": "L2UpdatesToRemove", + "nameLocation": "1695:17:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27894, + "nodeType": "StructDefinition", + "src": "1763:90:24", + "nodes": [], + "canonicalName": "RollDown.CancelResolution", + "members": [ + { + "constant": false, + "id": 27891, + "mutability": "mutable", + "name": "l2RequestId", + "nameLocation": "1805:11:24", + "nodeType": "VariableDeclaration", + "scope": 27894, + "src": "1797:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27890, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1797:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27893, + "mutability": "mutable", + "name": "cancelJustified", + "nameLocation": "1831:15:24", + "nodeType": "VariableDeclaration", + "scope": 27894, + "src": "1826:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 27892, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1826:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "CancelResolution", + "nameLocation": "1770:16:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27899, + "nodeType": "EnumDefinition", + "src": "1859:86:24", + "nodes": [], + "canonicalName": "RollDown.PendingRequestType", + "members": [ + { + "id": 27895, + "name": "DEPOSIT", + "nameLocation": "1884:7:24", + "nodeType": "EnumValue", + "src": "1884:7:24" + }, + { + "id": 27896, + "name": "WITHDRAWAL", + "nameLocation": "1893:10:24", + "nodeType": "EnumValue", + "src": "1893:10:24" + }, + { + "id": 27897, + "name": "CANCEL_RESOLUTION", + "nameLocation": "1905:17:24", + "nodeType": "EnumValue", + "src": "1905:17:24" + }, + { + "id": 27898, + "name": "L2_UPDATES_TO_REMOVE", + "nameLocation": "1924:20:24", + "nodeType": "EnumValue", + "src": "1924:20:24" + } + ], + "name": "PendingRequestType", + "nameLocation": "1864:18:24" + }, + { + "id": 27926, + "nodeType": "StructDefinition", + "src": "1951:305:24", + "nodes": [], + "canonicalName": "RollDown.L1Update", + "members": [ + { + "constant": false, + "id": 27901, + "mutability": "mutable", + "name": "lastProccessedRequestOnL1", + "nameLocation": "1980:25:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "1972:33:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27900, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1972:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27903, + "mutability": "mutable", + "name": "lastAcceptedRequestOnL1", + "nameLocation": "2018:23:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2010:31:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2010:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27905, + "mutability": "mutable", + "name": "offset", + "nameLocation": "2054:6:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2046:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2046:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27909, + "mutability": "mutable", + "name": "order", + "nameLocation": "2086:5:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2065:26:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_storage_ptr", + "typeString": "enum RollDown.PendingRequestType[]" + }, + "typeName": { + "baseType": { + "id": 27907, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27906, + "name": "PendingRequestType", + "nameLocations": [ + "2065:18:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27899, + "src": "2065:18:24" + }, + "referencedDeclaration": 27899, + "src": "2065:18:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "id": 27908, + "nodeType": "ArrayTypeName", + "src": "2065:20:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_storage_ptr", + "typeString": "enum RollDown.PendingRequestType[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27913, + "mutability": "mutable", + "name": "pendingWithdraws", + "nameLocation": "2107:16:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2096:27:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Withdraw[]" + }, + "typeName": { + "baseType": { + "id": 27911, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27910, + "name": "Withdraw", + "nameLocations": [ + "2096:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27885, + "src": "2096:8:24" + }, + "referencedDeclaration": 27885, + "src": "2096:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage_ptr", + "typeString": "struct RollDown.Withdraw" + } + }, + "id": 27912, + "nodeType": "ArrayTypeName", + "src": "2096:10:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Withdraw[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27917, + "mutability": "mutable", + "name": "pendingDeposits", + "nameLocation": "2138:15:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2128:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Deposit[]" + }, + "typeName": { + "baseType": { + "id": 27915, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27914, + "name": "Deposit", + "nameLocations": [ + "2128:7:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27877, + "src": "2128:7:24" + }, + "referencedDeclaration": 27877, + "src": "2128:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage_ptr", + "typeString": "struct RollDown.Deposit" + } + }, + "id": 27916, + "nodeType": "ArrayTypeName", + "src": "2128:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Deposit[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27921, + "mutability": "mutable", + "name": "pendingCancelResultions", + "nameLocation": "2177:23:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2158:42:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.CancelResolution[]" + }, + "typeName": { + "baseType": { + "id": 27919, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27918, + "name": "CancelResolution", + "nameLocations": [ + "2158:16:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27894, + "src": "2158:16:24" + }, + "referencedDeclaration": 27894, + "src": "2158:16:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage_ptr", + "typeString": "struct RollDown.CancelResolution" + } + }, + "id": 27920, + "nodeType": "ArrayTypeName", + "src": "2158:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.CancelResolution[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27925, + "mutability": "mutable", + "name": "pendingL2UpdatesToRemove", + "nameLocation": "2225:24:24", + "nodeType": "VariableDeclaration", + "scope": 27926, + "src": "2205:44:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove[]" + }, + "typeName": { + "baseType": { + "id": 27923, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27922, + "name": "L2UpdatesToRemove", + "nameLocations": [ + "2205:17:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27889, + "src": "2205:17:24" + }, + "referencedDeclaration": 27889, + "src": "2205:17:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove" + } + }, + "id": 27924, + "nodeType": "ArrayTypeName", + "src": "2205:19:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove[]" + } + }, + "visibility": "internal" + } + ], + "name": "L1Update", + "nameLocation": "1958:8:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27931, + "nodeType": "VariableDeclaration", + "src": "2262:61:24", + "nodes": [], + "constant": false, + "functionSelector": "ca9b21ae", + "mutability": "mutable", + "name": "cancelResolutions", + "nameLocation": "2306:17:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CancelResolution_$27894_storage_$", + "typeString": "mapping(uint256 => struct RollDown.CancelResolution)" + }, + "typeName": { + "id": 27930, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 27927, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2270:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2262:36:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CancelResolution_$27894_storage_$", + "typeString": "mapping(uint256 => struct RollDown.CancelResolution)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 27929, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27928, + "name": "CancelResolution", + "nameLocations": [ + "2281:16:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27894, + "src": "2281:16:24" + }, + "referencedDeclaration": 27894, + "src": "2281:16:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage_ptr", + "typeString": "struct RollDown.CancelResolution" + } + } + }, + "visibility": "public" + }, + { + "id": 27936, + "nodeType": "VariableDeclaration", + "src": "2329:44:24", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "deposits", + "nameLocation": "2365:8:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Deposit_$27877_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Deposit)" + }, + "typeName": { + "id": 27935, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 27932, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2337:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2329:27:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Deposit_$27877_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Deposit)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 27934, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27933, + "name": "Deposit", + "nameLocations": [ + "2348:7:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27877, + "src": "2348:7:24" + }, + "referencedDeclaration": 27877, + "src": "2348:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage_ptr", + "typeString": "struct RollDown.Deposit" + } + } + }, + "visibility": "private" + }, + { + "id": 27941, + "nodeType": "VariableDeclaration", + "src": "2379:46:24", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "withdraws", + "nameLocation": "2416:9:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw)" + }, + "typeName": { + "id": 27940, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 27937, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2387:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2379:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 27939, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27938, + "name": "Withdraw", + "nameLocations": [ + "2398:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27885, + "src": "2398:8:24" + }, + "referencedDeclaration": 27885, + "src": "2398:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage_ptr", + "typeString": "struct RollDown.Withdraw" + } + } + }, + "visibility": "private" + }, + { + "id": 27946, + "nodeType": "VariableDeclaration", + "src": "2431:63:24", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "l2UpdatesToRemove", + "nameLocation": "2477:17:24", + "scope": 28857, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove)" + }, + "typeName": { + "id": 27945, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 27942, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2439:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2431:37:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 27944, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27943, + "name": "L2UpdatesToRemove", + "nameLocations": [ + "2450:17:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27889, + "src": "2450:17:24" + }, + "referencedDeclaration": 27889, + "src": "2450:17:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove" + } + } + }, + "visibility": "private" + }, + { + "id": 27952, + "nodeType": "EnumDefinition", + "src": "2536:70:24", + "nodes": [], + "canonicalName": "RollDown.UpdateType", + "documentation": { + "id": 27947, + "nodeType": "StructuredDocumentation", + "src": "2500:31:24", + "text": "PENING REQUESTS TYPES (L1)" + }, + "members": [ + { + "id": 27948, + "name": "DEPOSIT", + "nameLocation": "2553:7:24", + "nodeType": "EnumValue", + "src": "2553:7:24" + }, + { + "id": 27949, + "name": "WITHDRAWAL", + "nameLocation": "2562:10:24", + "nodeType": "EnumValue", + "src": "2562:10:24" + }, + { + "id": 27950, + "name": "INDEX_UPDATE", + "nameLocation": "2574:12:24", + "nodeType": "EnumValue", + "src": "2574:12:24" + }, + { + "id": 27951, + "name": "CANCEL_RESOLUTION", + "nameLocation": "2588:17:24", + "nodeType": "EnumValue", + "src": "2588:17:24" + } + ], + "name": "UpdateType", + "nameLocation": "2541:10:24" + }, + { + "id": 27960, + "nodeType": "StructDefinition", + "src": "2610:93:24", + "nodes": [], + "canonicalName": "RollDown.RequestResult", + "members": [ + { + "constant": false, + "id": 27954, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "2644:9:24", + "nodeType": "VariableDeclaration", + "scope": 27960, + "src": "2636:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2636:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27957, + "mutability": "mutable", + "name": "updateType", + "nameLocation": "2672:10:24", + "nodeType": "VariableDeclaration", + "scope": 27960, + "src": "2661:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + }, + "typeName": { + "id": 27956, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27955, + "name": "UpdateType", + "nameLocations": [ + "2661:10:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27952, + "src": "2661:10:24" + }, + "referencedDeclaration": 27952, + "src": "2661:10:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27959, + "mutability": "mutable", + "name": "status", + "nameLocation": "2692:6:24", + "nodeType": "VariableDeclaration", + "scope": 27960, + "src": "2687:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 27958, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2687:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "RequestResult", + "nameLocation": "2617:13:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27969, + "nodeType": "StructDefinition", + "src": "2707:70:24", + "nodes": [], + "canonicalName": "RollDown.L2Update", + "members": [ + { + "constant": false, + "id": 27964, + "mutability": "mutable", + "name": "cancles", + "nameLocation": "2737:7:24", + "nodeType": "VariableDeclaration", + "scope": 27969, + "src": "2728:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Cancel_$27980_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Cancel[]" + }, + "typeName": { + "baseType": { + "id": 27962, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27961, + "name": "Cancel", + "nameLocations": [ + "2728:6:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27980, + "src": "2728:6:24" + }, + "referencedDeclaration": 27980, + "src": "2728:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Cancel_$27980_storage_ptr", + "typeString": "struct RollDown.Cancel" + } + }, + "id": 27963, + "nodeType": "ArrayTypeName", + "src": "2728:8:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Cancel_$27980_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Cancel[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27968, + "mutability": "mutable", + "name": "results", + "nameLocation": "2765:7:24", + "nodeType": "VariableDeclaration", + "scope": 27969, + "src": "2749:23:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.RequestResult[]" + }, + "typeName": { + "baseType": { + "id": 27966, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 27965, + "name": "RequestResult", + "nameLocations": [ + "2749:13:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27960, + "src": "2749:13:24" + }, + "referencedDeclaration": 27960, + "src": "2749:13:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_storage_ptr", + "typeString": "struct RollDown.RequestResult" + } + }, + "id": 27967, + "nodeType": "ArrayTypeName", + "src": "2749:15:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.RequestResult[]" + } + }, + "visibility": "internal" + } + ], + "name": "L2Update", + "nameLocation": "2714:8:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 27980, + "nodeType": "StructDefinition", + "src": "2781:147:24", + "nodes": [], + "canonicalName": "RollDown.Cancel", + "members": [ + { + "constant": false, + "id": 27971, + "mutability": "mutable", + "name": "updater", + "nameLocation": "2806:7:24", + "nodeType": "VariableDeclaration", + "scope": 27980, + "src": "2800:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 27970, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2800:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27973, + "mutability": "mutable", + "name": "canceler", + "nameLocation": "2824:8:24", + "nodeType": "VariableDeclaration", + "scope": 27980, + "src": "2818:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 27972, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2818:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27975, + "mutability": "mutable", + "name": "lastProccessedRequestOnL1", + "nameLocation": "2845:25:24", + "nodeType": "VariableDeclaration", + "scope": 27980, + "src": "2837:33:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27974, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2837:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27977, + "mutability": "mutable", + "name": "lastAcceptedRequestOnL1", + "nameLocation": "2883:23:24", + "nodeType": "VariableDeclaration", + "scope": 27980, + "src": "2875:31:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27976, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2875:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27979, + "mutability": "mutable", + "name": "hash", + "nameLocation": "2919:4:24", + "nodeType": "VariableDeclaration", + "scope": 27980, + "src": "2911:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 27978, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2911:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "Cancel", + "nameLocation": "2788:6:24", + "scope": 28857, + "visibility": "public" + }, + { + "id": 28001, + "nodeType": "FunctionDefinition", + "src": "2936:156:24", + "nodes": [], + "body": { + "id": 28000, + "nodeType": "Block", + "src": "2950:142:24", + "nodes": [], + "statements": [ + { + "expression": { + "id": 27985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27983, + "name": "lastProcessedUpdate_origin_l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27819, + "src": "2960:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 27984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2992:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2960:33:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27986, + "nodeType": "ExpressionStatement", + "src": "2960:33:24" + }, + { + "expression": { + "id": 27989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27987, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "3003:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 27988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3013:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3003:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27990, + "nodeType": "ExpressionStatement", + "src": "3003:11:24" + }, + { + "expression": { + "id": 27993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27991, + "name": "lastProcessedUpdate_origin_l2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27821, + "src": "3024:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 27992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3056:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3024:33:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27994, + "nodeType": "ExpressionStatement", + "src": "3024:33:24" + }, + { + "expression": { + "id": 27998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27995, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27815, + "src": "3067:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 27996, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3075:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3079:6:24", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3075:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3067:18:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27999, + "nodeType": "ExpressionStatement", + "src": "3067:18:24" + } + ] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 27981, + "nodeType": "ParameterList", + "parameters": [], + "src": "2947:2:24" + }, + "returnParameters": { + "id": 27982, + "nodeType": "ParameterList", + "parameters": [], + "src": "2950:0:24" + }, + "scope": 28857, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 28074, + "nodeType": "FunctionDefinition", + "src": "3098:875:24", + "nodes": [], + "body": { + "id": 28073, + "nodeType": "Block", + "src": "3160:813:24", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28009, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28003, + "src": "3178:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3202:1:24", + "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": 28011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3194:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28010, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3194:7:24", + "typeDescriptions": {} + } + }, + "id": 28013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3194:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3178:26:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e76616c696420746f6b656e2061646472657373", + "id": 28015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3206:23:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d34df3e6e5f402d3417b1a16a0a8a7541b184d7fb338e177a15236f4037e3743", + "typeString": "literal_string \"Invalid token address\"" + }, + "value": "Invalid token address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d34df3e6e5f402d3417b1a16a0a8a7541b184d7fb338e177a15236f4037e3743", + "typeString": "literal_string \"Invalid token address\"" + } + ], + "id": 28008, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3170:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3170:60:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28017, + "nodeType": "ExpressionStatement", + "src": "3170:60:24" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28019, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28005, + "src": "3248:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3257:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3248:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416d6f756e74206d7573742062652067726561746572207468616e207a65726f", + "id": 28022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3260:34:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_335ff2e4b249975444723ab3dc1716db90a7dff95cbce35a34ad25055762f887", + "typeString": "literal_string \"Amount must be greater than zero\"" + }, + "value": "Amount must be greater than zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_335ff2e4b249975444723ab3dc1716db90a7dff95cbce35a34ad25055762f887", + "typeString": "literal_string \"Amount must be greater than zero\"" + } + ], + "id": 28018, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3240:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3240:55:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28024, + "nodeType": "ExpressionStatement", + "src": "3240:55:24" + }, + { + "assignments": [ + 28026 + ], + "declarations": [ + { + "constant": false, + "id": 28026, + "mutability": "mutable", + "name": "depositRecipient", + "nameLocation": "3313:16:24", + "nodeType": "VariableDeclaration", + "scope": 28073, + "src": "3305:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3305:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 28029, + "initialValue": { + "expression": { + "id": 28027, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3332:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 28028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3336:6:24", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3332:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3305:37:24" + }, + { + "assignments": [ + 28032 + ], + "declarations": [ + { + "constant": false, + "id": 28032, + "mutability": "mutable", + "name": "token", + "nameLocation": "3360:5:24", + "nodeType": "VariableDeclaration", + "scope": 28073, + "src": "3353:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 28031, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28030, + "name": "IERC20", + "nameLocations": [ + "3353:6:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "3353:6:24" + }, + "referencedDeclaration": 729, + "src": "3353:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "id": 28036, + "initialValue": { + "arguments": [ + { + "id": 28034, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28003, + "src": "3375:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 28033, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3368:6:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 28035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3368:20:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3353:35:24" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 28040, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3534:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 28041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3538:6:24", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3534:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28042, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28003, + "src": "3546:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28043, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28005, + "src": "3560:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 28038, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28032, + "src": "3515:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 28039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3521:12:24", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 728, + "src": "3515:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 28044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3515:52:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "546f6b656e207472616e73666572206661696c6564", + "id": 28045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3581:23:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4", + "typeString": "literal_string \"Token transfer failed\"" + }, + "value": "Token transfer failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_74c7d57a908ebeca4ca501d4682067d5006fafb2a418959e98aa45be0419cba4", + "typeString": "literal_string \"Token transfer failed\"" + } + ], + "id": 28037, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3494:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3494:120:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28047, + "nodeType": "ExpressionStatement", + "src": "3494:120:24" + }, + { + "assignments": [ + 28050 + ], + "declarations": [ + { + "constant": false, + "id": 28050, + "mutability": "mutable", + "name": "newDeposit", + "nameLocation": "3640:10:24", + "nodeType": "VariableDeclaration", + "scope": 28073, + "src": "3625:25:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_memory_ptr", + "typeString": "struct RollDown.Deposit" + }, + "typeName": { + "id": 28049, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28048, + "name": "Deposit", + "nameLocations": [ + "3625:7:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27877, + "src": "3625:7:24" + }, + "referencedDeclaration": 27877, + "src": "3625:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage_ptr", + "typeString": "struct RollDown.Deposit" + } + }, + "visibility": "internal" + } + ], + "id": 28056, + "initialValue": { + "arguments": [ + { + "id": 28052, + "name": "depositRecipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28026, + "src": "3693:16:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28053, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28003, + "src": "3737:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28054, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28005, + "src": "3771:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28051, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27877, + "src": "3653:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Deposit_$27877_storage_ptr_$", + "typeString": "type(struct RollDown.Deposit storage pointer)" + } + }, + "id": 28055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "3675:16:24", + "3723:12:24", + "3763:6:24" + ], + "names": [ + "depositRecipient", + "tokenAddress", + "amount" + ], + "nodeType": "FunctionCall", + "src": "3653:135:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_memory_ptr", + "typeString": "struct RollDown.Deposit memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3625:163:24" + }, + { + "expression": { + "id": 28062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28057, + "name": "deposits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27936, + "src": "3844:8:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Deposit_$27877_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Deposit storage ref)" + } + }, + "id": 28060, + "indexExpression": { + "id": 28059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3853:9:24", + "subExpression": { + "id": 28058, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "3853:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3844:19:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage", + "typeString": "struct RollDown.Deposit storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28061, + "name": "newDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28050, + "src": "3866:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_memory_ptr", + "typeString": "struct RollDown.Deposit memory" + } + }, + "src": "3844:32:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage", + "typeString": "struct RollDown.Deposit storage ref" + } + }, + "id": 28063, + "nodeType": "ExpressionStatement", + "src": "3844:32:24" + }, + { + "eventCall": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28065, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "3916:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 28066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3924:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3916:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28068, + "name": "depositRecipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28026, + "src": "3927:16:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28069, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28003, + "src": "3945:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28070, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28005, + "src": "3959:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28064, + "name": "DepositAcceptedIntoQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27831, + "src": "3891:24:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address,address,uint256)" + } + }, + "id": 28071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3891:75:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28072, + "nodeType": "EmitStatement", + "src": "3886:80:24" + } + ] + }, + "functionSelector": "47e7ef24", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "3107:7:24", + "parameters": { + "id": 28006, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28003, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "3123:12:24", + "nodeType": "VariableDeclaration", + "scope": 28074, + "src": "3115:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3115:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28005, + "mutability": "mutable", + "name": "amount", + "nameLocation": "3145:6:24", + "nodeType": "VariableDeclaration", + "scope": 28074, + "src": "3137:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28004, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3137:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3114:38:24" + }, + "returnParameters": { + "id": 28007, + "nodeType": "ParameterList", + "parameters": [], + "src": "3160:0:24" + }, + "scope": 28857, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 28129, + "nodeType": "FunctionDefinition", + "src": "3979:616:24", + "nodes": [], + "body": { + "id": 28128, + "nodeType": "Block", + "src": "4042:553:24", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28082, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28076, + "src": "4060:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4084:1:24", + "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": 28084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4076:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4076:7:24", + "typeDescriptions": {} + } + }, + "id": 28086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4076:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4060:26:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e76616c696420746f6b656e2061646472657373", + "id": 28088, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4088:23:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d34df3e6e5f402d3417b1a16a0a8a7541b184d7fb338e177a15236f4037e3743", + "typeString": "literal_string \"Invalid token address\"" + }, + "value": "Invalid token address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d34df3e6e5f402d3417b1a16a0a8a7541b184d7fb338e177a15236f4037e3743", + "typeString": "literal_string \"Invalid token address\"" + } + ], + "id": 28081, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4052:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4052:60:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28090, + "nodeType": "ExpressionStatement", + "src": "4052:60:24" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28092, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28078, + "src": "4130:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4139:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4130:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416d6f756e74206d7573742062652067726561746572207468616e207a65726f", + "id": 28095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4142:34:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_335ff2e4b249975444723ab3dc1716db90a7dff95cbce35a34ad25055762f887", + "typeString": "literal_string \"Amount must be greater than zero\"" + }, + "value": "Amount must be greater than zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_335ff2e4b249975444723ab3dc1716db90a7dff95cbce35a34ad25055762f887", + "typeString": "literal_string \"Amount must be greater than zero\"" + } + ], + "id": 28091, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4122:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4122:55:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28097, + "nodeType": "ExpressionStatement", + "src": "4122:55:24" + }, + { + "assignments": [ + 28099 + ], + "declarations": [ + { + "constant": false, + "id": 28099, + "mutability": "mutable", + "name": "withdrawRecipient", + "nameLocation": "4195:17:24", + "nodeType": "VariableDeclaration", + "scope": 28128, + "src": "4187:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28098, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4187:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 28102, + "initialValue": { + "expression": { + "id": 28100, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4215:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 28101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4219:6:24", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4215:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4187:38:24" + }, + { + "assignments": [ + 28105 + ], + "declarations": [ + { + "constant": false, + "id": 28105, + "mutability": "mutable", + "name": "newWithdraw", + "nameLocation": "4252:11:24", + "nodeType": "VariableDeclaration", + "scope": 28128, + "src": "4236:27:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw" + }, + "typeName": { + "id": 28104, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28103, + "name": "Withdraw", + "nameLocations": [ + "4236:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27885, + "src": "4236:8:24" + }, + "referencedDeclaration": 27885, + "src": "4236:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage_ptr", + "typeString": "struct RollDown.Withdraw" + } + }, + "visibility": "internal" + } + ], + "id": 28111, + "initialValue": { + "arguments": [ + { + "id": 28107, + "name": "withdrawRecipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28099, + "src": "4308:17:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28108, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28076, + "src": "4353:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28109, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28078, + "src": "4387:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28106, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27885, + "src": "4266:8:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Withdraw_$27885_storage_ptr_$", + "typeString": "type(struct RollDown.Withdraw storage pointer)" + } + }, + "id": 28110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "4289:17:24", + "4339:12:24", + "4379:6:24" + ], + "names": [ + "withdrawRecipient", + "tokenAddress", + "amount" + ], + "nodeType": "FunctionCall", + "src": "4266:138:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4236:168:24" + }, + { + "expression": { + "id": 28117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28112, + "name": "withdraws", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27941, + "src": "4462:9:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw storage ref)" + } + }, + "id": 28115, + "indexExpression": { + "id": 28114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4472:9:24", + "subExpression": { + "id": 28113, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "4472:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4462:20:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage", + "typeString": "struct RollDown.Withdraw storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28116, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28105, + "src": "4485:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "src": "4462:34:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage", + "typeString": "struct RollDown.Withdraw storage ref" + } + }, + "id": 28118, + "nodeType": "ExpressionStatement", + "src": "4462:34:24" + }, + { + "eventCall": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28120, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "4537:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 28121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4545:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4537:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28123, + "name": "withdrawRecipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28099, + "src": "4548:17:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28124, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28076, + "src": "4567:12:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 28125, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28078, + "src": "4581:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28119, + "name": "WithdrawAcceptedIntoQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27841, + "src": "4511:25:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address,address,uint256)" + } + }, + "id": 28126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4511:77:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28127, + "nodeType": "EmitStatement", + "src": "4506:82:24" + } + ] + }, + "functionSelector": "f3fef3a3", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "3988:8:24", + "parameters": { + "id": 28079, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28076, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "4005:12:24", + "nodeType": "VariableDeclaration", + "scope": 28129, + "src": "3997:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 28075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3997:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28078, + "mutability": "mutable", + "name": "amount", + "nameLocation": "4027:6:24", + "nodeType": "VariableDeclaration", + "scope": 28129, + "src": "4019:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28077, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4019:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3996:38:24" + }, + "returnParameters": { + "id": 28080, + "nodeType": "ParameterList", + "parameters": [], + "src": "4042:0:24" + }, + "scope": 28857, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 28143, + "nodeType": "FunctionDefinition", + "src": "4601:148:24", + "nodes": [], + "body": { + "id": 28142, + "nodeType": "Block", + "src": "4665:84:24", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28136, + "name": "lastProcessedUpdate_origin_l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27819, + "src": "4701:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 28137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4731:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4701:31:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28139, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "4734:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28135, + "name": "getPendingRequests", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28856, + "src": "4682:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_struct$_L1Update_$27926_memory_ptr_$", + "typeString": "function (uint256,uint256) view returns (struct RollDown.L1Update memory)" + } + }, + "id": 28140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4682:60:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "functionReturnParameters": 28134, + "id": 28141, + "nodeType": "Return", + "src": "4675:67:24" + } + ] + }, + "functionSelector": "b1538706", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUpdateForL2", + "nameLocation": "4610:14:24", + "parameters": { + "id": 28130, + "nodeType": "ParameterList", + "parameters": [], + "src": "4624:2:24" + }, + "returnParameters": { + "id": 28134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28133, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28143, + "src": "4648:15:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update" + }, + "typeName": { + "id": 28132, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28131, + "name": "L1Update", + "nameLocations": [ + "4648:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27926, + "src": "4648:8:24" + }, + "referencedDeclaration": 27926, + "src": "4648:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_storage_ptr", + "typeString": "struct RollDown.L1Update" + } + }, + "visibility": "internal" + } + ], + "src": "4647:17:24" + }, + "scope": 28857, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "id": 28380, + "nodeType": "FunctionDefinition", + "src": "4755:2641:24", + "nodes": [], + "body": { + "id": 28379, + "nodeType": "Block", + "src": "4821:2575:24", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 28150, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4944:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 28151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4948:6:24", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4944:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 28152, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27815, + "src": "4958:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4944:19:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f7420746865206f776e6572", + "id": 28154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4965:15:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_72ec00def0a4f647f10f2a5c1742fab7d53364130edc365182f3ccef5864f2a5", + "typeString": "literal_string \"Not the owner\"" + }, + "value": "Not the owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_72ec00def0a4f647f10f2a5c1742fab7d53364130edc365182f3ccef5864f2a5", + "typeString": "literal_string \"Not the owner\"" + } + ], + "id": 28149, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4936:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4936:45:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28156, + "nodeType": "ExpressionStatement", + "src": "4936:45:24" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 28168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 28158, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "4999:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5010:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "4999:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5018:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4999:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "31", + "id": 28161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5028:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4999:30:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 28163, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5033:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5044:7:24", + "memberName": "cancles", + "nodeType": "MemberAccess", + "referencedDeclaration": 27964, + "src": "5033:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Cancel_$27980_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.Cancel calldata[] calldata" + } + }, + "id": 28165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5052:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5033:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "31", + "id": 28166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5062:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5033:30:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4999:64:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4172726179206d7573742068617665206174206c65617374203120757064617465", + "id": 28169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5065:35:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c76f6081997b8909fc579de678851d25c5e7e1b7980403398f4a50630baa9e33", + "typeString": "literal_string \"Array must have at least 1 update\"" + }, + "value": "Array must have at least 1 update" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c76f6081997b8909fc579de678851d25c5e7e1b7980403398f4a50630baa9e33", + "typeString": "literal_string \"Array must have at least 1 update\"" + } + ], + "id": 28157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4991:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4991:110:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28171, + "nodeType": "ExpressionStatement", + "src": "4991:110:24" + }, + { + "assignments": [ + 28173 + ], + "declarations": [ + { + "constant": false, + "id": 28173, + "mutability": "mutable", + "name": "updatesToBeRemovedCounter", + "nameLocation": "5120:25:24", + "nodeType": "VariableDeclaration", + "scope": 28379, + "src": "5112:33:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28172, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5112:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28175, + "initialValue": { + "hexValue": "30", + "id": 28174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5148:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5112:37:24" + }, + { + "assignments": [ + 28180 + ], + "declarations": [ + { + "constant": false, + "id": 28180, + "mutability": "mutable", + "name": "l2UpdatesToBeRemovedTemp", + "nameLocation": "5176:24:24", + "nodeType": "VariableDeclaration", + "scope": 28379, + "src": "5159:41:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 28178, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5159:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28179, + "nodeType": "ArrayTypeName", + "src": "5159:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 28188, + "initialValue": { + "arguments": [ + { + "expression": { + "expression": { + "id": 28184, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5230:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5241:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5230:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5249:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5230:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "5203:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 28181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5207:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28182, + "nodeType": "ArrayTypeName", + "src": "5207:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 28187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5203:62:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5159:106:24" + }, + { + "assignments": [ + 28190 + ], + "declarations": [ + { + "constant": false, + "id": 28190, + "mutability": "mutable", + "name": "oderCounter", + "nameLocation": "5284:11:24", + "nodeType": "VariableDeclaration", + "scope": 28379, + "src": "5276:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28189, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5276:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28196, + "initialValue": { + "expression": { + "baseExpression": { + "expression": { + "id": 28191, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5298:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5309:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5298:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28194, + "indexExpression": { + "hexValue": "30", + "id": 28193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5317:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5298:21:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5320:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "5298:31:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5276:53:24" + }, + { + "body": { + "id": 28232, + "nodeType": "Block", + "src": "5401:209:24", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 28209, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5419:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5430:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5419:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28212, + "indexExpression": { + "id": 28211, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28198, + "src": "5438:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5419:23:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5443:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "5419:33:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28214, + "name": "oderCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28190, + "src": "5456:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 28215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5470:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5456:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5419:52:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28223, + "nodeType": "IfStatement", + "src": "5415:124:24", + "trueBody": { + "id": 28222, + "nodeType": "Block", + "src": "5473:66:24", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "526571756573747320617265206e6f7420696e206f72646572", + "id": 28219, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5496:27:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_52f1b20d753528409636ecbd3b2e375704eaa6588062e4064becc7bda532685c", + "typeString": "literal_string \"Requests are not in order\"" + }, + "value": "Requests are not in order" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_52f1b20d753528409636ecbd3b2e375704eaa6588062e4064becc7bda532685c", + "typeString": "literal_string \"Requests are not in order\"" + } + ], + "id": 28218, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "5489:6:24", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 28220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5489:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28221, + "nodeType": "ExpressionStatement", + "src": "5489:35:24" + } + ] + } + }, + { + "expression": { + "id": 28230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28224, + "name": "oderCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28190, + "src": "5552:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 28225, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5566:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5577:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5566:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28228, + "indexExpression": { + "id": 28227, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28198, + "src": "5585:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5566:23:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5590:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "5566:33:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5552:47:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28231, + "nodeType": "ExpressionStatement", + "src": "5552:47:24" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28201, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28198, + "src": "5361:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "expression": { + "id": 28202, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5367:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5378:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5367:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5386:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5367:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5361:31:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28233, + "initializationExpression": { + "assignments": [ + 28198 + ], + "declarations": [ + { + "constant": false, + "id": 28198, + "mutability": "mutable", + "name": "idx", + "nameLocation": "5352:3:24", + "nodeType": "VariableDeclaration", + "scope": 28233, + "src": "5344:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5344:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28200, + "initialValue": { + "hexValue": "31", + "id": 28199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5358:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5344:15:24" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 28207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5394:5:24", + "subExpression": { + "id": 28206, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28198, + "src": "5394:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28208, + "nodeType": "ExpressionStatement", + "src": "5394:5:24" + }, + "nodeType": "ForStatement", + "src": "5339:271:24" + }, + { + "body": { + "id": 28321, + "nodeType": "Block", + "src": "5682:1005:24", + "statements": [ + { + "assignments": [ + 28248 + ], + "declarations": [ + { + "constant": false, + "id": 28248, + "mutability": "mutable", + "name": "element", + "nameLocation": "5719:7:24", + "nodeType": "VariableDeclaration", + "scope": 28321, + "src": "5696:30:24", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult" + }, + "typeName": { + "id": 28247, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28246, + "name": "RequestResult", + "nameLocations": [ + "5696:13:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27960, + "src": "5696:13:24" + }, + "referencedDeclaration": 27960, + "src": "5696:13:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_storage_ptr", + "typeString": "struct RollDown.RequestResult" + } + }, + "visibility": "internal" + } + ], + "id": 28253, + "initialValue": { + "baseExpression": { + "expression": { + "id": 28249, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5729:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5740:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5729:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28252, + "indexExpression": { + "id": 28251, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28235, + "src": "5748:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5729:23:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5696:56:24" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 28254, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "5771:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5779:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "5771:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 28256, + "name": "lastProcessedUpdate_origin_l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27819, + "src": "5792:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5771:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28260, + "nodeType": "IfStatement", + "src": "5767:95:24", + "trueBody": { + "id": 28259, + "nodeType": "Block", + "src": "5823:39:24", + "statements": [ + { + "id": 28258, + "nodeType": "Continue", + "src": "5839:8:24" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + }, + "id": 28265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 28261, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "5880:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5888:10:24", + "memberName": "updateType", + "nodeType": "MemberAccess", + "referencedDeclaration": 27957, + "src": "5880:18:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 28263, + "name": "UpdateType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27952, + "src": "5902:10:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_UpdateType_$27952_$", + "typeString": "type(enum RollDown.UpdateType)" + } + }, + "id": 28264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5913:7:24", + "memberName": "DEPOSIT", + "nodeType": "MemberAccess", + "referencedDeclaration": 27948, + "src": "5902:18:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "src": "5880:40:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + }, + "id": 28280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 28276, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6090:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6098:10:24", + "memberName": "updateType", + "nodeType": "MemberAccess", + "referencedDeclaration": 27957, + "src": "6090:18:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 28278, + "name": "UpdateType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27952, + "src": "6112:10:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_UpdateType_$27952_$", + "typeString": "type(enum RollDown.UpdateType)" + } + }, + "id": 28279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6123:10:24", + "memberName": "WITHDRAWAL", + "nodeType": "MemberAccess", + "referencedDeclaration": 27949, + "src": "6112:21:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "src": "6090:43:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + }, + "id": 28302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 28298, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6422:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6430:10:24", + "memberName": "updateType", + "nodeType": "MemberAccess", + "referencedDeclaration": 27957, + "src": "6422:18:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 28300, + "name": "UpdateType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27952, + "src": "6444:10:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_UpdateType_$27952_$", + "typeString": "type(enum RollDown.UpdateType)" + } + }, + "id": 28301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6455:12:24", + "memberName": "INDEX_UPDATE", + "nodeType": "MemberAccess", + "referencedDeclaration": 27950, + "src": "6444:23:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_UpdateType_$27952", + "typeString": "enum RollDown.UpdateType" + } + }, + "src": "6422:45:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 28317, + "nodeType": "Block", + "src": "6613:63:24", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "756e6b6e6f776e20726571756573742074797065", + "id": 28314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6638:22:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_52ad04e229b0b879ae849b2e6950490fab9ceda234e3598d9b74c97984bcfc85", + "typeString": "literal_string \"unknown request type\"" + }, + "value": "unknown request type" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_52ad04e229b0b879ae849b2e6950490fab9ceda234e3598d9b74c97984bcfc85", + "typeString": "literal_string \"unknown request type\"" + } + ], + "id": 28313, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "6631:6:24", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 28315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6631:30:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28316, + "nodeType": "ExpressionStatement", + "src": "6631:30:24" + } + ] + }, + "id": 28318, + "nodeType": "IfStatement", + "src": "6418:258:24", + "trueBody": { + "id": 28312, + "nodeType": "Block", + "src": "6469:138:24", + "statements": [ + { + "expression": { + "id": 28310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28303, + "name": "l2UpdatesToBeRemovedTemp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28180, + "src": "6485:24:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 28306, + "indexExpression": { + "id": 28305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6510:27:24", + "subExpression": { + "id": 28304, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28173, + "src": "6510:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6485:53:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "expression": { + "id": 28307, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6559:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6567:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "6559:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28309, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6541:51:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6485:107:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28311, + "nodeType": "ExpressionStatement", + "src": "6485:107:24" + } + ] + } + }, + "id": 28319, + "nodeType": "IfStatement", + "src": "6086:590:24", + "trueBody": { + "id": 28297, + "nodeType": "Block", + "src": "6135:277:24", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 28282, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6204:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6212:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "6204:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 28284, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6241:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6249:6:24", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 27959, + "src": "6241:14:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 28281, + "name": "process_pending_update_withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28504, + "src": "6153:31:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,bool)" + } + }, + "id": 28286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6153:120:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28287, + "nodeType": "ExpressionStatement", + "src": "6153:120:24" + }, + { + "expression": { + "id": 28295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28288, + "name": "l2UpdatesToBeRemovedTemp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28180, + "src": "6290:24:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 28291, + "indexExpression": { + "id": 28290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6315:27:24", + "subExpression": { + "id": 28289, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28173, + "src": "6315:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6290:53:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "expression": { + "id": 28292, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6364:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6372:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "6364:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28294, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6346:51:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6290:107:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28296, + "nodeType": "ExpressionStatement", + "src": "6290:107:24" + } + ] + } + }, + "id": 28320, + "nodeType": "IfStatement", + "src": "5876:800:24", + "trueBody": { + "id": 28275, + "nodeType": "Block", + "src": "5922:146:24", + "statements": [ + { + "expression": { + "id": 28273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28266, + "name": "l2UpdatesToBeRemovedTemp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28180, + "src": "5940:24:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 28269, + "indexExpression": { + "id": 28268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5965:27:24", + "subExpression": { + "id": 28267, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28173, + "src": "5965:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5940:53:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "expression": { + "id": 28270, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28248, + "src": "6018:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RequestResult_$27960_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata" + } + }, + "id": 28271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6026:9:24", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27954, + "src": "6018:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 28272, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5996:57:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5940:113:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28274, + "nodeType": "ExpressionStatement", + "src": "5940:113:24" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28238, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28235, + "src": "5642:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "expression": { + "id": 28239, + "name": "inputArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28146, + "src": "5648:10:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update calldata" + } + }, + "id": 28240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5659:7:24", + "memberName": "results", + "nodeType": "MemberAccess", + "referencedDeclaration": 27968, + "src": "5648:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RequestResult_$27960_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct RollDown.RequestResult calldata[] calldata" + } + }, + "id": 28241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5667:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5648:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5642:31:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28322, + "initializationExpression": { + "assignments": [ + 28235 + ], + "declarations": [ + { + "constant": false, + "id": 28235, + "mutability": "mutable", + "name": "idx", + "nameLocation": "5633:3:24", + "nodeType": "VariableDeclaration", + "scope": 28322, + "src": "5625:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28234, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5625:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28237, + "initialValue": { + "hexValue": "30", + "id": 28236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5639:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5625:15:24" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 28244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5675:5:24", + "subExpression": { + "id": 28243, + "name": "idx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28235, + "src": "5675:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28245, + "nodeType": "ExpressionStatement", + "src": "5675:5:24" + }, + "nodeType": "ForStatement", + "src": "5620:1067:24" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28323, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28173, + "src": "6700:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6728:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6700:29:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28378, + "nodeType": "IfStatement", + "src": "6697:693:24", + "trueBody": { + "id": 28377, + "nodeType": "Block", + "src": "6730:660:24", + "statements": [ + { + "assignments": [ + 28330 + ], + "declarations": [ + { + "constant": false, + "id": 28330, + "mutability": "mutable", + "name": "l2UpdatesToBeRemoved", + "nameLocation": "6813:20:24", + "nodeType": "VariableDeclaration", + "scope": 28377, + "src": "6796:37:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 28328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6796:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28329, + "nodeType": "ArrayTypeName", + "src": "6796:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 28336, + "initialValue": { + "arguments": [ + { + "id": 28334, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28173, + "src": "6863:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6836:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 28331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6840:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28332, + "nodeType": "ArrayTypeName", + "src": "6840:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 28335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6836:64:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6796:104:24" + }, + { + "body": { + "id": 28355, + "nodeType": "Block", + "src": "7025:80:24", + "statements": [ + { + "expression": { + "id": 28353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28347, + "name": "l2UpdatesToBeRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28330, + "src": "7039:20:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 28349, + "indexExpression": { + "id": 28348, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28338, + "src": "7060:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7039:23:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 28350, + "name": "l2UpdatesToBeRemovedTemp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28180, + "src": "7065:24:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 28352, + "indexExpression": { + "id": 28351, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28338, + "src": "7090:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7065:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7039:53:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28354, + "nodeType": "ExpressionStatement", + "src": "7039:53:24" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28341, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28338, + "src": "6989:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 28342, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28173, + "src": "6993:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6989:29:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28356, + "initializationExpression": { + "assignments": [ + 28338 + ], + "declarations": [ + { + "constant": false, + "id": 28338, + "mutability": "mutable", + "name": "i", + "nameLocation": "6982:1:24", + "nodeType": "VariableDeclaration", + "scope": 28356, + "src": "6974:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28337, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6974:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28340, + "initialValue": { + "hexValue": "30", + "id": 28339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6986:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6974:13:24" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 28345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7020:3:24", + "subExpression": { + "id": 28344, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28338, + "src": "7020:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28346, + "nodeType": "ExpressionStatement", + "src": "7020:3:24" + }, + "nodeType": "ForStatement", + "src": "6969:136:24" + }, + { + "expression": { + "id": 28363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 28357, + "name": "l2UpdatesToRemove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27946, + "src": "7117:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove storage ref)" + } + }, + "id": 28360, + "indexExpression": { + "id": 28359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7135:9:24", + "subExpression": { + "id": 28358, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "7135:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7117:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage", + "typeString": "struct RollDown.L2UpdatesToRemove storage ref" + } + }, + "id": 28361, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "7146:17:24", + "memberName": "l2UpdatesToRemove", + "nodeType": "MemberAccess", + "referencedDeclaration": 27888, + "src": "7117:46:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28362, + "name": "l2UpdatesToBeRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28330, + "src": "7166:20:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "src": "7117:69:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 28364, + "nodeType": "ExpressionStatement", + "src": "7117:69:24" + }, + { + "expression": { + "id": 28368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28365, + "name": "lastProcessedUpdate_origin_l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27819, + "src": "7232:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "expression": { + "id": 28366, + "name": "l2UpdatesToBeRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28330, + "src": "7265:20:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 28367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7286:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7265:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7232:60:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28369, + "nodeType": "ExpressionStatement", + "src": "7232:60:24" + }, + { + "eventCall": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28371, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "7345:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 28372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7355:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7345:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28374, + "name": "l2UpdatesToBeRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28330, + "src": "7358:20:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 28370, + "name": "L2UpdatesToRemovedAcceptedIntoQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27856, + "src": "7309:35:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256[] memory)" + } + }, + "id": 28375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7309:70:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28376, + "nodeType": "EmitStatement", + "src": "7304:75:24" + } + ] + } + } + ] + }, + "functionSelector": "34b03805", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "update_l1_from_l2", + "nameLocation": "4764:17:24", + "parameters": { + "id": 28147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28146, + "mutability": "mutable", + "name": "inputArray", + "nameLocation": "4800:10:24", + "nodeType": "VariableDeclaration", + "scope": 28380, + "src": "4782:28:24", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_calldata_ptr", + "typeString": "struct RollDown.L2Update" + }, + "typeName": { + "id": 28145, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28144, + "name": "L2Update", + "nameLocations": [ + "4782:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27969, + "src": "4782:8:24" + }, + "referencedDeclaration": 27969, + "src": "4782:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2Update_$27969_storage_ptr", + "typeString": "struct RollDown.L2Update" + } + }, + "visibility": "internal" + } + ], + "src": "4781:30:24" + }, + "returnParameters": { + "id": 28148, + "nodeType": "ParameterList", + "parameters": [], + "src": "4821:0:24" + }, + "scope": 28857, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 28446, + "nodeType": "FunctionDefinition", + "src": "7428:1192:24", + "nodes": [], + "body": { + "id": 28445, + "nodeType": "Block", + "src": "7626:994:24", + "nodes": [], + "statements": [ + { + "expression": { + "id": 28392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7636:9:24", + "subExpression": { + "id": 28391, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "7636:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28393, + "nodeType": "ExpressionStatement", + "src": "7636:9:24" + }, + { + "assignments": [ + 28395 + ], + "declarations": [ + { + "constant": false, + "id": 28395, + "mutability": "mutable", + "name": "jsonString", + "nameLocation": "7871:10:24", + "nodeType": "VariableDeclaration", + "scope": 28445, + "src": "7857:24:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28394, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7857:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 28397, + "initialValue": { + "hexValue": "68656c6c6f", + "id": 28396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7884:7:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8", + "typeString": "literal_string \"hello\"" + }, + "value": "hello" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7857:34:24" + }, + { + "assignments": [ + 28399 + ], + "declarations": [ + { + "constant": false, + "id": 28399, + "mutability": "mutable", + "name": "jsonHash", + "nameLocation": "7951:8:24", + "nodeType": "VariableDeclaration", + "scope": 28445, + "src": "7943:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 28398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7943:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 28406, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 28403, + "name": "jsonString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28395, + "src": "7989:10:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 28401, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7972:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 28402, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7976:12:24", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "7972:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 28404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7972:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 28400, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7962:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 28405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7962:39:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7943:58:24" + }, + { + "assignments": [ + 28408 + ], + "declarations": [ + { + "constant": false, + "id": 28408, + "mutability": "mutable", + "name": "cancelJustified", + "nameLocation": "8063:15:24", + "nodeType": "VariableDeclaration", + "scope": 28445, + "src": "8058:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28407, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8058:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 28416, + "initialValue": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 28414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28409, + "name": "jsonHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28399, + "src": "8082:8:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "id": 28412, + "name": "cancelHashAsUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28388, + "src": "8102:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8094:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 28410, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8094:7:24", + "typeDescriptions": {} + } + }, + "id": 28413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8094:25:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "8082:37:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 28415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8081:39:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8058:62:24" + }, + { + "assignments": [ + 28419 + ], + "declarations": [ + { + "constant": false, + "id": 28419, + "mutability": "mutable", + "name": "newCancelResolution", + "nameLocation": "8154:19:24", + "nodeType": "VariableDeclaration", + "scope": 28445, + "src": "8130:43:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_memory_ptr", + "typeString": "struct RollDown.CancelResolution" + }, + "typeName": { + "id": 28418, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28417, + "name": "CancelResolution", + "nameLocations": [ + "8130:16:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27894, + "src": "8130:16:24" + }, + "referencedDeclaration": 27894, + "src": "8130:16:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage_ptr", + "typeString": "struct RollDown.CancelResolution" + } + }, + "visibility": "internal" + } + ], + "id": 28424, + "initialValue": { + "arguments": [ + { + "id": 28421, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28382, + "src": "8220:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28422, + "name": "cancelJustified", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28408, + "src": "8260:15:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 28420, + "name": "CancelResolution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27894, + "src": "8176:16:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CancelResolution_$27894_storage_ptr_$", + "typeString": "type(struct RollDown.CancelResolution storage pointer)" + } + }, + "id": 28423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "8207:11:24", + "8243:15:24" + ], + "names": [ + "l2RequestId", + "cancelJustified" + ], + "nodeType": "FunctionCall", + "src": "8176:110:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8130:156:24" + }, + { + "expression": { + "id": 28429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 28425, + "name": "cancelResolutions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27931, + "src": "8342:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CancelResolution_$27894_storage_$", + "typeString": "mapping(uint256 => struct RollDown.CancelResolution storage ref)" + } + }, + "id": 28427, + "indexExpression": { + "id": 28426, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "8360:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8342:26:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage", + "typeString": "struct RollDown.CancelResolution storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28428, + "name": "newCancelResolution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28419, + "src": "8371:19:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory" + } + }, + "src": "8342:48:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage", + "typeString": "struct RollDown.CancelResolution storage ref" + } + }, + "id": 28430, + "nodeType": "ExpressionStatement", + "src": "8342:48:24" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 28434, + "name": "cancelHashAsUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28388, + "src": "8452:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8444:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 28432, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8444:7:24", + "typeDescriptions": {} + } + }, + "id": 28435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8444:25:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 28436, + "name": "jsonHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28399, + "src": "8471:8:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 28431, + "name": "cancelAndCalculatedHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27870, + "src": "8420:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32)" + } + }, + "id": 28437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8420:60:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28438, + "nodeType": "EmitStatement", + "src": "8415:65:24" + }, + { + "eventCall": { + "arguments": [ + { + "id": 28440, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "8544:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28441, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28382, + "src": "8565:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 28442, + "name": "cancelJustified", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28408, + "src": "8588:15:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 28439, + "name": "DisputeResolutionAcceptedIntoQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27849, + "src": "8496:34:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,uint256,bool)" + } + }, + "id": 28443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8496:117:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28444, + "nodeType": "EmitStatement", + "src": "8491:122:24" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "process_pending_update_cancel", + "nameLocation": "7437:29:24", + "parameters": { + "id": 28389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28382, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "7484:9:24", + "nodeType": "VariableDeclaration", + "scope": 28446, + "src": "7476:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7476:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28384, + "mutability": "mutable", + "name": "lastProccessedRequestOnL1", + "nameLocation": "7511:25:24", + "nodeType": "VariableDeclaration", + "scope": 28446, + "src": "7503:33:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7503:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28386, + "mutability": "mutable", + "name": "lastAcceptedRequestOnL1", + "nameLocation": "7554:23:24", + "nodeType": "VariableDeclaration", + "scope": 28446, + "src": "7546:31:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7546:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28388, + "mutability": "mutable", + "name": "cancelHashAsUint", + "nameLocation": "7595:16:24", + "nodeType": "VariableDeclaration", + "scope": 28446, + "src": "7587:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7587:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7466:151:24" + }, + "returnParameters": { + "id": 28390, + "nodeType": "ParameterList", + "parameters": [], + "src": "7626:0:24" + }, + "scope": 28857, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "id": 28504, + "nodeType": "FunctionDefinition", + "src": "8626:750:24", + "nodes": [], + "body": { + "id": 28503, + "nodeType": "Block", + "src": "8730:646:24", + "nodes": [], + "statements": [ + { + "condition": { + "id": 28453, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28450, + "src": "8744:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28502, + "nodeType": "IfStatement", + "src": "8740:630:24", + "trueBody": { + "id": 28501, + "nodeType": "Block", + "src": "8753:617:24", + "statements": [ + { + "assignments": [ + 28456 + ], + "declarations": [ + { + "constant": false, + "id": 28456, + "mutability": "mutable", + "name": "newWithdraw", + "nameLocation": "8783:11:24", + "nodeType": "VariableDeclaration", + "scope": 28501, + "src": "8767:27:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw" + }, + "typeName": { + "id": 28455, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28454, + "name": "Withdraw", + "nameLocations": [ + "8767:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27885, + "src": "8767:8:24" + }, + "referencedDeclaration": 27885, + "src": "8767:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage_ptr", + "typeString": "struct RollDown.Withdraw" + } + }, + "visibility": "internal" + } + ], + "id": 28460, + "initialValue": { + "baseExpression": { + "id": 28457, + "name": "withdraws", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27941, + "src": "8797:9:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw storage ref)" + } + }, + "id": 28459, + "indexExpression": { + "id": 28458, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28448, + "src": "8807:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8797:20:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage", + "typeString": "struct RollDown.Withdraw storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8767:50:24" + }, + { + "assignments": [ + 28463 + ], + "declarations": [ + { + "constant": false, + "id": 28463, + "mutability": "mutable", + "name": "token", + "nameLocation": "8839:5:24", + "nodeType": "VariableDeclaration", + "scope": 28501, + "src": "8832:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 28462, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28461, + "name": "IERC20", + "nameLocations": [ + "8832:6:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 729, + "src": "8832:6:24" + }, + "referencedDeclaration": 729, + "src": "8832:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + } + ], + "id": 28468, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 28465, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "8854:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8866:12:24", + "memberName": "tokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 27882, + "src": "8854:24:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 28464, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "8847:6:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 28467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8847:32:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8832:47:24" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 28474, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8942:4:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RollDown_$28857", + "typeString": "contract RollDown" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_RollDown_$28857", + "typeString": "contract RollDown" + } + ], + "id": 28473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8934:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8934:7:24", + "typeDescriptions": {} + } + }, + "id": 28475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8934:13:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 28470, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28463, + "src": "8918:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 28471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8924:9:24", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 686, + "src": "8918:15:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 28476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8918:30:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 28477, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "8952:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28478, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8964:6:24", + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 27884, + "src": "8952:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8918:52:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e73756666696369656e742062616c616e636520696e2074686520636f6e7472616374", + "id": 28480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8988:38:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f686c516712e3f5d906ecf2d98f44565932ce5496611b2681ed768e7ceb36388", + "typeString": "literal_string \"Insufficient balance in the contract\"" + }, + "value": "Insufficient balance in the contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f686c516712e3f5d906ecf2d98f44565932ce5496611b2681ed768e7ceb36388", + "typeString": "literal_string \"Insufficient balance in the contract\"" + } + ], + "id": 28469, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8893:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 28481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8893:147:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28482, + "nodeType": "ExpressionStatement", + "src": "8893:147:24" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 28486, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "9136:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28487, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9148:17:24", + "memberName": "withdrawRecipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 27880, + "src": "9136:29:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 28488, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "9167:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28489, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9179:6:24", + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 27884, + "src": "9167:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 28483, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28463, + "src": "9121:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$729", + "typeString": "contract IERC20" + } + }, + "id": 28485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9127:8:24", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 696, + "src": "9121:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 28490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9121:65:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28491, + "nodeType": "ExpressionStatement", + "src": "9121:65:24" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 28493, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "9238:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9250:17:24", + "memberName": "withdrawRecipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 27880, + "src": "9238:29:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 28495, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "9285:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9297:12:24", + "memberName": "tokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 27882, + "src": "9285:24:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 28497, + "name": "newWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28456, + "src": "9327:11:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28498, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9339:6:24", + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 27884, + "src": "9327:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28492, + "name": "FundsWithdrawn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27864, + "src": "9206:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 28499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9206:153:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 28500, + "nodeType": "EmitStatement", + "src": "9201:158:24" + } + ] + } + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "process_pending_update_withdraw", + "nameLocation": "8635:31:24", + "parameters": { + "id": 28451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28448, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "8684:9:24", + "nodeType": "VariableDeclaration", + "scope": 28504, + "src": "8676:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28447, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8676:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28450, + "mutability": "mutable", + "name": "success", + "nameLocation": "8708:7:24", + "nodeType": "VariableDeclaration", + "scope": 28504, + "src": "8703:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28449, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8703:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8666:55:24" + }, + "returnParameters": { + "id": 28452, + "nodeType": "ParameterList", + "parameters": [], + "src": "8730:0:24" + }, + "scope": 28857, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "id": 28518, + "nodeType": "FunctionDefinition", + "src": "9382:146:24", + "nodes": [], + "body": { + "id": 28517, + "nodeType": "Block", + "src": "9467:61:24", + "nodes": [], + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 28512, + "name": "l2UpdatesToRemove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27946, + "src": "9482:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove storage ref)" + } + }, + "id": 28514, + "indexExpression": { + "id": 28513, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28506, + "src": "9500:2:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9482:21:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage", + "typeString": "struct RollDown.L2UpdatesToRemove storage ref" + } + }, + "id": 28515, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9504:17:24", + "memberName": "l2UpdatesToRemove", + "nodeType": "MemberAccess", + "referencedDeclaration": 27888, + "src": "9482:39:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "functionReturnParameters": 28511, + "id": 28516, + "nodeType": "Return", + "src": "9475:46:24" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPendingRequestsRemove", + "nameLocation": "9391:24:24", + "parameters": { + "id": 28507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28506, + "mutability": "mutable", + "name": "id", + "nameLocation": "9424:2:24", + "nodeType": "VariableDeclaration", + "scope": 28518, + "src": "9416:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9416:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9415:12:24" + }, + "returnParameters": { + "id": 28511, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28510, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28518, + "src": "9450:16:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 28508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9450:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28509, + "nodeType": "ArrayTypeName", + "src": "9450:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "9449:18:24" + }, + "scope": 28857, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "id": 28856, + "nodeType": "FunctionDefinition", + "src": "9534:2819:24", + "nodes": [], + "body": { + "id": 28855, + "nodeType": "Block", + "src": "9652:2701:24", + "nodes": [], + "statements": [ + { + "assignments": [ + 28530 + ], + "declarations": [ + { + "constant": false, + "id": 28530, + "mutability": "mutable", + "name": "result", + "nameLocation": "9678:6:24", + "nodeType": "VariableDeclaration", + "scope": 28855, + "src": "9662:22:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update" + }, + "typeName": { + "id": 28529, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28528, + "name": "L1Update", + "nameLocations": [ + "9662:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27926, + "src": "9662:8:24" + }, + "referencedDeclaration": 27926, + "src": "9662:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_storage_ptr", + "typeString": "struct RollDown.L1Update" + } + }, + "visibility": "internal" + } + ], + "id": 28531, + "nodeType": "VariableDeclarationStatement", + "src": "9662:22:24" + }, + { + "assignments": [ + 28533 + ], + "declarations": [ + { + "constant": false, + "id": 28533, + "mutability": "mutable", + "name": "depositsCounter", + "nameLocation": "9703:15:24", + "nodeType": "VariableDeclaration", + "scope": 28855, + "src": "9695:23:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9695:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28535, + "initialValue": { + "hexValue": "30", + "id": 28534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9721:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9695:27:24" + }, + { + "assignments": [ + 28537 + ], + "declarations": [ + { + "constant": false, + "id": 28537, + "mutability": "mutable", + "name": "withdrawsCounter", + "nameLocation": "9740:16:24", + "nodeType": "VariableDeclaration", + "scope": 28855, + "src": "9732:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9732:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28539, + "initialValue": { + "hexValue": "30", + "id": 28538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9759:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9732:28:24" + }, + { + "assignments": [ + 28541 + ], + "declarations": [ + { + "constant": false, + "id": 28541, + "mutability": "mutable", + "name": "cancelsCounter", + "nameLocation": "9778:14:24", + "nodeType": "VariableDeclaration", + "scope": 28855, + "src": "9770:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9770:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28543, + "initialValue": { + "hexValue": "30", + "id": 28542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9795:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9770:26:24" + }, + { + "assignments": [ + 28545 + ], + "declarations": [ + { + "constant": false, + "id": 28545, + "mutability": "mutable", + "name": "updatesToBeRemovedCounter", + "nameLocation": "9814:25:24", + "nodeType": "VariableDeclaration", + "scope": 28855, + "src": "9806:33:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28544, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9806:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28547, + "initialValue": { + "hexValue": "30", + "id": 28546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9842:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9806:37:24" + }, + { + "body": { + "id": 28609, + "nodeType": "Block", + "src": "9917:471:24", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 28558, + "name": "deposits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27936, + "src": "9935:8:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Deposit_$27877_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Deposit storage ref)" + } + }, + "id": 28560, + "indexExpression": { + "id": 28559, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28549, + "src": "9944:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9935:19:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage", + "typeString": "struct RollDown.Deposit storage ref" + } + }, + "id": 28561, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9955:16:24", + "memberName": "depositRecipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 27872, + "src": "9935:36:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9983:1:24", + "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": 28563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9975:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28562, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9975:7:24", + "typeDescriptions": {} + } + }, + "id": 28565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9975:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9935:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 28571, + "name": "withdraws", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27941, + "src": "10045:9:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw storage ref)" + } + }, + "id": 28573, + "indexExpression": { + "id": 28572, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28549, + "src": "10055:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10045:20:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage", + "typeString": "struct RollDown.Withdraw storage ref" + } + }, + "id": 28574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10066:17:24", + "memberName": "withdrawRecipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 27880, + "src": "10045:38:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10095:1:24", + "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": 28576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10087:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28575, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10087:7:24", + "typeDescriptions": {} + } + }, + "id": 28578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10087:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10045:52:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "baseExpression": { + "id": 28584, + "name": "l2UpdatesToRemove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27946, + "src": "10158:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove storage ref)" + } + }, + "id": 28586, + "indexExpression": { + "id": 28585, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28549, + "src": "10176:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10158:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage", + "typeString": "struct RollDown.L2UpdatesToRemove storage ref" + } + }, + "id": 28587, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10187:17:24", + "memberName": "l2UpdatesToRemove", + "nodeType": "MemberAccess", + "referencedDeclaration": 27888, + "src": "10158:46:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 28588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10205:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "10158:53:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10214:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10158:57:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 28595, + "name": "cancelResolutions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27931, + "src": "10285:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CancelResolution_$27894_storage_$", + "typeString": "mapping(uint256 => struct RollDown.CancelResolution storage ref)" + } + }, + "id": 28597, + "indexExpression": { + "id": 28596, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28549, + "src": "10303:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10285:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage", + "typeString": "struct RollDown.CancelResolution storage ref" + } + }, + "id": 28598, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10314:11:24", + "memberName": "l2RequestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27891, + "src": "10285:40:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10328:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10285:44:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28605, + "nodeType": "IfStatement", + "src": "10281:97:24", + "trueBody": { + "id": 28604, + "nodeType": "Block", + "src": "10331:47:24", + "statements": [ + { + "expression": { + "id": 28602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "10347:16:24", + "subExpression": { + "id": 28601, + "name": "cancelsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28541, + "src": "10347:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28603, + "nodeType": "ExpressionStatement", + "src": "10347:16:24" + } + ] + } + }, + "id": 28606, + "nodeType": "IfStatement", + "src": "10154:224:24", + "trueBody": { + "id": 28594, + "nodeType": "Block", + "src": "10217:58:24", + "statements": [ + { + "expression": { + "id": 28592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "10233:27:24", + "subExpression": { + "id": 28591, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28545, + "src": "10233:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28593, + "nodeType": "ExpressionStatement", + "src": "10233:27:24" + } + ] + } + }, + "id": 28607, + "nodeType": "IfStatement", + "src": "10041:337:24", + "trueBody": { + "id": 28583, + "nodeType": "Block", + "src": "10099:49:24", + "statements": [ + { + "expression": { + "id": 28581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "10115:18:24", + "subExpression": { + "id": 28580, + "name": "withdrawsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "10115:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28582, + "nodeType": "ExpressionStatement", + "src": "10115:18:24" + } + ] + } + }, + "id": 28608, + "nodeType": "IfStatement", + "src": "9931:447:24", + "trueBody": { + "id": 28570, + "nodeType": "Block", + "src": "9987:48:24", + "statements": [ + { + "expression": { + "id": 28568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "10003:17:24", + "subExpression": { + "id": 28567, + "name": "depositsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28533, + "src": "10003:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28569, + "nodeType": "ExpressionStatement", + "src": "10003:17:24" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28552, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28549, + "src": "9886:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 28553, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28522, + "src": "9899:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9886:16:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28610, + "initializationExpression": { + "assignments": [ + 28549 + ], + "declarations": [ + { + "constant": false, + "id": 28549, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "9867:9:24", + "nodeType": "VariableDeclaration", + "scope": 28610, + "src": "9859:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9859:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28551, + "initialValue": { + "id": 28550, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28520, + "src": "9879:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9859:25:24" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 28556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9904:11:24", + "subExpression": { + "id": 28555, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28549, + "src": "9904:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28557, + "nodeType": "ExpressionStatement", + "src": "9904:11:24" + }, + "nodeType": "ForStatement", + "src": "9854:534:24" + }, + { + "assignments": [ + 28612 + ], + "declarations": [ + { + "constant": false, + "id": 28612, + "mutability": "mutable", + "name": "requestCounter", + "nameLocation": "10406:14:24", + "nodeType": "VariableDeclaration", + "scope": 28855, + "src": "10398:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10398:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28620, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28613, + "name": "depositsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28533, + "src": "10423:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 28614, + "name": "withdrawsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "10441:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10423:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 28616, + "name": "cancelsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28541, + "src": "10460:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10423:51:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 28618, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28545, + "src": "10477:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10423:79:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10398:104:24" + }, + { + "expression": { + "id": 28630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28621, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10512:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28623, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10519:5:24", + "memberName": "order", + "nodeType": "MemberAccess", + "referencedDeclaration": 27909, + "src": "10512:12:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28628, + "name": "requestCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "10552:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "10527:24:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (enum RollDown.PendingRequestType[] memory)" + }, + "typeName": { + "baseType": { + "id": 28625, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28624, + "name": "PendingRequestType", + "nameLocations": [ + "10531:18:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27899, + "src": "10531:18:24" + }, + "referencedDeclaration": 27899, + "src": "10531:18:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "id": 28626, + "nodeType": "ArrayTypeName", + "src": "10531:20:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_storage_ptr", + "typeString": "enum RollDown.PendingRequestType[]" + } + } + }, + "id": 28629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10527:40:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "src": "10512:55:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "id": 28631, + "nodeType": "ExpressionStatement", + "src": "10512:55:24" + }, + { + "expression": { + "id": 28636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28632, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10578:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10585:6:24", + "memberName": "offset", + "nodeType": "MemberAccess", + "referencedDeclaration": 27905, + "src": "10578:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28635, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28520, + "src": "10594:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10578:21:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28637, + "nodeType": "ExpressionStatement", + "src": "10578:21:24" + }, + { + "expression": { + "id": 28647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28638, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10609:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28640, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10616:16:24", + "memberName": "pendingWithdraws", + "nodeType": "MemberAccess", + "referencedDeclaration": 27913, + "src": "10609:23:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Withdraw memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28645, + "name": "withdrawsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "10650:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "10635:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Withdraw_$27885_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct RollDown.Withdraw memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 28642, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28641, + "name": "Withdraw", + "nameLocations": [ + "10639:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27885, + "src": "10639:8:24" + }, + "referencedDeclaration": 27885, + "src": "10639:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage_ptr", + "typeString": "struct RollDown.Withdraw" + } + }, + "id": 28643, + "nodeType": "ArrayTypeName", + "src": "10639:10:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Withdraw[]" + } + } + }, + "id": 28646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10635:32:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Withdraw memory[] memory" + } + }, + "src": "10609:58:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Withdraw memory[] memory" + } + }, + "id": 28648, + "nodeType": "ExpressionStatement", + "src": "10609:58:24" + }, + { + "expression": { + "id": 28658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28649, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10677:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28651, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10684:15:24", + "memberName": "pendingDeposits", + "nodeType": "MemberAccess", + "referencedDeclaration": 27917, + "src": "10677:22:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Deposit memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28656, + "name": "depositsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28533, + "src": "10716:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "10702:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Deposit_$27877_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct RollDown.Deposit memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 28653, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28652, + "name": "Deposit", + "nameLocations": [ + "10706:7:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27877, + "src": "10706:7:24" + }, + "referencedDeclaration": 27877, + "src": "10706:7:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage_ptr", + "typeString": "struct RollDown.Deposit" + } + }, + "id": 28654, + "nodeType": "ArrayTypeName", + "src": "10706:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.Deposit[]" + } + } + }, + "id": 28657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10702:30:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Deposit memory[] memory" + } + }, + "src": "10677:55:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Deposit memory[] memory" + } + }, + "id": 28659, + "nodeType": "ExpressionStatement", + "src": "10677:55:24" + }, + { + "expression": { + "id": 28669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28660, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10742:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28662, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10749:23:24", + "memberName": "pendingCancelResultions", + "nodeType": "MemberAccess", + "referencedDeclaration": 27921, + "src": "10742:30:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28667, + "name": "cancelsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28541, + "src": "10798:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "10775:22:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_CancelResolution_$27894_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct RollDown.CancelResolution memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 28664, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28663, + "name": "CancelResolution", + "nameLocations": [ + "10779:16:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27894, + "src": "10779:16:24" + }, + "referencedDeclaration": 27894, + "src": "10779:16:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage_ptr", + "typeString": "struct RollDown.CancelResolution" + } + }, + "id": 28665, + "nodeType": "ArrayTypeName", + "src": "10779:18:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.CancelResolution[]" + } + } + }, + "id": 28668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10775:38:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory[] memory" + } + }, + "src": "10742:71:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory[] memory" + } + }, + "id": 28670, + "nodeType": "ExpressionStatement", + "src": "10742:71:24" + }, + { + "expression": { + "id": 28680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28671, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10823:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28673, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10830:24:24", + "memberName": "pendingL2UpdatesToRemove", + "nodeType": "MemberAccess", + "referencedDeclaration": 27925, + "src": "10823:31:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove memory[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 28678, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28545, + "src": "10881:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 28677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "10857:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_L2UpdatesToRemove_$27889_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct RollDown.L2UpdatesToRemove memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 28675, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28674, + "name": "L2UpdatesToRemove", + "nameLocations": [ + "10861:17:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27889, + "src": "10861:17:24" + }, + "referencedDeclaration": 27889, + "src": "10861:17:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove" + } + }, + "id": 28676, + "nodeType": "ArrayTypeName", + "src": "10861:19:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_storage_$dyn_storage_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove[]" + } + } + }, + "id": 28679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10857:50:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove memory[] memory" + } + }, + "src": "10823:84:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove memory[] memory" + } + }, + "id": 28681, + "nodeType": "ExpressionStatement", + "src": "10823:84:24" + }, + { + "expression": { + "id": 28686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28682, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10917:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28684, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10924:25:24", + "memberName": "lastProccessedRequestOnL1", + "nodeType": "MemberAccess", + "referencedDeclaration": 27901, + "src": "10917:32:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 28685, + "name": "lastProcessedUpdate_origin_l1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27819, + "src": "10952:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10917:64:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28687, + "nodeType": "ExpressionStatement", + "src": "10917:64:24" + }, + { + "expression": { + "id": 28694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 28688, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "10991:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28690, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10998:23:24", + "memberName": "lastAcceptedRequestOnL1", + "nodeType": "MemberAccess", + "referencedDeclaration": 27903, + "src": "10991:30:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28691, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27817, + "src": "11024:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 28692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11034:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11024:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10991:44:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28695, + "nodeType": "ExpressionStatement", + "src": "10991:44:24" + }, + { + "expression": { + "id": 28698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28696, + "name": "withdrawsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "11046:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 28697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11065:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11046:20:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28699, + "nodeType": "ExpressionStatement", + "src": "11046:20:24" + }, + { + "expression": { + "id": 28702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28700, + "name": "depositsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28533, + "src": "11076:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 28701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11094:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11076:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28703, + "nodeType": "ExpressionStatement", + "src": "11076:19:24" + }, + { + "expression": { + "id": 28706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28704, + "name": "cancelsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28541, + "src": "11105:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 28705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11122:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11105:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28707, + "nodeType": "ExpressionStatement", + "src": "11105:18:24" + }, + { + "expression": { + "id": 28710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28708, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28545, + "src": "11133:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 28709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11161:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11133:29:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28711, + "nodeType": "ExpressionStatement", + "src": "11133:29:24" + }, + { + "expression": { + "id": 28714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 28712, + "name": "requestCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "11172:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 28713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11189:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11172:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28715, + "nodeType": "ExpressionStatement", + "src": "11172:18:24" + }, + { + "body": { + "id": 28851, + "nodeType": "Block", + "src": "11264:1059:24", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 28726, + "name": "deposits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27936, + "src": "11282:8:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Deposit_$27877_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Deposit storage ref)" + } + }, + "id": 28728, + "indexExpression": { + "id": 28727, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11291:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11282:19:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage", + "typeString": "struct RollDown.Deposit storage ref" + } + }, + "id": 28729, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11302:16:24", + "memberName": "depositRecipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 27872, + "src": "11282:36:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11330:1:24", + "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": 28731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11322:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11322:7:24", + "typeDescriptions": {} + } + }, + "id": 28733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11322:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11282:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 28765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 28757, + "name": "withdraws", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27941, + "src": "11513:9:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw storage ref)" + } + }, + "id": 28759, + "indexExpression": { + "id": 28758, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11523:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11513:20:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage", + "typeString": "struct RollDown.Withdraw storage ref" + } + }, + "id": 28760, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11534:17:24", + "memberName": "withdrawRecipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 27880, + "src": "11513:38:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 28763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11563:1:24", + "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": 28762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11555:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:24", + "typeDescriptions": {} + } + }, + "id": 28764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11555:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11513:52:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "baseExpression": { + "id": 28788, + "name": "l2UpdatesToRemove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27946, + "src": "11753:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove storage ref)" + } + }, + "id": 28790, + "indexExpression": { + "id": 28789, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11771:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11753:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage", + "typeString": "struct RollDown.L2UpdatesToRemove storage ref" + } + }, + "id": 28791, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11782:17:24", + "memberName": "l2UpdatesToRemove", + "nodeType": "MemberAccess", + "referencedDeclaration": 27888, + "src": "11753:46:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 28792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11800:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11753:53:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11809:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11753:57:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 28817, + "name": "cancelResolutions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27931, + "src": "12032:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CancelResolution_$27894_storage_$", + "typeString": "mapping(uint256 => struct RollDown.CancelResolution storage ref)" + } + }, + "id": 28819, + "indexExpression": { + "id": 28818, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "12050:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12032:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage", + "typeString": "struct RollDown.CancelResolution storage ref" + } + }, + "id": 28820, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12061:11:24", + "memberName": "l2RequestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 27891, + "src": "12032:40:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 28821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12075:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12032:44:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 28846, + "nodeType": "Block", + "src": "12277:36:24", + "statements": [ + { + "id": 28845, + "nodeType": "Break", + "src": "12293:5:24" + } + ] + }, + "id": 28847, + "nodeType": "IfStatement", + "src": "12028:285:24", + "trueBody": { + "id": 28844, + "nodeType": "Block", + "src": "12078:195:24", + "statements": [ + { + "expression": { + "id": 28831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28823, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "12094:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28827, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12101:5:24", + "memberName": "order", + "nodeType": "MemberAccess", + "referencedDeclaration": 27909, + "src": "12094:12:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "id": 28828, + "indexExpression": { + "id": 28826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "12107:16:24", + "subExpression": { + "id": 28825, + "name": "requestCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "12107:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12094:30:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 28829, + "name": "PendingRequestType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27899, + "src": "12127:18:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PendingRequestType_$27899_$", + "typeString": "type(enum RollDown.PendingRequestType)" + } + }, + "id": 28830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12146:17:24", + "memberName": "CANCEL_RESOLUTION", + "nodeType": "MemberAccess", + "referencedDeclaration": 27897, + "src": "12127:36:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "src": "12094:69:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "id": 28832, + "nodeType": "ExpressionStatement", + "src": "12094:69:24" + }, + { + "expression": { + "id": 28842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28833, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "12179:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28837, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12186:23:24", + "memberName": "pendingCancelResultions", + "nodeType": "MemberAccess", + "referencedDeclaration": 27921, + "src": "12179:30:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_CancelResolution_$27894_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory[] memory" + } + }, + "id": 28838, + "indexExpression": { + "id": 28836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "12210:16:24", + "subExpression": { + "id": 28835, + "name": "cancelsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28541, + "src": "12210:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12179:48:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 28839, + "name": "cancelResolutions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27931, + "src": "12230:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CancelResolution_$27894_storage_$", + "typeString": "mapping(uint256 => struct RollDown.CancelResolution storage ref)" + } + }, + "id": 28841, + "indexExpression": { + "id": 28840, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "12248:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12230:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_storage", + "typeString": "struct RollDown.CancelResolution storage ref" + } + }, + "src": "12179:79:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CancelResolution_$27894_memory_ptr", + "typeString": "struct RollDown.CancelResolution memory" + } + }, + "id": 28843, + "nodeType": "ExpressionStatement", + "src": "12179:79:24" + } + ] + } + }, + "id": 28848, + "nodeType": "IfStatement", + "src": "11748:565:24", + "trueBody": { + "id": 28816, + "nodeType": "Block", + "src": "11812:210:24", + "statements": [ + { + "expression": { + "id": 28803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28795, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "11828:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28799, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11835:5:24", + "memberName": "order", + "nodeType": "MemberAccess", + "referencedDeclaration": 27909, + "src": "11828:12:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "id": 28800, + "indexExpression": { + "id": 28798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11841:16:24", + "subExpression": { + "id": 28797, + "name": "requestCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "11841:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11828:30:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 28801, + "name": "PendingRequestType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27899, + "src": "11861:18:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PendingRequestType_$27899_$", + "typeString": "type(enum RollDown.PendingRequestType)" + } + }, + "id": 28802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11880:20:24", + "memberName": "L2_UPDATES_TO_REMOVE", + "nodeType": "MemberAccess", + "referencedDeclaration": 27898, + "src": "11861:39:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "src": "11828:72:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "id": 28804, + "nodeType": "ExpressionStatement", + "src": "11828:72:24" + }, + { + "expression": { + "id": 28814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28805, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "11916:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28809, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11923:24:24", + "memberName": "pendingL2UpdatesToRemove", + "nodeType": "MemberAccess", + "referencedDeclaration": 27925, + "src": "11916:31:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_L2UpdatesToRemove_$27889_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove memory[] memory" + } + }, + "id": 28810, + "indexExpression": { + "id": 28808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11948:27:24", + "subExpression": { + "id": 28807, + "name": "updatesToBeRemovedCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28545, + "src": "11948:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11916:60:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_memory_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 28811, + "name": "l2UpdatesToRemove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27946, + "src": "11979:17:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_L2UpdatesToRemove_$27889_storage_$", + "typeString": "mapping(uint256 => struct RollDown.L2UpdatesToRemove storage ref)" + } + }, + "id": 28813, + "indexExpression": { + "id": 28812, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11997:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11979:28:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_storage", + "typeString": "struct RollDown.L2UpdatesToRemove storage ref" + } + }, + "src": "11916:91:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L2UpdatesToRemove_$27889_memory_ptr", + "typeString": "struct RollDown.L2UpdatesToRemove memory" + } + }, + "id": 28815, + "nodeType": "ExpressionStatement", + "src": "11916:91:24" + } + ] + } + }, + "id": 28849, + "nodeType": "IfStatement", + "src": "11509:804:24", + "trueBody": { + "id": 28787, + "nodeType": "Block", + "src": "11567:175:24", + "statements": [ + { + "expression": { + "id": 28774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28766, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "11583:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28770, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11590:5:24", + "memberName": "order", + "nodeType": "MemberAccess", + "referencedDeclaration": 27909, + "src": "11583:12:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "id": 28771, + "indexExpression": { + "id": 28769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11596:16:24", + "subExpression": { + "id": 28768, + "name": "requestCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "11596:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11583:30:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 28772, + "name": "PendingRequestType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27899, + "src": "11616:18:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PendingRequestType_$27899_$", + "typeString": "type(enum RollDown.PendingRequestType)" + } + }, + "id": 28773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11635:10:24", + "memberName": "WITHDRAWAL", + "nodeType": "MemberAccess", + "referencedDeclaration": 27896, + "src": "11616:29:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "src": "11583:62:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "id": 28775, + "nodeType": "ExpressionStatement", + "src": "11583:62:24" + }, + { + "expression": { + "id": 28785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28776, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "11661:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28780, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11668:16:24", + "memberName": "pendingWithdraws", + "nodeType": "MemberAccess", + "referencedDeclaration": 27913, + "src": "11661:23:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Withdraw_$27885_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Withdraw memory[] memory" + } + }, + "id": 28781, + "indexExpression": { + "id": 28779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11685:18:24", + "subExpression": { + "id": 28778, + "name": "withdrawsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28537, + "src": "11685:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11661:43:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 28782, + "name": "withdraws", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27941, + "src": "11707:9:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Withdraw_$27885_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Withdraw storage ref)" + } + }, + "id": 28784, + "indexExpression": { + "id": 28783, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11717:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11707:20:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_storage", + "typeString": "struct RollDown.Withdraw storage ref" + } + }, + "src": "11661:66:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Withdraw_$27885_memory_ptr", + "typeString": "struct RollDown.Withdraw memory" + } + }, + "id": 28786, + "nodeType": "ExpressionStatement", + "src": "11661:66:24" + } + ] + } + }, + "id": 28850, + "nodeType": "IfStatement", + "src": "11278:1035:24", + "trueBody": { + "id": 28756, + "nodeType": "Block", + "src": "11334:169:24", + "statements": [ + { + "expression": { + "id": 28743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28735, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "11350:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28739, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11357:5:24", + "memberName": "order", + "nodeType": "MemberAccess", + "referencedDeclaration": 27909, + "src": "11350:12:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_enum$_PendingRequestType_$27899_$dyn_memory_ptr", + "typeString": "enum RollDown.PendingRequestType[] memory" + } + }, + "id": 28740, + "indexExpression": { + "id": 28738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11363:16:24", + "subExpression": { + "id": 28737, + "name": "requestCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28612, + "src": "11363:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11350:30:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 28741, + "name": "PendingRequestType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27899, + "src": "11383:18:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PendingRequestType_$27899_$", + "typeString": "type(enum RollDown.PendingRequestType)" + } + }, + "id": 28742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11402:7:24", + "memberName": "DEPOSIT", + "nodeType": "MemberAccess", + "referencedDeclaration": 27895, + "src": "11383:26:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "src": "11350:59:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PendingRequestType_$27899", + "typeString": "enum RollDown.PendingRequestType" + } + }, + "id": 28744, + "nodeType": "ExpressionStatement", + "src": "11350:59:24" + }, + { + "expression": { + "id": 28754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 28745, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "11425:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "id": 28749, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11432:15:24", + "memberName": "pendingDeposits", + "nodeType": "MemberAccess", + "referencedDeclaration": 27917, + "src": "11425:22:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Deposit_$27877_memory_ptr_$dyn_memory_ptr", + "typeString": "struct RollDown.Deposit memory[] memory" + } + }, + "id": 28750, + "indexExpression": { + "id": 28748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11448:17:24", + "subExpression": { + "id": 28747, + "name": "depositsCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28533, + "src": "11448:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11425:41:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_memory_ptr", + "typeString": "struct RollDown.Deposit memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 28751, + "name": "deposits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27936, + "src": "11469:8:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Deposit_$27877_storage_$", + "typeString": "mapping(uint256 => struct RollDown.Deposit storage ref)" + } + }, + "id": 28753, + "indexExpression": { + "id": 28752, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11478:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11469:19:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_storage", + "typeString": "struct RollDown.Deposit storage ref" + } + }, + "src": "11425:63:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Deposit_$27877_memory_ptr", + "typeString": "struct RollDown.Deposit memory" + } + }, + "id": 28755, + "nodeType": "ExpressionStatement", + "src": "11425:63:24" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 28722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 28720, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11233:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 28721, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28522, + "src": "11246:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11233:16:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 28852, + "initializationExpression": { + "assignments": [ + 28717 + ], + "declarations": [ + { + "constant": false, + "id": 28717, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "11214:9:24", + "nodeType": "VariableDeclaration", + "scope": 28852, + "src": "11206:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28716, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11206:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 28719, + "initialValue": { + "id": 28718, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28520, + "src": "11226:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11206:25:24" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 28724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11251:11:24", + "subExpression": { + "id": 28723, + "name": "requestId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28717, + "src": "11251:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 28725, + "nodeType": "ExpressionStatement", + "src": "11251:11:24" + }, + "nodeType": "ForStatement", + "src": "11201:1122:24" + }, + { + "expression": { + "id": 28853, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28530, + "src": "12340:6:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update memory" + } + }, + "functionReturnParameters": 28527, + "id": 28854, + "nodeType": "Return", + "src": "12333:13:24" + } + ] + }, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPendingRequests", + "nameLocation": "9543:18:24", + "parameters": { + "id": 28523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28520, + "mutability": "mutable", + "name": "start", + "nameLocation": "9579:5:24", + "nodeType": "VariableDeclaration", + "scope": 28856, + "src": "9571:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9571:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 28522, + "mutability": "mutable", + "name": "end", + "nameLocation": "9602:3:24", + "nodeType": "VariableDeclaration", + "scope": 28856, + "src": "9594:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9594:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9561:50:24" + }, + "returnParameters": { + "id": 28527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28526, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 28856, + "src": "9635:15:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_memory_ptr", + "typeString": "struct RollDown.L1Update" + }, + "typeName": { + "id": 28525, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 28524, + "name": "L1Update", + "nameLocations": [ + "9635:8:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 27926, + "src": "9635:8:24" + }, + "referencedDeclaration": 27926, + "src": "9635:8:24", + "typeDescriptions": { + "typeIdentifier": "t_struct$_L1Update_$27926_storage_ptr", + "typeString": "struct RollDown.L1Update" + } + }, + "visibility": "internal" + } + ], + "src": "9633:18:24" + }, + "scope": 28857, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "RollDown", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 28857 + ], + "name": "RollDown", + "nameLocation": "203:8:24", + "scope": 28858, + "usedErrors": [], + "usedEvents": [ + 27831, + 27841, + 27849, + 27856, + 27864, + 27870 + ] + } + ], + "license": "MIT" + }, + "id": 24 +} \ No newline at end of file diff --git a/rollup-updater/src/index.ts b/rollup-updater/src/index.ts index f367cfc71..c832db80d 100644 --- a/rollup-updater/src/index.ts +++ b/rollup-updater/src/index.ts @@ -1,5 +1,6 @@ import { Mangata } from "@mangata-finance/sdk"; import "dotenv/config"; +import "@mangata-finance/types" import { TestClient, WalletClient, createPublicClient, createWalletClient, webSocket } from "viem"; import { privateKeyToAccount } from "viem/accounts"; import { goerli } from "viem/chains"; @@ -7,7 +8,8 @@ import { defineChain } from "viem"; import { ApiPromise } from '@polkadot/api'; import { decodeAbiParameters } from "viem"; import { eigenContractAbi } from "./eigenAbi.js"; -import * as fs from 'fs'; +import "@mangata-finance/types" +import rolldownAbi from './RollDown.json' assert {type: 'json'}; type ContractAddress = `0x${string}`; @@ -22,6 +24,7 @@ const verbose = process.env.VERBOSE; async function sendUpdateToL1(api: ApiPromise, walletClient: any, abi: any, blockNumber: number) { + console.log(`NUMBER ${blockNumber} `) let blockHash = await api.rpc.chain.getBlockHash(blockNumber); let pendingUpdates = await (api.rpc as any).rolldown.pending_updates(blockHash); let l2Update = decodeAbiParameters(abi.find((e: any) => e.name === "update_l1_from_l2")!.inputs, pendingUpdates.toHex()); @@ -29,8 +32,7 @@ async function sendUpdateToL1(api: ApiPromise, walletClient: any, abi: any, bloc let reqCount = l2Update[0].cancles.length + l2Update[0].results.length; if (verbose) { - console.log("l2Update", JSON.stringify(l2Update, null, 2)); - + console.log(`l2Update: ${JSON.stringify(l2Update, null, 2)}`); } if (reqCount > 0) { const storageHash = await walletClient.writeContract({ @@ -50,7 +52,7 @@ async function sendUpdateToL1(api: ApiPromise, walletClient: any, abi: any, bloc async function main() { const api = await Mangata.instance([process.env.MANGATA_NODE_URL!]).api(); - let abi = JSON.parse(fs.readFileSync('./../rolldown-contract/out/rolldown.sol/RollDown.json', 'utf8'))["abi"]; + let abi = rolldownAbi.abi; console.log("api", api.isConnected); @@ -101,8 +103,7 @@ async function main() { if (finalizationSource === "relay") { unwatch = await api.rpc.chain.subscribeFinalizedHeads(async (header) => { console.log(`Chain is at block: #${header.number}`); - await sendUpdateToL1(api, walletClient, abi, header.number.toNumber()); - let txHash = await sendUpdateToL1(api, walletClient, abi, 0); + let txHash = await sendUpdateToL1(api, walletClient, abi, header.number.toNumber()); if (txHash) { let result = await publicClient.waitForTransactionReceipt({ hash: txHash }); console.log(`#${result.blockNumber} ${result.transactionHash} : ${result.status}`); diff --git a/rollup-updater/tsconfig.json b/rollup-updater/tsconfig.json index c2b4647de..917e21986 100644 --- a/rollup-updater/tsconfig.json +++ b/rollup-updater/tsconfig.json @@ -10,6 +10,7 @@ "allowJs": true, "outDir": "build", "allowSyntheticDefaultImports": true, + "resolveJsonModule": true, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true,