arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
hermez-node/eth/contracts/withdrawdelayer/WithdrawalDelayer.go
eth/contracts/withdrawdelayer/WithdrawalDelayer.goRaw
   1// Code generated - DO NOT EDIT.
   2// This file is a generated binding and any manual changes will be lost.
   3
   4package WithdrawalDelayer
   5
   6import (
   7	"math/big"
   8	"strings"
   9
  10	ethereum "github.com/ethereum/go-ethereum"
  11	"github.com/ethereum/go-ethereum/accounts/abi"
  12	"github.com/ethereum/go-ethereum/accounts/abi/bind"
  13	"github.com/ethereum/go-ethereum/common"
  14	"github.com/ethereum/go-ethereum/core/types"
  15	"github.com/ethereum/go-ethereum/event"
  16	"github.com/hermeznetwork/tracerr"
  17)
  18
  19// Reference imports to suppress errors if they are not otherwise used.
  20var (
  21	_ = big.NewInt
  22	_ = strings.NewReader
  23	_ = ethereum.NotFound
  24	_ = bind.Bind
  25	_ = common.Big1
  26	_ = types.BloomLookup
  27	_ = event.NewSubscription
  28)
  29
  30// WithdrawalDelayerABI is the input ABI used to generate the binding from.
  31const WithdrawalDelayerABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint192\",\"name\":\"amount\",\"type\":\"uint192\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"depositTimestamp\",\"type\":\"uint64\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EmergencyModeEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EscapeHatchWithdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newHermezGovernanceDAOAddress\",\"type\":\"address\"}],\"name\":\"NewHermezGovernanceDAOAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newHermezKeeperAddress\",\"type\":\"address\"}],\"name\":\"NewHermezKeeperAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newWhiteHackGroupAddress\",\"type\":\"address\"}],\"name\":\"NewWhiteHackGroupAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"withdrawalDelay\",\"type\":\"uint64\"}],\"name\":\"NewWithdrawalDelay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint192\",\"name\":\"amount\",\"type\":\"uint192\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_EMERGENCY_MODE_TIME\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_WITHDRAWAL_DELAY\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_newWithdrawalDelay\",\"type\":\"uint64\"}],\"name\":\"changeWithdrawalDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"_amount\",\"type\":\"uint192\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"depositInfo\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"amount\",\"type\":\"uint192\"},{\"internalType\":\"uint64\",\"name\":\"depositTimestamp\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableEmergencyMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"escapeHatchWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEmergencyModeStartingTime\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getHermezGovernanceDAOAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getHermezKeeperAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWhiteHackGroupAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWithdrawalDelay\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hermezRollupAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isEmergencyMode\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"setHermezGovernanceDAOAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"setHermezKeeperAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"setWhiteHackGroupAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"withdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_initialWithdrawalDelay\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_initialHermezRollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_initialHermezKeeperAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_initialHermezGovernanceDAOAddress\",\"type\":\"address\"},{\"internalType\":\"addresspayable\",\"name\":\"_initialWhiteHackGroupAddress\",\"type\":\"address\"}],\"name\":\"withdrawalDelayerInitializer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
  32
  33// WithdrawalDelayerBin is the compiled bytecode used for deploying new contracts.
  34var WithdrawalDelayerBin = "0x608060405234801561001057600080fd5b50611be6806100206000396000f3fe60806040526004361061011f5760003560e01c8063668cdd67116100a0578063b4b8e39d11610064578063b4b8e39d14610405578063c5b1c7d01461041a578063cfc0b6411461042f578063d82b217c1461046f578063de35f282146104a25761011f565b8063668cdd67146103345780637fd6b10214610349578063a238f9df1461038c578063acfd6ea8146103bd578063ae7efbbd146103f05761011f565b8063305887f9116100e7578063305887f91461022057806336e566ed146102355780633d4dff7b1461028f578063493b0170146102e4578063580fc6111461031f5761011f565b806303160940146101245780630a4db01b1461015e5780630e670af5146101935780630fd266d7146101c657806320a194b8146101f7575b600080fd5b34801561013057600080fd5b506101396104dd565b604080516fffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561016a57600080fd5b506101916004803603602081101561018157600080fd5b50356001600160a01b03166104ec565b005b34801561019f57600080fd5b50610191600480360360208110156101b657600080fd5b50356001600160401b031661058f565b3480156101d257600080fd5b506101db6106bf565b604080516001600160a01b039092168252519081900360200190f35b34801561020357600080fd5b5061020c6106ce565b604080519115158252519081900360200190f35b34801561022c57600080fd5b506101db6106de565b34801561024157600080fd5b50610191600480360360a081101561025857600080fd5b506001600160401b03813516906001600160a01b0360208201358116916040810135821691606082013581169160800135166106ed565b34801561029b57600080fd5b506102b9600480360360208110156102b257600080fd5b5035610809565b604080516001600160c01b0390931683526001600160401b0390911660208301528051918290030190f35b3480156102f057600080fd5b506102b96004803603604081101561030757600080fd5b506001600160a01b0381358116916020013516610836565b34801561032b57600080fd5b506101db6108c7565b34801561034057600080fd5b506101396108d6565b34801561035557600080fd5b506101916004803603606081101561036c57600080fd5b506001600160a01b038135811691602081013590911690604001356108ec565b34801561039857600080fd5b506103a1610af2565b604080516001600160401b039092168252519081900360200190f35b3480156103c957600080fd5b50610191600480360360208110156103e057600080fd5b50356001600160a01b0316610af9565b3480156103fc57600080fd5b506101db610b9c565b34801561041157600080fd5b506103a1610bab565b34801561042657600080fd5b50610191610bb2565b6101916004803603606081101561044557600080fd5b5080356001600160a01b0390811691602081013590911690604001356001600160c01b0316610cae565b34801561047b57600080fd5b506101916004803603602081101561049257600080fd5b50356001600160a01b0316611060565b3480156104ae57600080fd5b50610191600480360360408110156104c557600080fd5b506001600160a01b0381358116916020013516611103565b6065546001600160401b031690565b6067546001600160a01b031633146105355760405162461bcd60e51b815260040180806020018281038252603a815260200180611b20603a913960400191505060405180910390fd5b606780546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f284ca073b8bdde2195ae98779277678773a99d7739e5f0477dc19a03fc689011916020908290030190a150565b6068546001600160a01b03163314806105b257506069546001600160a01b031633145b610603576040805162461bcd60e51b815260206004820152601c60248201527f4f6e6c79206865726d657a206b6565706572206f7220726f6c6c757000000000604482015290519081900360640190fd5b621275006001600160401b0382161115610664576040805162461bcd60e51b815260206004820152601c60248201527f45786365656473204d41585f5749544844524157414c5f44454c415900000000604482015290519081900360640190fd5b6065805467ffffffffffffffff19166001600160401b03838116919091179182905560408051929091168252517f6b3670ab51e04a9da086741e5fd1eb36ffaf1d661a15330c528e1f3e0c8722d7916020908290030190a150565b6069546001600160a01b031681565b606854600160a01b900460ff1690565b6068546001600160a01b031690565b600054610100900460ff1680610706575061070661135d565b80610714575060005460ff16155b61074f5760405162461bcd60e51b815260040180806020018281038252602e8152602001806119fb602e913960400191505060405180910390fd5b600054610100900460ff1615801561077a576000805460ff1961ff0019909116610100171660011790555b610782611363565b6065805467ffffffffffffffff19166001600160401b038816179055606980546001600160a01b03199081166001600160a01b0388811691909117909255606880546066805484168886161790556067805484168786161790559091169186169190911760ff60a01b191690558015610801576000805461ff00191690555b505050505050565b606a602052600090815260409020546001600160c01b03811690600160c01b90046001600160401b031682565b60008061084161176a565b505060408051606094851b6001600160601b03199081166020808401919091529490951b909416603485015280518085036028018152604885018083528151918501919091206000908152606a9094529281902060888501909152546001600160c01b03811692839052600160c01b90046001600160401b031660689093018390525091565b6066546001600160a01b031690565b606554600160401b90046001600160401b031690565b60335460ff16610943576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6033805460ff19169055606854600160a01b900460ff166109955760405162461bcd60e51b81526004018080602001828103825260348152602001806118816034913960400191505060405180910390fd5b6067546001600160a01b03163314806109b857506066546001600160a01b031633145b6109f35760405162461bcd60e51b815260040180806020018281038252603d815260200180611997603d913960400191505060405180910390fd5b6067546001600160a01b0316331415610a63576065546001600160401b03600160401b909104811662eff100018116429091161015610a635760405162461bcd60e51b81526004018080602001828103825260448152602001806118e46044913960600191505060405180910390fd5b6001600160a01b038216610a8057610a7b8382611412565b610a8b565b610a8b8284836114a7565b816001600160a01b0316836001600160a01b0316336001600160a01b03167fde200220117ba95c9a6c4a1a13bb06b0b7be90faa85c8fb4576630119f891693846040518082815260200191505060405180910390a450506033805460ff1916600117905550565b6212750081565b6066546001600160a01b03163314610b425760405162461bcd60e51b81526004018080602001828103825260418152602001806117aa6041913960600191505060405180910390fd5b606680546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f03683be8debd93f8f5ff23dd03419bfcb9b8287a1868b0f130d858f03c3a08a1916020908290030190a150565b6067546001600160a01b031690565b62eff10081565b6068546001600160a01b03163314610bfb5760405162461bcd60e51b8152600401808060200182810382526033815260200180611aed6033913960400191505060405180910390fd5b606854600160a01b900460ff1615610c445760405162461bcd60e51b815260040180806020018281038252603781526020018061184a6037913960400191505060405180910390fd5b6068805460ff60a01b1916600160a01b179055606580546001600160401b034216600160401b026fffffffffffffffff0000000000000000199091161790556040517f2064d51aa5a8bd67928c7675e267e05c67ad5adf7c9098d0a602d01f36fda9c590600090a1565b60335460ff16610d05576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6033805460ff191690556069546001600160a01b03163314610d585760405162461bcd60e51b81526004018080602001828103825260278152602001806119d46027913960400191505060405180910390fd5b3415610df0576001600160a01b03821615610da45760405162461bcd60e51b815260040180806020018281038252602f8152602001806118b5602f913960400191505060405180910390fd5b34816001600160c01b031614610deb5760405162461bcd60e51b81526004018080602001828103825260288152602001806117826028913960400191505060405180910390fd5b611043565b60695460408051636eb1769f60e11b81526001600160a01b03928316600482015230602482015290516001600160c01b0384169285169163dd62ed3e916044808301926020929190829003018186803b158015610e4c57600080fd5b505afa158015610e60573d6000803e3d6000fd5b505050506040513d6020811015610e7657600080fd5b50511015610eb55760405162461bcd60e51b8152600401808060200182810382526030815260200180611b5a6030913960400191505060405180910390fd5b60006060836001600160a01b0316604051806060016040528060258152602001611825602591398051602091820120606954604080516001600160a01b0390921660248301523060448301526001600160c01b038816606480840191909152815180840390910181526084909201815292810180516001600160e01b03166001600160e01b031990931692909217825291518251909182918083835b60208310610f705780518252601f199092019160209182019101610f51565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610fd2576040519150601f19603f3d011682016040523d82523d6000602084013e610fd7565b606091505b5091509150818015611005575080511580611005575080806020019051602081101561100257600080fd5b50515b6110405760405162461bcd60e51b8152600401808060200182810382526031815260200180611a296031913960400191505060405180910390fd5b50505b61104e83838361162b565b50506033805460ff1916600117905550565b6068546001600160a01b031633146110a95760405162461bcd60e51b815260040180806020018281038252603d815260200180611928603d913960400191505060405180910390fd5b606880546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517fc1e9be84fce652abec6a6944f7ec5bbb40de18caa44c285b05a0de7e3ad9d016916020908290030190a150565b60335460ff1661115a576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6033805460ff19169055606854600160a01b900460ff16156111ad5760405162461bcd60e51b815260040180806020018281038252602a815260200180611a5a602a913960400191505060405180910390fd5b60408051606084811b6001600160601b03199081166020808501919091529185901b16603483015282518083036028018152604890920183528151918101919091206000818152606a909252919020546001600160c01b0316806112425760405162461bcd60e51b8152600401808060200182810382526027815260200180611b8a6027913960400191505060405180910390fd5b6065546000838152606a60205260409020546001600160401b03918216600160c01b90910482160181164290911610156112ad5760405162461bcd60e51b8152600401808060200182810382526035815260200180611ab86035913960400191505060405180910390fd5b6000828152606a60205260408120556001600160a01b0383166112e2576112dd84826001600160c01b0316611412565b6112f6565b6112f68385836001600160c01b03166114a7565b836001600160a01b0316836001600160a01b03167f72608e45b52a95a12c2ac7f15ff53f92fc9572c9d84b6e6b5d7f0f7826cf32718360405180826001600160c01b0316815260200191505060405180910390a350506033805460ff191660011790555050565b303b1590565b600054610100900460ff168061137c575061137c61135d565b8061138a575060005460ff16155b6113c55760405162461bcd60e51b815260040180806020018281038252602e8152602001806119fb602e913960400191505060405180910390fd5b600054610100900460ff161580156113f0576000805460ff1961ff0019909116610100171660011790555b6033805460ff19166001179055801561140f576000805461ff00191690555b50565b6040516000906001600160a01b0384169083908381818185875af1925050503d806000811461145d576040519150601f19603f3d011682016040523d82523d6000602084013e611462565b606091505b50509050806114a25760405162461bcd60e51b81526004018080602001828103825260328152602001806119656032913960400191505060405180910390fd5b505050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b602083106115545780518252601f199092019160209182019101611535565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146115b6576040519150601f19603f3d011682016040523d82523d6000602084013e6115bb565b606091505b50915091508180156115e95750805115806115e957508080602001905160208110156115e657600080fd5b50515b6116245760405162461bcd60e51b815260040180806020018281038252603a8152602001806117eb603a913960400191505060405180910390fd5b5050505050565b60408051606085811b6001600160601b03199081166020808501919091529186901b16603483015282518083036028018152604890920183528151918101919091206000818152606a909252919020546001600160c01b0390811683810191821610156116c95760405162461bcd60e51b8152600401808060200182810382526034815260200180611a846034913960400191505060405180910390fd5b6000828152606a602090815260409182902080546001600160401b03428116600160c01b9081026001600160c01b038089166001600160c01b03199095169490941784161793849055855192891683529092049091169181019190915281516001600160a01b0380881693908916927f41219b99485f78192a5b9b1be28c7d53c3a2bdbe7900ae40c79fae8d9d6108fd929081900390910190a35050505050565b60408051808201909152600080825260208201529056fe5769746864726177616c44656c617965723a3a6465706f7369743a2057524f4e475f414d4f554e545769746864726177616c44656c617965723a3a7365744865726d657a476f7665726e616e636544414f416464726573733a204f4e4c595f474f5645524e414e43455769746864726177616c44656c617965723a3a5f746f6b656e5769746864726177616c3a20544f4b454e5f5452414e534645525f4641494c45447472616e7366657246726f6d28616464726573732c616464726573732c75696e74323536295769746864726177616c44656c617965723a3a656e61626c65456d657267656e63794d6f64653a20414c52454144595f454e41424c45445769746864726177616c44656c617965723a3a65736361706548617463685769746864726177616c3a204f4e4c595f454d4f44455769746864726177616c44656c617965723a3a6465706f7369743a2057524f4e475f544f4b454e5f414444524553535769746864726177616c44656c617965723a3a65736361706548617463685769746864726177616c3a204e4f5f4d41585f454d455247454e43595f4d4f44455f54494d455769746864726177616c44656c617965723a3a7365744865726d657a476f7665726e616e636544414f416464726573733a204f4e4c595f4b45455045525769746864726177616c44656c617965723a3a5f6574685769746864726177616c3a205452414e534645525f4641494c45445769746864726177616c44656c617965723a3a65736361706548617463685769746864726177616c3a204f4e4c595f474f5645524e414e43455f5748475769746864726177616c44656c617965723a3a6465706f7369743a204f4e4c595f524f4c4c5550436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645769746864726177616c44656c617965723a3a6465706f7369743a20544f4b454e5f5452414e534645525f4641494c45445769746864726177616c44656c617965723a3a6465706f7369743a20454d455247454e43595f4d4f44455769746864726177616c44656c617965723a3a5f70726f636573734465706f7369743a204445504f5349545f4f564552464c4f575769746864726177616c44656c617965723a3a7769746864726177616c3a205749544844524157414c5f4e4f545f414c4c4f5745445769746864726177616c44656c617965723a3a656e61626c65456d657267656e63794d6f64653a204f4e4c595f4b45455045525769746864726177616c44656c617965723a3a7365744865726d657a476f7665726e616e636544414f416464726573733a204f4e4c595f5748475769746864726177616c44656c617965723a3a6465706f7369743a204e4f545f454e4f5547485f414c4c4f57414e43455769746864726177616c44656c617965723a3a7769746864726177616c3a204e4f5f46554e4453a2646970667358221220dc3cbf4fcef393039db1a6c32d7d5ec23383ea60dc16dd54e40defffc4d4d55564736f6c634300060c0033"
  35
  36// DeployWithdrawalDelayer deploys a new Ethereum contract, binding an instance of WithdrawalDelayer to it.
  37func DeployWithdrawalDelayer(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *WithdrawalDelayer, error) {
  38	parsed, err := abi.JSON(strings.NewReader(WithdrawalDelayerABI))
  39	if err != nil {
  40		return common.Address{}, nil, nil, tracerr.Wrap(err)
  41	}
  42
  43	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(WithdrawalDelayerBin), backend)
  44	if err != nil {
  45		return common.Address{}, nil, nil, tracerr.Wrap(err)
  46	}
  47	return address, tx, &WithdrawalDelayer{WithdrawalDelayerCaller: WithdrawalDelayerCaller{contract: contract}, WithdrawalDelayerTransactor: WithdrawalDelayerTransactor{contract: contract}, WithdrawalDelayerFilterer: WithdrawalDelayerFilterer{contract: contract}}, nil
  48}
  49
  50// WithdrawalDelayer is an auto generated Go binding around an Ethereum contract.
  51type WithdrawalDelayer struct {
  52	WithdrawalDelayerCaller     // Read-only binding to the contract
  53	WithdrawalDelayerTransactor // Write-only binding to the contract
  54	WithdrawalDelayerFilterer   // Log filterer for contract events
  55}
  56
  57// WithdrawalDelayerCaller is an auto generated read-only Go binding around an Ethereum contract.
  58type WithdrawalDelayerCaller struct {
  59	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  60}
  61
  62// WithdrawalDelayerTransactor is an auto generated write-only Go binding around an Ethereum contract.
  63type WithdrawalDelayerTransactor struct {
  64	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  65}
  66
  67// WithdrawalDelayerFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  68type WithdrawalDelayerFilterer struct {
  69	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  70}
  71
  72// WithdrawalDelayerSession is an auto generated Go binding around an Ethereum contract,
  73// with pre-set call and transact options.
  74type WithdrawalDelayerSession struct {
  75	Contract     *WithdrawalDelayer // Generic contract binding to set the session for
  76	CallOpts     bind.CallOpts      // Call options to use throughout this session
  77	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
  78}
  79
  80// WithdrawalDelayerCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  81// with pre-set call options.
  82type WithdrawalDelayerCallerSession struct {
  83	Contract *WithdrawalDelayerCaller // Generic contract caller binding to set the session for
  84	CallOpts bind.CallOpts            // Call options to use throughout this session
  85}
  86
  87// WithdrawalDelayerTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  88// with pre-set transact options.
  89type WithdrawalDelayerTransactorSession struct {
  90	Contract     *WithdrawalDelayerTransactor // Generic contract transactor binding to set the session for
  91	TransactOpts bind.TransactOpts            // Transaction auth options to use throughout this session
  92}
  93
  94// WithdrawalDelayerRaw is an auto generated low-level Go binding around an Ethereum contract.
  95type WithdrawalDelayerRaw struct {
  96	Contract *WithdrawalDelayer // Generic contract binding to access the raw methods on
  97}
  98
  99// WithdrawalDelayerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
 100type WithdrawalDelayerCallerRaw struct {
 101	Contract *WithdrawalDelayerCaller // Generic read-only contract binding to access the raw methods on
 102}
 103
 104// WithdrawalDelayerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 105type WithdrawalDelayerTransactorRaw struct {
 106	Contract *WithdrawalDelayerTransactor // Generic write-only contract binding to access the raw methods on
 107}
 108
 109// NewWithdrawalDelayer creates a new instance of WithdrawalDelayer, bound to a specific deployed contract.
 110func NewWithdrawalDelayer(address common.Address, backend bind.ContractBackend) (*WithdrawalDelayer, error) {
 111	contract, err := bindWithdrawalDelayer(address, backend, backend, backend)
 112	if err != nil {
 113		return nil, tracerr.Wrap(err)
 114	}
 115	return &WithdrawalDelayer{WithdrawalDelayerCaller: WithdrawalDelayerCaller{contract: contract}, WithdrawalDelayerTransactor: WithdrawalDelayerTransactor{contract: contract}, WithdrawalDelayerFilterer: WithdrawalDelayerFilterer{contract: contract}}, nil
 116}
 117
 118// NewWithdrawalDelayerCaller creates a new read-only instance of WithdrawalDelayer, bound to a specific deployed contract.
 119func NewWithdrawalDelayerCaller(address common.Address, caller bind.ContractCaller) (*WithdrawalDelayerCaller, error) {
 120	contract, err := bindWithdrawalDelayer(address, caller, nil, nil)
 121	if err != nil {
 122		return nil, tracerr.Wrap(err)
 123	}
 124	return &WithdrawalDelayerCaller{contract: contract}, nil
 125}
 126
 127// NewWithdrawalDelayerTransactor creates a new write-only instance of WithdrawalDelayer, bound to a specific deployed contract.
 128func NewWithdrawalDelayerTransactor(address common.Address, transactor bind.ContractTransactor) (*WithdrawalDelayerTransactor, error) {
 129	contract, err := bindWithdrawalDelayer(address, nil, transactor, nil)
 130	if err != nil {
 131		return nil, tracerr.Wrap(err)
 132	}
 133	return &WithdrawalDelayerTransactor{contract: contract}, nil
 134}
 135
 136// NewWithdrawalDelayerFilterer creates a new log filterer instance of WithdrawalDelayer, bound to a specific deployed contract.
 137func NewWithdrawalDelayerFilterer(address common.Address, filterer bind.ContractFilterer) (*WithdrawalDelayerFilterer, error) {
 138	contract, err := bindWithdrawalDelayer(address, nil, nil, filterer)
 139	if err != nil {
 140		return nil, tracerr.Wrap(err)
 141	}
 142	return &WithdrawalDelayerFilterer{contract: contract}, nil
 143}
 144
 145// bindWithdrawalDelayer binds a generic wrapper to an already deployed contract.
 146func bindWithdrawalDelayer(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 147	parsed, err := abi.JSON(strings.NewReader(WithdrawalDelayerABI))
 148	if err != nil {
 149		return nil, tracerr.Wrap(err)
 150	}
 151	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 152}
 153
 154// Call invokes the (constant) contract method with params as input values and
 155// sets the output to result. The result type might be a single field for simple
 156// returns, a slice of interfaces for anonymous returns and a struct for named
 157// returns.
 158func (_WithdrawalDelayer *WithdrawalDelayerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 159	return _WithdrawalDelayer.Contract.WithdrawalDelayerCaller.contract.Call(opts, result, method, params...)
 160}
 161
 162// Transfer initiates a plain transaction to move funds to the contract, calling
 163// its default method if one is available.
 164func (_WithdrawalDelayer *WithdrawalDelayerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 165	return _WithdrawalDelayer.Contract.WithdrawalDelayerTransactor.contract.Transfer(opts)
 166}
 167
 168// Transact invokes the (paid) contract method with params as input values.
 169func (_WithdrawalDelayer *WithdrawalDelayerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 170	return _WithdrawalDelayer.Contract.WithdrawalDelayerTransactor.contract.Transact(opts, method, params...)
 171}
 172
 173// Call invokes the (constant) contract method with params as input values and
 174// sets the output to result. The result type might be a single field for simple
 175// returns, a slice of interfaces for anonymous returns and a struct for named
 176// returns.
 177func (_WithdrawalDelayer *WithdrawalDelayerCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 178	return _WithdrawalDelayer.Contract.contract.Call(opts, result, method, params...)
 179}
 180
 181// Transfer initiates a plain transaction to move funds to the contract, calling
 182// its default method if one is available.
 183func (_WithdrawalDelayer *WithdrawalDelayerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 184	return _WithdrawalDelayer.Contract.contract.Transfer(opts)
 185}
 186
 187// Transact invokes the (paid) contract method with params as input values.
 188func (_WithdrawalDelayer *WithdrawalDelayerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 189	return _WithdrawalDelayer.Contract.contract.Transact(opts, method, params...)
 190}
 191
 192// MAXEMERGENCYMODETIME is a free data retrieval call binding the contract method 0xb4b8e39d.
 193//
 194// Solidity: function MAX_EMERGENCY_MODE_TIME() view returns(uint64)
 195func (_WithdrawalDelayer *WithdrawalDelayerCaller) MAXEMERGENCYMODETIME(opts *bind.CallOpts) (uint64, error) {
 196	var (
 197		ret0 = new(uint64)
 198	)
 199	out := ret0
 200	err := _WithdrawalDelayer.contract.Call(opts, out, "MAX_EMERGENCY_MODE_TIME")
 201	return *ret0, tracerr.Wrap(err)
 202}
 203
 204// MAXEMERGENCYMODETIME is a free data retrieval call binding the contract method 0xb4b8e39d.
 205//
 206// Solidity: function MAX_EMERGENCY_MODE_TIME() view returns(uint64)
 207func (_WithdrawalDelayer *WithdrawalDelayerSession) MAXEMERGENCYMODETIME() (uint64, error) {
 208	return _WithdrawalDelayer.Contract.MAXEMERGENCYMODETIME(&_WithdrawalDelayer.CallOpts)
 209}
 210
 211// MAXEMERGENCYMODETIME is a free data retrieval call binding the contract method 0xb4b8e39d.
 212//
 213// Solidity: function MAX_EMERGENCY_MODE_TIME() view returns(uint64)
 214func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) MAXEMERGENCYMODETIME() (uint64, error) {
 215	return _WithdrawalDelayer.Contract.MAXEMERGENCYMODETIME(&_WithdrawalDelayer.CallOpts)
 216}
 217
 218// MAXWITHDRAWALDELAY is a free data retrieval call binding the contract method 0xa238f9df.
 219//
 220// Solidity: function MAX_WITHDRAWAL_DELAY() view returns(uint64)
 221func (_WithdrawalDelayer *WithdrawalDelayerCaller) MAXWITHDRAWALDELAY(opts *bind.CallOpts) (uint64, error) {
 222	var (
 223		ret0 = new(uint64)
 224	)
 225	out := ret0
 226	err := _WithdrawalDelayer.contract.Call(opts, out, "MAX_WITHDRAWAL_DELAY")
 227	return *ret0, tracerr.Wrap(err)
 228}
 229
 230// MAXWITHDRAWALDELAY is a free data retrieval call binding the contract method 0xa238f9df.
 231//
 232// Solidity: function MAX_WITHDRAWAL_DELAY() view returns(uint64)
 233func (_WithdrawalDelayer *WithdrawalDelayerSession) MAXWITHDRAWALDELAY() (uint64, error) {
 234	return _WithdrawalDelayer.Contract.MAXWITHDRAWALDELAY(&_WithdrawalDelayer.CallOpts)
 235}
 236
 237// MAXWITHDRAWALDELAY is a free data retrieval call binding the contract method 0xa238f9df.
 238//
 239// Solidity: function MAX_WITHDRAWAL_DELAY() view returns(uint64)
 240func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) MAXWITHDRAWALDELAY() (uint64, error) {
 241	return _WithdrawalDelayer.Contract.MAXWITHDRAWALDELAY(&_WithdrawalDelayer.CallOpts)
 242}
 243
 244// DepositInfo is a free data retrieval call binding the contract method 0x493b0170.
 245//
 246// Solidity: function depositInfo(address _owner, address _token) view returns(uint192, uint64)
 247func (_WithdrawalDelayer *WithdrawalDelayerCaller) DepositInfo(opts *bind.CallOpts, _owner common.Address, _token common.Address) (*big.Int, uint64, error) {
 248	var (
 249		ret0 = new(*big.Int)
 250		ret1 = new(uint64)
 251	)
 252	out := &[]interface{}{
 253		ret0,
 254		ret1,
 255	}
 256	err := _WithdrawalDelayer.contract.Call(opts, out, "depositInfo", _owner, _token)
 257	return *ret0, *ret1, tracerr.Wrap(err)
 258}
 259
 260// DepositInfo is a free data retrieval call binding the contract method 0x493b0170.
 261//
 262// Solidity: function depositInfo(address _owner, address _token) view returns(uint192, uint64)
 263func (_WithdrawalDelayer *WithdrawalDelayerSession) DepositInfo(_owner common.Address, _token common.Address) (*big.Int, uint64, error) {
 264	return _WithdrawalDelayer.Contract.DepositInfo(&_WithdrawalDelayer.CallOpts, _owner, _token)
 265}
 266
 267// DepositInfo is a free data retrieval call binding the contract method 0x493b0170.
 268//
 269// Solidity: function depositInfo(address _owner, address _token) view returns(uint192, uint64)
 270func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) DepositInfo(_owner common.Address, _token common.Address) (*big.Int, uint64, error) {
 271	return _WithdrawalDelayer.Contract.DepositInfo(&_WithdrawalDelayer.CallOpts, _owner, _token)
 272}
 273
 274// Deposits is a free data retrieval call binding the contract method 0x3d4dff7b.
 275//
 276// Solidity: function deposits(bytes32 ) view returns(uint192 amount, uint64 depositTimestamp)
 277func (_WithdrawalDelayer *WithdrawalDelayerCaller) Deposits(opts *bind.CallOpts, arg0 [32]byte) (struct {
 278	Amount           *big.Int
 279	DepositTimestamp uint64
 280}, error) {
 281	ret := new(struct {
 282		Amount           *big.Int
 283		DepositTimestamp uint64
 284	})
 285	out := ret
 286	err := _WithdrawalDelayer.contract.Call(opts, out, "deposits", arg0)
 287	return *ret, tracerr.Wrap(err)
 288}
 289
 290// Deposits is a free data retrieval call binding the contract method 0x3d4dff7b.
 291//
 292// Solidity: function deposits(bytes32 ) view returns(uint192 amount, uint64 depositTimestamp)
 293func (_WithdrawalDelayer *WithdrawalDelayerSession) Deposits(arg0 [32]byte) (struct {
 294	Amount           *big.Int
 295	DepositTimestamp uint64
 296}, error) {
 297	return _WithdrawalDelayer.Contract.Deposits(&_WithdrawalDelayer.CallOpts, arg0)
 298}
 299
 300// Deposits is a free data retrieval call binding the contract method 0x3d4dff7b.
 301//
 302// Solidity: function deposits(bytes32 ) view returns(uint192 amount, uint64 depositTimestamp)
 303func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) Deposits(arg0 [32]byte) (struct {
 304	Amount           *big.Int
 305	DepositTimestamp uint64
 306}, error) {
 307	return _WithdrawalDelayer.Contract.Deposits(&_WithdrawalDelayer.CallOpts, arg0)
 308}
 309
 310// GetEmergencyModeStartingTime is a free data retrieval call binding the contract method 0x668cdd67.
 311//
 312// Solidity: function getEmergencyModeStartingTime() view returns(uint128)
 313func (_WithdrawalDelayer *WithdrawalDelayerCaller) GetEmergencyModeStartingTime(opts *bind.CallOpts) (*big.Int, error) {
 314	var (
 315		ret0 = new(*big.Int)
 316	)
 317	out := ret0
 318	err := _WithdrawalDelayer.contract.Call(opts, out, "getEmergencyModeStartingTime")
 319	return *ret0, tracerr.Wrap(err)
 320}
 321
 322// GetEmergencyModeStartingTime is a free data retrieval call binding the contract method 0x668cdd67.
 323//
 324// Solidity: function getEmergencyModeStartingTime() view returns(uint128)
 325func (_WithdrawalDelayer *WithdrawalDelayerSession) GetEmergencyModeStartingTime() (*big.Int, error) {
 326	return _WithdrawalDelayer.Contract.GetEmergencyModeStartingTime(&_WithdrawalDelayer.CallOpts)
 327}
 328
 329// GetEmergencyModeStartingTime is a free data retrieval call binding the contract method 0x668cdd67.
 330//
 331// Solidity: function getEmergencyModeStartingTime() view returns(uint128)
 332func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) GetEmergencyModeStartingTime() (*big.Int, error) {
 333	return _WithdrawalDelayer.Contract.GetEmergencyModeStartingTime(&_WithdrawalDelayer.CallOpts)
 334}
 335
 336// GetHermezGovernanceDAOAddress is a free data retrieval call binding the contract method 0x580fc611.
 337//
 338// Solidity: function getHermezGovernanceDAOAddress() view returns(address)
 339func (_WithdrawalDelayer *WithdrawalDelayerCaller) GetHermezGovernanceDAOAddress(opts *bind.CallOpts) (common.Address, error) {
 340	var (
 341		ret0 = new(common.Address)
 342	)
 343	out := ret0
 344	err := _WithdrawalDelayer.contract.Call(opts, out, "getHermezGovernanceDAOAddress")
 345	return *ret0, tracerr.Wrap(err)
 346}
 347
 348// GetHermezGovernanceDAOAddress is a free data retrieval call binding the contract method 0x580fc611.
 349//
 350// Solidity: function getHermezGovernanceDAOAddress() view returns(address)
 351func (_WithdrawalDelayer *WithdrawalDelayerSession) GetHermezGovernanceDAOAddress() (common.Address, error) {
 352	return _WithdrawalDelayer.Contract.GetHermezGovernanceDAOAddress(&_WithdrawalDelayer.CallOpts)
 353}
 354
 355// GetHermezGovernanceDAOAddress is a free data retrieval call binding the contract method 0x580fc611.
 356//
 357// Solidity: function getHermezGovernanceDAOAddress() view returns(address)
 358func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) GetHermezGovernanceDAOAddress() (common.Address, error) {
 359	return _WithdrawalDelayer.Contract.GetHermezGovernanceDAOAddress(&_WithdrawalDelayer.CallOpts)
 360}
 361
 362// GetHermezKeeperAddress is a free data retrieval call binding the contract method 0x305887f9.
 363//
 364// Solidity: function getHermezKeeperAddress() view returns(address)
 365func (_WithdrawalDelayer *WithdrawalDelayerCaller) GetHermezKeeperAddress(opts *bind.CallOpts) (common.Address, error) {
 366	var (
 367		ret0 = new(common.Address)
 368	)
 369	out := ret0
 370	err := _WithdrawalDelayer.contract.Call(opts, out, "getHermezKeeperAddress")
 371	return *ret0, tracerr.Wrap(err)
 372}
 373
 374// GetHermezKeeperAddress is a free data retrieval call binding the contract method 0x305887f9.
 375//
 376// Solidity: function getHermezKeeperAddress() view returns(address)
 377func (_WithdrawalDelayer *WithdrawalDelayerSession) GetHermezKeeperAddress() (common.Address, error) {
 378	return _WithdrawalDelayer.Contract.GetHermezKeeperAddress(&_WithdrawalDelayer.CallOpts)
 379}
 380
 381// GetHermezKeeperAddress is a free data retrieval call binding the contract method 0x305887f9.
 382//
 383// Solidity: function getHermezKeeperAddress() view returns(address)
 384func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) GetHermezKeeperAddress() (common.Address, error) {
 385	return _WithdrawalDelayer.Contract.GetHermezKeeperAddress(&_WithdrawalDelayer.CallOpts)
 386}
 387
 388// GetWhiteHackGroupAddress is a free data retrieval call binding the contract method 0xae7efbbd.
 389//
 390// Solidity: function getWhiteHackGroupAddress() view returns(address)
 391func (_WithdrawalDelayer *WithdrawalDelayerCaller) GetWhiteHackGroupAddress(opts *bind.CallOpts) (common.Address, error) {
 392	var (
 393		ret0 = new(common.Address)
 394	)
 395	out := ret0
 396	err := _WithdrawalDelayer.contract.Call(opts, out, "getWhiteHackGroupAddress")
 397	return *ret0, tracerr.Wrap(err)
 398}
 399
 400// GetWhiteHackGroupAddress is a free data retrieval call binding the contract method 0xae7efbbd.
 401//
 402// Solidity: function getWhiteHackGroupAddress() view returns(address)
 403func (_WithdrawalDelayer *WithdrawalDelayerSession) GetWhiteHackGroupAddress() (common.Address, error) {
 404	return _WithdrawalDelayer.Contract.GetWhiteHackGroupAddress(&_WithdrawalDelayer.CallOpts)
 405}
 406
 407// GetWhiteHackGroupAddress is a free data retrieval call binding the contract method 0xae7efbbd.
 408//
 409// Solidity: function getWhiteHackGroupAddress() view returns(address)
 410func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) GetWhiteHackGroupAddress() (common.Address, error) {
 411	return _WithdrawalDelayer.Contract.GetWhiteHackGroupAddress(&_WithdrawalDelayer.CallOpts)
 412}
 413
 414// GetWithdrawalDelay is a free data retrieval call binding the contract method 0x03160940.
 415//
 416// Solidity: function getWithdrawalDelay() view returns(uint128)
 417func (_WithdrawalDelayer *WithdrawalDelayerCaller) GetWithdrawalDelay(opts *bind.CallOpts) (*big.Int, error) {
 418	var (
 419		ret0 = new(*big.Int)
 420	)
 421	out := ret0
 422	err := _WithdrawalDelayer.contract.Call(opts, out, "getWithdrawalDelay")
 423	return *ret0, tracerr.Wrap(err)
 424}
 425
 426// GetWithdrawalDelay is a free data retrieval call binding the contract method 0x03160940.
 427//
 428// Solidity: function getWithdrawalDelay() view returns(uint128)
 429func (_WithdrawalDelayer *WithdrawalDelayerSession) GetWithdrawalDelay() (*big.Int, error) {
 430	return _WithdrawalDelayer.Contract.GetWithdrawalDelay(&_WithdrawalDelayer.CallOpts)
 431}
 432
 433// GetWithdrawalDelay is a free data retrieval call binding the contract method 0x03160940.
 434//
 435// Solidity: function getWithdrawalDelay() view returns(uint128)
 436func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) GetWithdrawalDelay() (*big.Int, error) {
 437	return _WithdrawalDelayer.Contract.GetWithdrawalDelay(&_WithdrawalDelayer.CallOpts)
 438}
 439
 440// HermezRollupAddress is a free data retrieval call binding the contract method 0x0fd266d7.
 441//
 442// Solidity: function hermezRollupAddress() view returns(address)
 443func (_WithdrawalDelayer *WithdrawalDelayerCaller) HermezRollupAddress(opts *bind.CallOpts) (common.Address, error) {
 444	var (
 445		ret0 = new(common.Address)
 446	)
 447	out := ret0
 448	err := _WithdrawalDelayer.contract.Call(opts, out, "hermezRollupAddress")
 449	return *ret0, tracerr.Wrap(err)
 450}
 451
 452// HermezRollupAddress is a free data retrieval call binding the contract method 0x0fd266d7.
 453//
 454// Solidity: function hermezRollupAddress() view returns(address)
 455func (_WithdrawalDelayer *WithdrawalDelayerSession) HermezRollupAddress() (common.Address, error) {
 456	return _WithdrawalDelayer.Contract.HermezRollupAddress(&_WithdrawalDelayer.CallOpts)
 457}
 458
 459// HermezRollupAddress is a free data retrieval call binding the contract method 0x0fd266d7.
 460//
 461// Solidity: function hermezRollupAddress() view returns(address)
 462func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) HermezRollupAddress() (common.Address, error) {
 463	return _WithdrawalDelayer.Contract.HermezRollupAddress(&_WithdrawalDelayer.CallOpts)
 464}
 465
 466// IsEmergencyMode is a free data retrieval call binding the contract method 0x20a194b8.
 467//
 468// Solidity: function isEmergencyMode() view returns(bool)
 469func (_WithdrawalDelayer *WithdrawalDelayerCaller) IsEmergencyMode(opts *bind.CallOpts) (bool, error) {
 470	var (
 471		ret0 = new(bool)
 472	)
 473	out := ret0
 474	err := _WithdrawalDelayer.contract.Call(opts, out, "isEmergencyMode")
 475	return *ret0, tracerr.Wrap(err)
 476}
 477
 478// IsEmergencyMode is a free data retrieval call binding the contract method 0x20a194b8.
 479//
 480// Solidity: function isEmergencyMode() view returns(bool)
 481func (_WithdrawalDelayer *WithdrawalDelayerSession) IsEmergencyMode() (bool, error) {
 482	return _WithdrawalDelayer.Contract.IsEmergencyMode(&_WithdrawalDelayer.CallOpts)
 483}
 484
 485// IsEmergencyMode is a free data retrieval call binding the contract method 0x20a194b8.
 486//
 487// Solidity: function isEmergencyMode() view returns(bool)
 488func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) IsEmergencyMode() (bool, error) {
 489	return _WithdrawalDelayer.Contract.IsEmergencyMode(&_WithdrawalDelayer.CallOpts)
 490}
 491
 492// ChangeWithdrawalDelay is a paid mutator transaction binding the contract method 0x0e670af5.
 493//
 494// Solidity: function changeWithdrawalDelay(uint64 _newWithdrawalDelay) returns()
 495func (_WithdrawalDelayer *WithdrawalDelayerTransactor) ChangeWithdrawalDelay(opts *bind.TransactOpts, _newWithdrawalDelay uint64) (*types.Transaction, error) {
 496	return _WithdrawalDelayer.contract.Transact(opts, "changeWithdrawalDelay", _newWithdrawalDelay)
 497}
 498
 499// ChangeWithdrawalDelay is a paid mutator transaction binding the contract method 0x0e670af5.
 500//
 501// Solidity: function changeWithdrawalDelay(uint64 _newWithdrawalDelay) returns()
 502func (_WithdrawalDelayer *WithdrawalDelayerSession) ChangeWithdrawalDelay(_newWithdrawalDelay uint64) (*types.Transaction, error) {
 503	return _WithdrawalDelayer.Contract.ChangeWithdrawalDelay(&_WithdrawalDelayer.TransactOpts, _newWithdrawalDelay)
 504}
 505
 506// ChangeWithdrawalDelay is a paid mutator transaction binding the contract method 0x0e670af5.
 507//
 508// Solidity: function changeWithdrawalDelay(uint64 _newWithdrawalDelay) returns()
 509func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) ChangeWithdrawalDelay(_newWithdrawalDelay uint64) (*types.Transaction, error) {
 510	return _WithdrawalDelayer.Contract.ChangeWithdrawalDelay(&_WithdrawalDelayer.TransactOpts, _newWithdrawalDelay)
 511}
 512
 513// Deposit is a paid mutator transaction binding the contract method 0xcfc0b641.
 514//
 515// Solidity: function deposit(address _owner, address _token, uint192 _amount) payable returns()
 516func (_WithdrawalDelayer *WithdrawalDelayerTransactor) Deposit(opts *bind.TransactOpts, _owner common.Address, _token common.Address, _amount *big.Int) (*types.Transaction, error) {
 517	return _WithdrawalDelayer.contract.Transact(opts, "deposit", _owner, _token, _amount)
 518}
 519
 520// Deposit is a paid mutator transaction binding the contract method 0xcfc0b641.
 521//
 522// Solidity: function deposit(address _owner, address _token, uint192 _amount) payable returns()
 523func (_WithdrawalDelayer *WithdrawalDelayerSession) Deposit(_owner common.Address, _token common.Address, _amount *big.Int) (*types.Transaction, error) {
 524	return _WithdrawalDelayer.Contract.Deposit(&_WithdrawalDelayer.TransactOpts, _owner, _token, _amount)
 525}
 526
 527// Deposit is a paid mutator transaction binding the contract method 0xcfc0b641.
 528//
 529// Solidity: function deposit(address _owner, address _token, uint192 _amount) payable returns()
 530func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) Deposit(_owner common.Address, _token common.Address, _amount *big.Int) (*types.Transaction, error) {
 531	return _WithdrawalDelayer.Contract.Deposit(&_WithdrawalDelayer.TransactOpts, _owner, _token, _amount)
 532}
 533
 534// EnableEmergencyMode is a paid mutator transaction binding the contract method 0xc5b1c7d0.
 535//
 536// Solidity: function enableEmergencyMode() returns()
 537func (_WithdrawalDelayer *WithdrawalDelayerTransactor) EnableEmergencyMode(opts *bind.TransactOpts) (*types.Transaction, error) {
 538	return _WithdrawalDelayer.contract.Transact(opts, "enableEmergencyMode")
 539}
 540
 541// EnableEmergencyMode is a paid mutator transaction binding the contract method 0xc5b1c7d0.
 542//
 543// Solidity: function enableEmergencyMode() returns()
 544func (_WithdrawalDelayer *WithdrawalDelayerSession) EnableEmergencyMode() (*types.Transaction, error) {
 545	return _WithdrawalDelayer.Contract.EnableEmergencyMode(&_WithdrawalDelayer.TransactOpts)
 546}
 547
 548// EnableEmergencyMode is a paid mutator transaction binding the contract method 0xc5b1c7d0.
 549//
 550// Solidity: function enableEmergencyMode() returns()
 551func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) EnableEmergencyMode() (*types.Transaction, error) {
 552	return _WithdrawalDelayer.Contract.EnableEmergencyMode(&_WithdrawalDelayer.TransactOpts)
 553}
 554
 555// EscapeHatchWithdrawal is a paid mutator transaction binding the contract method 0x7fd6b102.
 556//
 557// Solidity: function escapeHatchWithdrawal(address _to, address _token, uint256 _amount) returns()
 558func (_WithdrawalDelayer *WithdrawalDelayerTransactor) EscapeHatchWithdrawal(opts *bind.TransactOpts, _to common.Address, _token common.Address, _amount *big.Int) (*types.Transaction, error) {
 559	return _WithdrawalDelayer.contract.Transact(opts, "escapeHatchWithdrawal", _to, _token, _amount)
 560}
 561
 562// EscapeHatchWithdrawal is a paid mutator transaction binding the contract method 0x7fd6b102.
 563//
 564// Solidity: function escapeHatchWithdrawal(address _to, address _token, uint256 _amount) returns()
 565func (_WithdrawalDelayer *WithdrawalDelayerSession) EscapeHatchWithdrawal(_to common.Address, _token common.Address, _amount *big.Int) (*types.Transaction, error) {
 566	return _WithdrawalDelayer.Contract.EscapeHatchWithdrawal(&_WithdrawalDelayer.TransactOpts, _to, _token, _amount)
 567}
 568
 569// EscapeHatchWithdrawal is a paid mutator transaction binding the contract method 0x7fd6b102.
 570//
 571// Solidity: function escapeHatchWithdrawal(address _to, address _token, uint256 _amount) returns()
 572func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) EscapeHatchWithdrawal(_to common.Address, _token common.Address, _amount *big.Int) (*types.Transaction, error) {
 573	return _WithdrawalDelayer.Contract.EscapeHatchWithdrawal(&_WithdrawalDelayer.TransactOpts, _to, _token, _amount)
 574}
 575
 576// SetHermezGovernanceDAOAddress is a paid mutator transaction binding the contract method 0xacfd6ea8.
 577//
 578// Solidity: function setHermezGovernanceDAOAddress(address newAddress) returns()
 579func (_WithdrawalDelayer *WithdrawalDelayerTransactor) SetHermezGovernanceDAOAddress(opts *bind.TransactOpts, newAddress common.Address) (*types.Transaction, error) {
 580	return _WithdrawalDelayer.contract.Transact(opts, "setHermezGovernanceDAOAddress", newAddress)
 581}
 582
 583// SetHermezGovernanceDAOAddress is a paid mutator transaction binding the contract method 0xacfd6ea8.
 584//
 585// Solidity: function setHermezGovernanceDAOAddress(address newAddress) returns()
 586func (_WithdrawalDelayer *WithdrawalDelayerSession) SetHermezGovernanceDAOAddress(newAddress common.Address) (*types.Transaction, error) {
 587	return _WithdrawalDelayer.Contract.SetHermezGovernanceDAOAddress(&_WithdrawalDelayer.TransactOpts, newAddress)
 588}
 589
 590// SetHermezGovernanceDAOAddress is a paid mutator transaction binding the contract method 0xacfd6ea8.
 591//
 592// Solidity: function setHermezGovernanceDAOAddress(address newAddress) returns()
 593func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) SetHermezGovernanceDAOAddress(newAddress common.Address) (*types.Transaction, error) {
 594	return _WithdrawalDelayer.Contract.SetHermezGovernanceDAOAddress(&_WithdrawalDelayer.TransactOpts, newAddress)
 595}
 596
 597// SetHermezKeeperAddress is a paid mutator transaction binding the contract method 0xd82b217c.
 598//
 599// Solidity: function setHermezKeeperAddress(address newAddress) returns()
 600func (_WithdrawalDelayer *WithdrawalDelayerTransactor) SetHermezKeeperAddress(opts *bind.TransactOpts, newAddress common.Address) (*types.Transaction, error) {
 601	return _WithdrawalDelayer.contract.Transact(opts, "setHermezKeeperAddress", newAddress)
 602}
 603
 604// SetHermezKeeperAddress is a paid mutator transaction binding the contract method 0xd82b217c.
 605//
 606// Solidity: function setHermezKeeperAddress(address newAddress) returns()
 607func (_WithdrawalDelayer *WithdrawalDelayerSession) SetHermezKeeperAddress(newAddress common.Address) (*types.Transaction, error) {
 608	return _WithdrawalDelayer.Contract.SetHermezKeeperAddress(&_WithdrawalDelayer.TransactOpts, newAddress)
 609}
 610
 611// SetHermezKeeperAddress is a paid mutator transaction binding the contract method 0xd82b217c.
 612//
 613// Solidity: function setHermezKeeperAddress(address newAddress) returns()
 614func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) SetHermezKeeperAddress(newAddress common.Address) (*types.Transaction, error) {
 615	return _WithdrawalDelayer.Contract.SetHermezKeeperAddress(&_WithdrawalDelayer.TransactOpts, newAddress)
 616}
 617
 618// SetWhiteHackGroupAddress is a paid mutator transaction binding the contract method 0x0a4db01b.
 619//
 620// Solidity: function setWhiteHackGroupAddress(address newAddress) returns()
 621func (_WithdrawalDelayer *WithdrawalDelayerTransactor) SetWhiteHackGroupAddress(opts *bind.TransactOpts, newAddress common.Address) (*types.Transaction, error) {
 622	return _WithdrawalDelayer.contract.Transact(opts, "setWhiteHackGroupAddress", newAddress)
 623}
 624
 625// SetWhiteHackGroupAddress is a paid mutator transaction binding the contract method 0x0a4db01b.
 626//
 627// Solidity: function setWhiteHackGroupAddress(address newAddress) returns()
 628func (_WithdrawalDelayer *WithdrawalDelayerSession) SetWhiteHackGroupAddress(newAddress common.Address) (*types.Transaction, error) {
 629	return _WithdrawalDelayer.Contract.SetWhiteHackGroupAddress(&_WithdrawalDelayer.TransactOpts, newAddress)
 630}
 631
 632// SetWhiteHackGroupAddress is a paid mutator transaction binding the contract method 0x0a4db01b.
 633//
 634// Solidity: function setWhiteHackGroupAddress(address newAddress) returns()
 635func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) SetWhiteHackGroupAddress(newAddress common.Address) (*types.Transaction, error) {
 636	return _WithdrawalDelayer.Contract.SetWhiteHackGroupAddress(&_WithdrawalDelayer.TransactOpts, newAddress)
 637}
 638
 639// Withdrawal is a paid mutator transaction binding the contract method 0xde35f282.
 640//
 641// Solidity: function withdrawal(address _owner, address _token) returns()
 642func (_WithdrawalDelayer *WithdrawalDelayerTransactor) Withdrawal(opts *bind.TransactOpts, _owner common.Address, _token common.Address) (*types.Transaction, error) {
 643	return _WithdrawalDelayer.contract.Transact(opts, "withdrawal", _owner, _token)
 644}
 645
 646// Withdrawal is a paid mutator transaction binding the contract method 0xde35f282.
 647//
 648// Solidity: function withdrawal(address _owner, address _token) returns()
 649func (_WithdrawalDelayer *WithdrawalDelayerSession) Withdrawal(_owner common.Address, _token common.Address) (*types.Transaction, error) {
 650	return _WithdrawalDelayer.Contract.Withdrawal(&_WithdrawalDelayer.TransactOpts, _owner, _token)
 651}
 652
 653// Withdrawal is a paid mutator transaction binding the contract method 0xde35f282.
 654//
 655// Solidity: function withdrawal(address _owner, address _token) returns()
 656func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) Withdrawal(_owner common.Address, _token common.Address) (*types.Transaction, error) {
 657	return _WithdrawalDelayer.Contract.Withdrawal(&_WithdrawalDelayer.TransactOpts, _owner, _token)
 658}
 659
 660// WithdrawalDelayerInitializer is a paid mutator transaction binding the contract method 0x36e566ed.
 661//
 662// Solidity: function withdrawalDelayerInitializer(uint64 _initialWithdrawalDelay, address _initialHermezRollup, address _initialHermezKeeperAddress, address _initialHermezGovernanceDAOAddress, address _initialWhiteHackGroupAddress) returns()
 663func (_WithdrawalDelayer *WithdrawalDelayerTransactor) WithdrawalDelayerInitializer(opts *bind.TransactOpts, _initialWithdrawalDelay uint64, _initialHermezRollup common.Address, _initialHermezKeeperAddress common.Address, _initialHermezGovernanceDAOAddress common.Address, _initialWhiteHackGroupAddress common.Address) (*types.Transaction, error) {
 664	return _WithdrawalDelayer.contract.Transact(opts, "withdrawalDelayerInitializer", _initialWithdrawalDelay, _initialHermezRollup, _initialHermezKeeperAddress, _initialHermezGovernanceDAOAddress, _initialWhiteHackGroupAddress)
 665}
 666
 667// WithdrawalDelayerInitializer is a paid mutator transaction binding the contract method 0x36e566ed.
 668//
 669// Solidity: function withdrawalDelayerInitializer(uint64 _initialWithdrawalDelay, address _initialHermezRollup, address _initialHermezKeeperAddress, address _initialHermezGovernanceDAOAddress, address _initialWhiteHackGroupAddress) returns()
 670func (_WithdrawalDelayer *WithdrawalDelayerSession) WithdrawalDelayerInitializer(_initialWithdrawalDelay uint64, _initialHermezRollup common.Address, _initialHermezKeeperAddress common.Address, _initialHermezGovernanceDAOAddress common.Address, _initialWhiteHackGroupAddress common.Address) (*types.Transaction, error) {
 671	return _WithdrawalDelayer.Contract.WithdrawalDelayerInitializer(&_WithdrawalDelayer.TransactOpts, _initialWithdrawalDelay, _initialHermezRollup, _initialHermezKeeperAddress, _initialHermezGovernanceDAOAddress, _initialWhiteHackGroupAddress)
 672}
 673
 674// WithdrawalDelayerInitializer is a paid mutator transaction binding the contract method 0x36e566ed.
 675//
 676// Solidity: function withdrawalDelayerInitializer(uint64 _initialWithdrawalDelay, address _initialHermezRollup, address _initialHermezKeeperAddress, address _initialHermezGovernanceDAOAddress, address _initialWhiteHackGroupAddress) returns()
 677func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) WithdrawalDelayerInitializer(_initialWithdrawalDelay uint64, _initialHermezRollup common.Address, _initialHermezKeeperAddress common.Address, _initialHermezGovernanceDAOAddress common.Address, _initialWhiteHackGroupAddress common.Address) (*types.Transaction, error) {
 678	return _WithdrawalDelayer.Contract.WithdrawalDelayerInitializer(&_WithdrawalDelayer.TransactOpts, _initialWithdrawalDelay, _initialHermezRollup, _initialHermezKeeperAddress, _initialHermezGovernanceDAOAddress, _initialWhiteHackGroupAddress)
 679}
 680
 681// WithdrawalDelayerDepositIterator is returned from FilterDeposit and is used to iterate over the raw logs and unpacked data for Deposit events raised by the WithdrawalDelayer contract.
 682type WithdrawalDelayerDepositIterator struct {
 683	Event *WithdrawalDelayerDeposit // Event containing the contract specifics and raw log
 684
 685	contract *bind.BoundContract // Generic contract to use for unpacking event data
 686	event    string              // Event name to use for unpacking event data
 687
 688	logs chan types.Log        // Log channel receiving the found contract events
 689	sub  ethereum.Subscription // Subscription for errors, completion and termination
 690	done bool                  // Whether the subscription completed delivering logs
 691	fail error                 // Occurred error to stop iteration
 692}
 693
 694// Next advances the iterator to the subsequent event, returning whether there
 695// are any more events found. In case of a retrieval or parsing error, false is
 696// returned and Error() can be queried for the exact failure.
 697func (it *WithdrawalDelayerDepositIterator) Next() bool {
 698	// If the iterator failed, stop iterating
 699	if it.fail != nil {
 700		return false
 701	}
 702	// If the iterator completed, deliver directly whatever's available
 703	if it.done {
 704		select {
 705		case log := <-it.logs:
 706			it.Event = new(WithdrawalDelayerDeposit)
 707			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 708				it.fail = err
 709				return false
 710			}
 711			it.Event.Raw = log
 712			return true
 713
 714		default:
 715			return false
 716		}
 717	}
 718	// Iterator still in progress, wait for either a data or an error event
 719	select {
 720	case log := <-it.logs:
 721		it.Event = new(WithdrawalDelayerDeposit)
 722		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 723			it.fail = err
 724			return false
 725		}
 726		it.Event.Raw = log
 727		return true
 728
 729	case err := <-it.sub.Err():
 730		it.done = true
 731		it.fail = err
 732		return it.Next()
 733	}
 734}
 735
 736// Error returns any retrieval or parsing error occurred during filtering.
 737func (it *WithdrawalDelayerDepositIterator) Error() error {
 738	return it.fail
 739}
 740
 741// Close terminates the iteration process, releasing any pending underlying
 742// resources.
 743func (it *WithdrawalDelayerDepositIterator) Close() error {
 744	it.sub.Unsubscribe()
 745	return nil
 746}
 747
 748// WithdrawalDelayerDeposit represents a Deposit event raised by the WithdrawalDelayer contract.
 749type WithdrawalDelayerDeposit struct {
 750	Owner            common.Address
 751	Token            common.Address
 752	Amount           *big.Int
 753	DepositTimestamp uint64
 754	Raw              types.Log // Blockchain specific contextual infos
 755}
 756
 757// FilterDeposit is a free log retrieval operation binding the contract event 0x41219b99485f78192a5b9b1be28c7d53c3a2bdbe7900ae40c79fae8d9d6108fd.
 758//
 759// Solidity: event Deposit(address indexed owner, address indexed token, uint192 amount, uint64 depositTimestamp)
 760func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterDeposit(opts *bind.FilterOpts, owner []common.Address, token []common.Address) (*WithdrawalDelayerDepositIterator, error) {
 761
 762	var ownerRule []interface{}
 763	for _, ownerItem := range owner {
 764		ownerRule = append(ownerRule, ownerItem)
 765	}
 766	var tokenRule []interface{}
 767	for _, tokenItem := range token {
 768		tokenRule = append(tokenRule, tokenItem)
 769	}
 770
 771	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "Deposit", ownerRule, tokenRule)
 772	if err != nil {
 773		return nil, tracerr.Wrap(err)
 774	}
 775	return &WithdrawalDelayerDepositIterator{contract: _WithdrawalDelayer.contract, event: "Deposit", logs: logs, sub: sub}, nil
 776}
 777
 778// WatchDeposit is a free log subscription operation binding the contract event 0x41219b99485f78192a5b9b1be28c7d53c3a2bdbe7900ae40c79fae8d9d6108fd.
 779//
 780// Solidity: event Deposit(address indexed owner, address indexed token, uint192 amount, uint64 depositTimestamp)
 781func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerDeposit, owner []common.Address, token []common.Address) (event.Subscription, error) {
 782
 783	var ownerRule []interface{}
 784	for _, ownerItem := range owner {
 785		ownerRule = append(ownerRule, ownerItem)
 786	}
 787	var tokenRule []interface{}
 788	for _, tokenItem := range token {
 789		tokenRule = append(tokenRule, tokenItem)
 790	}
 791
 792	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "Deposit", ownerRule, tokenRule)
 793	if err != nil {
 794		return nil, tracerr.Wrap(err)
 795	}
 796	return event.NewSubscription(func(quit <-chan struct{}) error {
 797		defer sub.Unsubscribe()
 798		for {
 799			select {
 800			case log := <-logs:
 801				// New log arrived, parse the event and forward to the user
 802				event := new(WithdrawalDelayerDeposit)
 803				if err := _WithdrawalDelayer.contract.UnpackLog(event, "Deposit", log); err != nil {
 804					return tracerr.Wrap(err)
 805				}
 806				event.Raw = log
 807
 808				select {
 809				case sink <- event:
 810				case err := <-sub.Err():
 811					return tracerr.Wrap(err)
 812				case <-quit:
 813					return nil
 814				}
 815			case err := <-sub.Err():
 816				return tracerr.Wrap(err)
 817			case <-quit:
 818				return nil
 819			}
 820		}
 821	}), nil
 822}
 823
 824// ParseDeposit is a log parse operation binding the contract event 0x41219b99485f78192a5b9b1be28c7d53c3a2bdbe7900ae40c79fae8d9d6108fd.
 825//
 826// Solidity: event Deposit(address indexed owner, address indexed token, uint192 amount, uint64 depositTimestamp)
 827func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseDeposit(log types.Log) (*WithdrawalDelayerDeposit, error) {
 828	event := new(WithdrawalDelayerDeposit)
 829	if err := _WithdrawalDelayer.contract.UnpackLog(event, "Deposit", log); err != nil {
 830		return nil, tracerr.Wrap(err)
 831	}
 832	return event, nil
 833}
 834
 835// WithdrawalDelayerEmergencyModeEnabledIterator is returned from FilterEmergencyModeEnabled and is used to iterate over the raw logs and unpacked data for EmergencyModeEnabled events raised by the WithdrawalDelayer contract.
 836type WithdrawalDelayerEmergencyModeEnabledIterator struct {
 837	Event *WithdrawalDelayerEmergencyModeEnabled // Event containing the contract specifics and raw log
 838
 839	contract *bind.BoundContract // Generic contract to use for unpacking event data
 840	event    string              // Event name to use for unpacking event data
 841
 842	logs chan types.Log        // Log channel receiving the found contract events
 843	sub  ethereum.Subscription // Subscription for errors, completion and termination
 844	done bool                  // Whether the subscription completed delivering logs
 845	fail error                 // Occurred error to stop iteration
 846}
 847
 848// Next advances the iterator to the subsequent event, returning whether there
 849// are any more events found. In case of a retrieval or parsing error, false is
 850// returned and Error() can be queried for the exact failure.
 851func (it *WithdrawalDelayerEmergencyModeEnabledIterator) Next() bool {
 852	// If the iterator failed, stop iterating
 853	if it.fail != nil {
 854		return false
 855	}
 856	// If the iterator completed, deliver directly whatever's available
 857	if it.done {
 858		select {
 859		case log := <-it.logs:
 860			it.Event = new(WithdrawalDelayerEmergencyModeEnabled)
 861			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 862				it.fail = err
 863				return false
 864			}
 865			it.Event.Raw = log
 866			return true
 867
 868		default:
 869			return false
 870		}
 871	}
 872	// Iterator still in progress, wait for either a data or an error event
 873	select {
 874	case log := <-it.logs:
 875		it.Event = new(WithdrawalDelayerEmergencyModeEnabled)
 876		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 877			it.fail = err
 878			return false
 879		}
 880		it.Event.Raw = log
 881		return true
 882
 883	case err := <-it.sub.Err():
 884		it.done = true
 885		it.fail = err
 886		return it.Next()
 887	}
 888}
 889
 890// Error returns any retrieval or parsing error occurred during filtering.
 891func (it *WithdrawalDelayerEmergencyModeEnabledIterator) Error() error {
 892	return it.fail
 893}
 894
 895// Close terminates the iteration process, releasing any pending underlying
 896// resources.
 897func (it *WithdrawalDelayerEmergencyModeEnabledIterator) Close() error {
 898	it.sub.Unsubscribe()
 899	return nil
 900}
 901
 902// WithdrawalDelayerEmergencyModeEnabled represents a EmergencyModeEnabled event raised by the WithdrawalDelayer contract.
 903type WithdrawalDelayerEmergencyModeEnabled struct {
 904	Raw types.Log // Blockchain specific contextual infos
 905}
 906
 907// FilterEmergencyModeEnabled is a free log retrieval operation binding the contract event 0x2064d51aa5a8bd67928c7675e267e05c67ad5adf7c9098d0a602d01f36fda9c5.
 908//
 909// Solidity: event EmergencyModeEnabled()
 910func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterEmergencyModeEnabled(opts *bind.FilterOpts) (*WithdrawalDelayerEmergencyModeEnabledIterator, error) {
 911
 912	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "EmergencyModeEnabled")
 913	if err != nil {
 914		return nil, tracerr.Wrap(err)
 915	}
 916	return &WithdrawalDelayerEmergencyModeEnabledIterator{contract: _WithdrawalDelayer.contract, event: "EmergencyModeEnabled", logs: logs, sub: sub}, nil
 917}
 918
 919// WatchEmergencyModeEnabled is a free log subscription operation binding the contract event 0x2064d51aa5a8bd67928c7675e267e05c67ad5adf7c9098d0a602d01f36fda9c5.
 920//
 921// Solidity: event EmergencyModeEnabled()
 922func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchEmergencyModeEnabled(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerEmergencyModeEnabled) (event.Subscription, error) {
 923
 924	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "EmergencyModeEnabled")
 925	if err != nil {
 926		return nil, tracerr.Wrap(err)
 927	}
 928	return event.NewSubscription(func(quit <-chan struct{}) error {
 929		defer sub.Unsubscribe()
 930		for {
 931			select {
 932			case log := <-logs:
 933				// New log arrived, parse the event and forward to the user
 934				event := new(WithdrawalDelayerEmergencyModeEnabled)
 935				if err := _WithdrawalDelayer.contract.UnpackLog(event, "EmergencyModeEnabled", log); err != nil {
 936					return tracerr.Wrap(err)
 937				}
 938				event.Raw = log
 939
 940				select {
 941				case sink <- event:
 942				case err := <-sub.Err():
 943					return tracerr.Wrap(err)
 944				case <-quit:
 945					return nil
 946				}
 947			case err := <-sub.Err():
 948				return tracerr.Wrap(err)
 949			case <-quit:
 950				return nil
 951			}
 952		}
 953	}), nil
 954}
 955
 956// ParseEmergencyModeEnabled is a log parse operation binding the contract event 0x2064d51aa5a8bd67928c7675e267e05c67ad5adf7c9098d0a602d01f36fda9c5.
 957//
 958// Solidity: event EmergencyModeEnabled()
 959func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseEmergencyModeEnabled(log types.Log) (*WithdrawalDelayerEmergencyModeEnabled, error) {
 960	event := new(WithdrawalDelayerEmergencyModeEnabled)
 961	if err := _WithdrawalDelayer.contract.UnpackLog(event, "EmergencyModeEnabled", log); err != nil {
 962		return nil, tracerr.Wrap(err)
 963	}
 964	return event, nil
 965}
 966
 967// WithdrawalDelayerEscapeHatchWithdrawalIterator is returned from FilterEscapeHatchWithdrawal and is used to iterate over the raw logs and unpacked data for EscapeHatchWithdrawal events raised by the WithdrawalDelayer contract.
 968type WithdrawalDelayerEscapeHatchWithdrawalIterator struct {
 969	Event *WithdrawalDelayerEscapeHatchWithdrawal // Event containing the contract specifics and raw log
 970
 971	contract *bind.BoundContract // Generic contract to use for unpacking event data
 972	event    string              // Event name to use for unpacking event data
 973
 974	logs chan types.Log        // Log channel receiving the found contract events
 975	sub  ethereum.Subscription // Subscription for errors, completion and termination
 976	done bool                  // Whether the subscription completed delivering logs
 977	fail error                 // Occurred error to stop iteration
 978}
 979
 980// Next advances the iterator to the subsequent event, returning whether there
 981// are any more events found. In case of a retrieval or parsing error, false is
 982// returned and Error() can be queried for the exact failure.
 983func (it *WithdrawalDelayerEscapeHatchWithdrawalIterator) Next() bool {
 984	// If the iterator failed, stop iterating
 985	if it.fail != nil {
 986		return false
 987	}
 988	// If the iterator completed, deliver directly whatever's available
 989	if it.done {
 990		select {
 991		case log := <-it.logs:
 992			it.Event = new(WithdrawalDelayerEscapeHatchWithdrawal)
 993			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 994				it.fail = err
 995				return false
 996			}
 997			it.Event.Raw = log
 998			return true
 999
1000		default:
1001			return false
1002		}
1003	}
1004	// Iterator still in progress, wait for either a data or an error event
1005	select {
1006	case log := <-it.logs:
1007		it.Event = new(WithdrawalDelayerEscapeHatchWithdrawal)
1008		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1009			it.fail = err
1010			return false
1011		}
1012		it.Event.Raw = log
1013		return true
1014
1015	case err := <-it.sub.Err():
1016		it.done = true
1017		it.fail = err
1018		return it.Next()
1019	}
1020}
1021
1022// Error returns any retrieval or parsing error occurred during filtering.
1023func (it *WithdrawalDelayerEscapeHatchWithdrawalIterator) Error() error {
1024	return it.fail
1025}
1026
1027// Close terminates the iteration process, releasing any pending underlying
1028// resources.
1029func (it *WithdrawalDelayerEscapeHatchWithdrawalIterator) Close() error {
1030	it.sub.Unsubscribe()
1031	return nil
1032}
1033
1034// WithdrawalDelayerEscapeHatchWithdrawal represents a EscapeHatchWithdrawal event raised by the WithdrawalDelayer contract.
1035type WithdrawalDelayerEscapeHatchWithdrawal struct {
1036	Who    common.Address
1037	To     common.Address
1038	Token  common.Address
1039	Amount *big.Int
1040	Raw    types.Log // Blockchain specific contextual infos
1041}
1042
1043// FilterEscapeHatchWithdrawal is a free log retrieval operation binding the contract event 0xde200220117ba95c9a6c4a1a13bb06b0b7be90faa85c8fb4576630119f891693.
1044//
1045// Solidity: event EscapeHatchWithdrawal(address indexed who, address indexed to, address indexed token, uint256 amount)
1046func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterEscapeHatchWithdrawal(opts *bind.FilterOpts, who []common.Address, to []common.Address, token []common.Address) (*WithdrawalDelayerEscapeHatchWithdrawalIterator, error) {
1047
1048	var whoRule []interface{}
1049	for _, whoItem := range who {
1050		whoRule = append(whoRule, whoItem)
1051	}
1052	var toRule []interface{}
1053	for _, toItem := range to {
1054		toRule = append(toRule, toItem)
1055	}
1056	var tokenRule []interface{}
1057	for _, tokenItem := range token {
1058		tokenRule = append(tokenRule, tokenItem)
1059	}
1060
1061	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "EscapeHatchWithdrawal", whoRule, toRule, tokenRule)
1062	if err != nil {
1063		return nil, tracerr.Wrap(err)
1064	}
1065	return &WithdrawalDelayerEscapeHatchWithdrawalIterator{contract: _WithdrawalDelayer.contract, event: "EscapeHatchWithdrawal", logs: logs, sub: sub}, nil
1066}
1067
1068// WatchEscapeHatchWithdrawal is a free log subscription operation binding the contract event 0xde200220117ba95c9a6c4a1a13bb06b0b7be90faa85c8fb4576630119f891693.
1069//
1070// Solidity: event EscapeHatchWithdrawal(address indexed who, address indexed to, address indexed token, uint256 amount)
1071func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchEscapeHatchWithdrawal(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerEscapeHatchWithdrawal, who []common.Address, to []common.Address, token []common.Address) (event.Subscription, error) {
1072
1073	var whoRule []interface{}
1074	for _, whoItem := range who {
1075		whoRule = append(whoRule, whoItem)
1076	}
1077	var toRule []interface{}
1078	for _, toItem := range to {
1079		toRule = append(toRule, toItem)
1080	}
1081	var tokenRule []interface{}
1082	for _, tokenItem := range token {
1083		tokenRule = append(tokenRule, tokenItem)
1084	}
1085
1086	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "EscapeHatchWithdrawal", whoRule, toRule, tokenRule)
1087	if err != nil {
1088		return nil, tracerr.Wrap(err)
1089	}
1090	return event.NewSubscription(func(quit <-chan struct{}) error {
1091		defer sub.Unsubscribe()
1092		for {
1093			select {
1094			case log := <-logs:
1095				// New log arrived, parse the event and forward to the user
1096				event := new(WithdrawalDelayerEscapeHatchWithdrawal)
1097				if err := _WithdrawalDelayer.contract.UnpackLog(event, "EscapeHatchWithdrawal", log); err != nil {
1098					return tracerr.Wrap(err)
1099				}
1100				event.Raw = log
1101
1102				select {
1103				case sink <- event:
1104				case err := <-sub.Err():
1105					return tracerr.Wrap(err)
1106				case <-quit:
1107					return nil
1108				}
1109			case err := <-sub.Err():
1110				return tracerr.Wrap(err)
1111			case <-quit:
1112				return nil
1113			}
1114		}
1115	}), nil
1116}
1117
1118// ParseEscapeHatchWithdrawal is a log parse operation binding the contract event 0xde200220117ba95c9a6c4a1a13bb06b0b7be90faa85c8fb4576630119f891693.
1119//
1120// Solidity: event EscapeHatchWithdrawal(address indexed who, address indexed to, address indexed token, uint256 amount)
1121func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseEscapeHatchWithdrawal(log types.Log) (*WithdrawalDelayerEscapeHatchWithdrawal, error) {
1122	event := new(WithdrawalDelayerEscapeHatchWithdrawal)
1123	if err := _WithdrawalDelayer.contract.UnpackLog(event, "EscapeHatchWithdrawal", log); err != nil {
1124		return nil, tracerr.Wrap(err)
1125	}
1126	return event, nil
1127}
1128
1129// WithdrawalDelayerNewHermezGovernanceDAOAddressIterator is returned from FilterNewHermezGovernanceDAOAddress and is used to iterate over the raw logs and unpacked data for NewHermezGovernanceDAOAddress events raised by the WithdrawalDelayer contract.
1130type WithdrawalDelayerNewHermezGovernanceDAOAddressIterator struct {
1131	Event *WithdrawalDelayerNewHermezGovernanceDAOAddress // Event containing the contract specifics and raw log
1132
1133	contract *bind.BoundContract // Generic contract to use for unpacking event data
1134	event    string              // Event name to use for unpacking event data
1135
1136	logs chan types.Log        // Log channel receiving the found contract events
1137	sub  ethereum.Subscription // Subscription for errors, completion and termination
1138	done bool                  // Whether the subscription completed delivering logs
1139	fail error                 // Occurred error to stop iteration
1140}
1141
1142// Next advances the iterator to the subsequent event, returning whether there
1143// are any more events found. In case of a retrieval or parsing error, false is
1144// returned and Error() can be queried for the exact failure.
1145func (it *WithdrawalDelayerNewHermezGovernanceDAOAddressIterator) Next() bool {
1146	// If the iterator failed, stop iterating
1147	if it.fail != nil {
1148		return false
1149	}
1150	// If the iterator completed, deliver directly whatever's available
1151	if it.done {
1152		select {
1153		case log := <-it.logs:
1154			it.Event = new(WithdrawalDelayerNewHermezGovernanceDAOAddress)
1155			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1156				it.fail = err
1157				return false
1158			}
1159			it.Event.Raw = log
1160			return true
1161
1162		default:
1163			return false
1164		}
1165	}
1166	// Iterator still in progress, wait for either a data or an error event
1167	select {
1168	case log := <-it.logs:
1169		it.Event = new(WithdrawalDelayerNewHermezGovernanceDAOAddress)
1170		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1171			it.fail = err
1172			return false
1173		}
1174		it.Event.Raw = log
1175		return true
1176
1177	case err := <-it.sub.Err():
1178		it.done = true
1179		it.fail = err
1180		return it.Next()
1181	}
1182}
1183
1184// Error returns any retrieval or parsing error occurred during filtering.
1185func (it *WithdrawalDelayerNewHermezGovernanceDAOAddressIterator) Error() error {
1186	return it.fail
1187}
1188
1189// Close terminates the iteration process, releasing any pending underlying
1190// resources.
1191func (it *WithdrawalDelayerNewHermezGovernanceDAOAddressIterator) Close() error {
1192	it.sub.Unsubscribe()
1193	return nil
1194}
1195
1196// WithdrawalDelayerNewHermezGovernanceDAOAddress represents a NewHermezGovernanceDAOAddress event raised by the WithdrawalDelayer contract.
1197type WithdrawalDelayerNewHermezGovernanceDAOAddress struct {
1198	NewHermezGovernanceDAOAddress common.Address
1199	Raw                           types.Log // Blockchain specific contextual infos
1200}
1201
1202// FilterNewHermezGovernanceDAOAddress is a free log retrieval operation binding the contract event 0x03683be8debd93f8f5ff23dd03419bfcb9b8287a1868b0f130d858f03c3a08a1.
1203//
1204// Solidity: event NewHermezGovernanceDAOAddress(address newHermezGovernanceDAOAddress)
1205func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterNewHermezGovernanceDAOAddress(opts *bind.FilterOpts) (*WithdrawalDelayerNewHermezGovernanceDAOAddressIterator, error) {
1206
1207	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "NewHermezGovernanceDAOAddress")
1208	if err != nil {
1209		return nil, tracerr.Wrap(err)
1210	}
1211	return &WithdrawalDelayerNewHermezGovernanceDAOAddressIterator{contract: _WithdrawalDelayer.contract, event: "NewHermezGovernanceDAOAddress", logs: logs, sub: sub}, nil
1212}
1213
1214// WatchNewHermezGovernanceDAOAddress is a free log subscription operation binding the contract event 0x03683be8debd93f8f5ff23dd03419bfcb9b8287a1868b0f130d858f03c3a08a1.
1215//
1216// Solidity: event NewHermezGovernanceDAOAddress(address newHermezGovernanceDAOAddress)
1217func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchNewHermezGovernanceDAOAddress(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerNewHermezGovernanceDAOAddress) (event.Subscription, error) {
1218
1219	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "NewHermezGovernanceDAOAddress")
1220	if err != nil {
1221		return nil, tracerr.Wrap(err)
1222	}
1223	return event.NewSubscription(func(quit <-chan struct{}) error {
1224		defer sub.Unsubscribe()
1225		for {
1226			select {
1227			case log := <-logs:
1228				// New log arrived, parse the event and forward to the user
1229				event := new(WithdrawalDelayerNewHermezGovernanceDAOAddress)
1230				if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewHermezGovernanceDAOAddress", log); err != nil {
1231					return tracerr.Wrap(err)
1232				}
1233				event.Raw = log
1234
1235				select {
1236				case sink <- event:
1237				case err := <-sub.Err():
1238					return tracerr.Wrap(err)
1239				case <-quit:
1240					return nil
1241				}
1242			case err := <-sub.Err():
1243				return tracerr.Wrap(err)
1244			case <-quit:
1245				return nil
1246			}
1247		}
1248	}), nil
1249}
1250
1251// ParseNewHermezGovernanceDAOAddress is a log parse operation binding the contract event 0x03683be8debd93f8f5ff23dd03419bfcb9b8287a1868b0f130d858f03c3a08a1.
1252//
1253// Solidity: event NewHermezGovernanceDAOAddress(address newHermezGovernanceDAOAddress)
1254func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseNewHermezGovernanceDAOAddress(log types.Log) (*WithdrawalDelayerNewHermezGovernanceDAOAddress, error) {
1255	event := new(WithdrawalDelayerNewHermezGovernanceDAOAddress)
1256	if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewHermezGovernanceDAOAddress", log); err != nil {
1257		return nil, tracerr.Wrap(err)
1258	}
1259	return event, nil
1260}
1261
1262// WithdrawalDelayerNewHermezKeeperAddressIterator is returned from FilterNewHermezKeeperAddress and is used to iterate over the raw logs and unpacked data for NewHermezKeeperAddress events raised by the WithdrawalDelayer contract.
1263type WithdrawalDelayerNewHermezKeeperAddressIterator struct {
1264	Event *WithdrawalDelayerNewHermezKeeperAddress // Event containing the contract specifics and raw log
1265
1266	contract *bind.BoundContract // Generic contract to use for unpacking event data
1267	event    string              // Event name to use for unpacking event data
1268
1269	logs chan types.Log        // Log channel receiving the found contract events
1270	sub  ethereum.Subscription // Subscription for errors, completion and termination
1271	done bool                  // Whether the subscription completed delivering logs
1272	fail error                 // Occurred error to stop iteration
1273}
1274
1275// Next advances the iterator to the subsequent event, returning whether there
1276// are any more events found. In case of a retrieval or parsing error, false is
1277// returned and Error() can be queried for the exact failure.
1278func (it *WithdrawalDelayerNewHermezKeeperAddressIterator) Next() bool {
1279	// If the iterator failed, stop iterating
1280	if it.fail != nil {
1281		return false
1282	}
1283	// If the iterator completed, deliver directly whatever's available
1284	if it.done {
1285		select {
1286		case log := <-it.logs:
1287			it.Event = new(WithdrawalDelayerNewHermezKeeperAddress)
1288			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1289				it.fail = err
1290				return false
1291			}
1292			it.Event.Raw = log
1293			return true
1294
1295		default:
1296			return false
1297		}
1298	}
1299	// Iterator still in progress, wait for either a data or an error event
1300	select {
1301	case log := <-it.logs:
1302		it.Event = new(WithdrawalDelayerNewHermezKeeperAddress)
1303		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1304			it.fail = err
1305			return false
1306		}
1307		it.Event.Raw = log
1308		return true
1309
1310	case err := <-it.sub.Err():
1311		it.done = true
1312		it.fail = err
1313		return it.Next()
1314	}
1315}
1316
1317// Error returns any retrieval or parsing error occurred during filtering.
1318func (it *WithdrawalDelayerNewHermezKeeperAddressIterator) Error() error {
1319	return it.fail
1320}
1321
1322// Close terminates the iteration process, releasing any pending underlying
1323// resources.
1324func (it *WithdrawalDelayerNewHermezKeeperAddressIterator) Close() error {
1325	it.sub.Unsubscribe()
1326	return nil
1327}
1328
1329// WithdrawalDelayerNewHermezKeeperAddress represents a NewHermezKeeperAddress event raised by the WithdrawalDelayer contract.
1330type WithdrawalDelayerNewHermezKeeperAddress struct {
1331	NewHermezKeeperAddress common.Address
1332	Raw                    types.Log // Blockchain specific contextual infos
1333}
1334
1335// FilterNewHermezKeeperAddress is a free log retrieval operation binding the contract event 0xc1e9be84fce652abec6a6944f7ec5bbb40de18caa44c285b05a0de7e3ad9d016.
1336//
1337// Solidity: event NewHermezKeeperAddress(address newHermezKeeperAddress)
1338func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterNewHermezKeeperAddress(opts *bind.FilterOpts) (*WithdrawalDelayerNewHermezKeeperAddressIterator, error) {
1339
1340	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "NewHermezKeeperAddress")
1341	if err != nil {
1342		return nil, tracerr.Wrap(err)
1343	}
1344	return &WithdrawalDelayerNewHermezKeeperAddressIterator{contract: _WithdrawalDelayer.contract, event: "NewHermezKeeperAddress", logs: logs, sub: sub}, nil
1345}
1346
1347// WatchNewHermezKeeperAddress is a free log subscription operation binding the contract event 0xc1e9be84fce652abec6a6944f7ec5bbb40de18caa44c285b05a0de7e3ad9d016.
1348//
1349// Solidity: event NewHermezKeeperAddress(address newHermezKeeperAddress)
1350func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchNewHermezKeeperAddress(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerNewHermezKeeperAddress) (event.Subscription, error) {
1351
1352	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "NewHermezKeeperAddress")
1353	if err != nil {
1354		return nil, tracerr.Wrap(err)
1355	}
1356	return event.NewSubscription(func(quit <-chan struct{}) error {
1357		defer sub.Unsubscribe()
1358		for {
1359			select {
1360			case log := <-logs:
1361				// New log arrived, parse the event and forward to the user
1362				event := new(WithdrawalDelayerNewHermezKeeperAddress)
1363				if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewHermezKeeperAddress", log); err != nil {
1364					return tracerr.Wrap(err)
1365				}
1366				event.Raw = log
1367
1368				select {
1369				case sink <- event:
1370				case err := <-sub.Err():
1371					return tracerr.Wrap(err)
1372				case <-quit:
1373					return nil
1374				}
1375			case err := <-sub.Err():
1376				return tracerr.Wrap(err)
1377			case <-quit:
1378				return nil
1379			}
1380		}
1381	}), nil
1382}
1383
1384// ParseNewHermezKeeperAddress is a log parse operation binding the contract event 0xc1e9be84fce652abec6a6944f7ec5bbb40de18caa44c285b05a0de7e3ad9d016.
1385//
1386// Solidity: event NewHermezKeeperAddress(address newHermezKeeperAddress)
1387func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseNewHermezKeeperAddress(log types.Log) (*WithdrawalDelayerNewHermezKeeperAddress, error) {
1388	event := new(WithdrawalDelayerNewHermezKeeperAddress)
1389	if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewHermezKeeperAddress", log); err != nil {
1390		return nil, tracerr.Wrap(err)
1391	}
1392	return event, nil
1393}
1394
1395// WithdrawalDelayerNewWhiteHackGroupAddressIterator is returned from FilterNewWhiteHackGroupAddress and is used to iterate over the raw logs and unpacked data for NewWhiteHackGroupAddress events raised by the WithdrawalDelayer contract.
1396type WithdrawalDelayerNewWhiteHackGroupAddressIterator struct {
1397	Event *WithdrawalDelayerNewWhiteHackGroupAddress // Event containing the contract specifics and raw log
1398
1399	contract *bind.BoundContract // Generic contract to use for unpacking event data
1400	event    string              // Event name to use for unpacking event data
1401
1402	logs chan types.Log        // Log channel receiving the found contract events
1403	sub  ethereum.Subscription // Subscription for errors, completion and termination
1404	done bool                  // Whether the subscription completed delivering logs
1405	fail error                 // Occurred error to stop iteration
1406}
1407
1408// Next advances the iterator to the subsequent event, returning whether there
1409// are any more events found. In case of a retrieval or parsing error, false is
1410// returned and Error() can be queried for the exact failure.
1411func (it *WithdrawalDelayerNewWhiteHackGroupAddressIterator) Next() bool {
1412	// If the iterator failed, stop iterating
1413	if it.fail != nil {
1414		return false
1415	}
1416	// If the iterator completed, deliver directly whatever's available
1417	if it.done {
1418		select {
1419		case log := <-it.logs:
1420			it.Event = new(WithdrawalDelayerNewWhiteHackGroupAddress)
1421			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1422				it.fail = err
1423				return false
1424			}
1425			it.Event.Raw = log
1426			return true
1427
1428		default:
1429			return false
1430		}
1431	}
1432	// Iterator still in progress, wait for either a data or an error event
1433	select {
1434	case log := <-it.logs:
1435		it.Event = new(WithdrawalDelayerNewWhiteHackGroupAddress)
1436		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1437			it.fail = err
1438			return false
1439		}
1440		it.Event.Raw = log
1441		return true
1442
1443	case err := <-it.sub.Err():
1444		it.done = true
1445		it.fail = err
1446		return it.Next()
1447	}
1448}
1449
1450// Error returns any retrieval or parsing error occurred during filtering.
1451func (it *WithdrawalDelayerNewWhiteHackGroupAddressIterator) Error() error {
1452	return it.fail
1453}
1454
1455// Close terminates the iteration process, releasing any pending underlying
1456// resources.
1457func (it *WithdrawalDelayerNewWhiteHackGroupAddressIterator) Close() error {
1458	it.sub.Unsubscribe()
1459	return nil
1460}
1461
1462// WithdrawalDelayerNewWhiteHackGroupAddress represents a NewWhiteHackGroupAddress event raised by the WithdrawalDelayer contract.
1463type WithdrawalDelayerNewWhiteHackGroupAddress struct {
1464	NewWhiteHackGroupAddress common.Address
1465	Raw                      types.Log // Blockchain specific contextual infos
1466}
1467
1468// FilterNewWhiteHackGroupAddress is a free log retrieval operation binding the contract event 0x284ca073b8bdde2195ae98779277678773a99d7739e5f0477dc19a03fc689011.
1469//
1470// Solidity: event NewWhiteHackGroupAddress(address newWhiteHackGroupAddress)
1471func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterNewWhiteHackGroupAddress(opts *bind.FilterOpts) (*WithdrawalDelayerNewWhiteHackGroupAddressIterator, error) {
1472
1473	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "NewWhiteHackGroupAddress")
1474	if err != nil {
1475		return nil, tracerr.Wrap(err)
1476	}
1477	return &WithdrawalDelayerNewWhiteHackGroupAddressIterator{contract: _WithdrawalDelayer.contract, event: "NewWhiteHackGroupAddress", logs: logs, sub: sub}, nil
1478}
1479
1480// WatchNewWhiteHackGroupAddress is a free log subscription operation binding the contract event 0x284ca073b8bdde2195ae98779277678773a99d7739e5f0477dc19a03fc689011.
1481//
1482// Solidity: event NewWhiteHackGroupAddress(address newWhiteHackGroupAddress)
1483func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchNewWhiteHackGroupAddress(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerNewWhiteHackGroupAddress) (event.Subscription, error) {
1484
1485	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "NewWhiteHackGroupAddress")
1486	if err != nil {
1487		return nil, tracerr.Wrap(err)
1488	}
1489	return event.NewSubscription(func(quit <-chan struct{}) error {
1490		defer sub.Unsubscribe()
1491		for {
1492			select {
1493			case log := <-logs:
1494				// New log arrived, parse the event and forward to the user
1495				event := new(WithdrawalDelayerNewWhiteHackGroupAddress)
1496				if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewWhiteHackGroupAddress", log); err != nil {
1497					return tracerr.Wrap(err)
1498				}
1499				event.Raw = log
1500
1501				select {
1502				case sink <- event:
1503				case err := <-sub.Err():
1504					return tracerr.Wrap(err)
1505				case <-quit:
1506					return nil
1507				}
1508			case err := <-sub.Err():
1509				return tracerr.Wrap(err)
1510			case <-quit:
1511				return nil
1512			}
1513		}
1514	}), nil
1515}
1516
1517// ParseNewWhiteHackGroupAddress is a log parse operation binding the contract event 0x284ca073b8bdde2195ae98779277678773a99d7739e5f0477dc19a03fc689011.
1518//
1519// Solidity: event NewWhiteHackGroupAddress(address newWhiteHackGroupAddress)
1520func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseNewWhiteHackGroupAddress(log types.Log) (*WithdrawalDelayerNewWhiteHackGroupAddress, error) {
1521	event := new(WithdrawalDelayerNewWhiteHackGroupAddress)
1522	if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewWhiteHackGroupAddress", log); err != nil {
1523		return nil, tracerr.Wrap(err)
1524	}
1525	return event, nil
1526}
1527
1528// WithdrawalDelayerNewWithdrawalDelayIterator is returned from FilterNewWithdrawalDelay and is used to iterate over the raw logs and unpacked data for NewWithdrawalDelay events raised by the WithdrawalDelayer contract.
1529type WithdrawalDelayerNewWithdrawalDelayIterator struct {
1530	Event *WithdrawalDelayerNewWithdrawalDelay // Event containing the contract specifics and raw log
1531
1532	contract *bind.BoundContract // Generic contract to use for unpacking event data
1533	event    string              // Event name to use for unpacking event data
1534
1535	logs chan types.Log        // Log channel receiving the found contract events
1536	sub  ethereum.Subscription // Subscription for errors, completion and termination
1537	done bool                  // Whether the subscription completed delivering logs
1538	fail error                 // Occurred error to stop iteration
1539}
1540
1541// Next advances the iterator to the subsequent event, returning whether there
1542// are any more events found. In case of a retrieval or parsing error, false is
1543// returned and Error() can be queried for the exact failure.
1544func (it *WithdrawalDelayerNewWithdrawalDelayIterator) Next() bool {
1545	// If the iterator failed, stop iterating
1546	if it.fail != nil {
1547		return false
1548	}
1549	// If the iterator completed, deliver directly whatever's available
1550	if it.done {
1551		select {
1552		case log := <-it.logs:
1553			it.Event = new(WithdrawalDelayerNewWithdrawalDelay)
1554			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1555				it.fail = err
1556				return false
1557			}
1558			it.Event.Raw = log
1559			return true
1560
1561		default:
1562			return false
1563		}
1564	}
1565	// Iterator still in progress, wait for either a data or an error event
1566	select {
1567	case log := <-it.logs:
1568		it.Event = new(WithdrawalDelayerNewWithdrawalDelay)
1569		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1570			it.fail = err
1571			return false
1572		}
1573		it.Event.Raw = log
1574		return true
1575
1576	case err := <-it.sub.Err():
1577		it.done = true
1578		it.fail = err
1579		return it.Next()
1580	}
1581}
1582
1583// Error returns any retrieval or parsing error occurred during filtering.
1584func (it *WithdrawalDelayerNewWithdrawalDelayIterator) Error() error {
1585	return it.fail
1586}
1587
1588// Close terminates the iteration process, releasing any pending underlying
1589// resources.
1590func (it *WithdrawalDelayerNewWithdrawalDelayIterator) Close() error {
1591	it.sub.Unsubscribe()
1592	return nil
1593}
1594
1595// WithdrawalDelayerNewWithdrawalDelay represents a NewWithdrawalDelay event raised by the WithdrawalDelayer contract.
1596type WithdrawalDelayerNewWithdrawalDelay struct {
1597	WithdrawalDelay uint64
1598	Raw             types.Log // Blockchain specific contextual infos
1599}
1600
1601// FilterNewWithdrawalDelay is a free log retrieval operation binding the contract event 0x6b3670ab51e04a9da086741e5fd1eb36ffaf1d661a15330c528e1f3e0c8722d7.
1602//
1603// Solidity: event NewWithdrawalDelay(uint64 withdrawalDelay)
1604func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterNewWithdrawalDelay(opts *bind.FilterOpts) (*WithdrawalDelayerNewWithdrawalDelayIterator, error) {
1605
1606	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "NewWithdrawalDelay")
1607	if err != nil {
1608		return nil, tracerr.Wrap(err)
1609	}
1610	return &WithdrawalDelayerNewWithdrawalDelayIterator{contract: _WithdrawalDelayer.contract, event: "NewWithdrawalDelay", logs: logs, sub: sub}, nil
1611}
1612
1613// WatchNewWithdrawalDelay is a free log subscription operation binding the contract event 0x6b3670ab51e04a9da086741e5fd1eb36ffaf1d661a15330c528e1f3e0c8722d7.
1614//
1615// Solidity: event NewWithdrawalDelay(uint64 withdrawalDelay)
1616func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchNewWithdrawalDelay(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerNewWithdrawalDelay) (event.Subscription, error) {
1617
1618	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "NewWithdrawalDelay")
1619	if err != nil {
1620		return nil, tracerr.Wrap(err)
1621	}
1622	return event.NewSubscription(func(quit <-chan struct{}) error {
1623		defer sub.Unsubscribe()
1624		for {
1625			select {
1626			case log := <-logs:
1627				// New log arrived, parse the event and forward to the user
1628				event := new(WithdrawalDelayerNewWithdrawalDelay)
1629				if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewWithdrawalDelay", log); err != nil {
1630					return tracerr.Wrap(err)
1631				}
1632				event.Raw = log
1633
1634				select {
1635				case sink <- event:
1636				case err := <-sub.Err():
1637					return tracerr.Wrap(err)
1638				case <-quit:
1639					return nil
1640				}
1641			case err := <-sub.Err():
1642				return tracerr.Wrap(err)
1643			case <-quit:
1644				return nil
1645			}
1646		}
1647	}), nil
1648}
1649
1650// ParseNewWithdrawalDelay is a log parse operation binding the contract event 0x6b3670ab51e04a9da086741e5fd1eb36ffaf1d661a15330c528e1f3e0c8722d7.
1651//
1652// Solidity: event NewWithdrawalDelay(uint64 withdrawalDelay)
1653func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseNewWithdrawalDelay(log types.Log) (*WithdrawalDelayerNewWithdrawalDelay, error) {
1654	event := new(WithdrawalDelayerNewWithdrawalDelay)
1655	if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewWithdrawalDelay", log); err != nil {
1656		return nil, tracerr.Wrap(err)
1657	}
1658	return event, nil
1659}
1660
1661// WithdrawalDelayerWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the WithdrawalDelayer contract.
1662type WithdrawalDelayerWithdrawIterator struct {
1663	Event *WithdrawalDelayerWithdraw // Event containing the contract specifics and raw log
1664
1665	contract *bind.BoundContract // Generic contract to use for unpacking event data
1666	event    string              // Event name to use for unpacking event data
1667
1668	logs chan types.Log        // Log channel receiving the found contract events
1669	sub  ethereum.Subscription // Subscription for errors, completion and termination
1670	done bool                  // Whether the subscription completed delivering logs
1671	fail error                 // Occurred error to stop iteration
1672}
1673
1674// Next advances the iterator to the subsequent event, returning whether there
1675// are any more events found. In case of a retrieval or parsing error, false is
1676// returned and Error() can be queried for the exact failure.
1677func (it *WithdrawalDelayerWithdrawIterator) Next() bool {
1678	// If the iterator failed, stop iterating
1679	if it.fail != nil {
1680		return false
1681	}
1682	// If the iterator completed, deliver directly whatever's available
1683	if it.done {
1684		select {
1685		case log := <-it.logs:
1686			it.Event = new(WithdrawalDelayerWithdraw)
1687			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1688				it.fail = err
1689				return false
1690			}
1691			it.Event.Raw = log
1692			return true
1693
1694		default:
1695			return false
1696		}
1697	}
1698	// Iterator still in progress, wait for either a data or an error event
1699	select {
1700	case log := <-it.logs:
1701		it.Event = new(WithdrawalDelayerWithdraw)
1702		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1703			it.fail = err
1704			return false
1705		}
1706		it.Event.Raw = log
1707		return true
1708
1709	case err := <-it.sub.Err():
1710		it.done = true
1711		it.fail = err
1712		return it.Next()
1713	}
1714}
1715
1716// Error returns any retrieval or parsing error occurred during filtering.
1717func (it *WithdrawalDelayerWithdrawIterator) Error() error {
1718	return it.fail
1719}
1720
1721// Close terminates the iteration process, releasing any pending underlying
1722// resources.
1723func (it *WithdrawalDelayerWithdrawIterator) Close() error {
1724	it.sub.Unsubscribe()
1725	return nil
1726}
1727
1728// WithdrawalDelayerWithdraw represents a Withdraw event raised by the WithdrawalDelayer contract.
1729type WithdrawalDelayerWithdraw struct {
1730	Token  common.Address
1731	Owner  common.Address
1732	Amount *big.Int
1733	Raw    types.Log // Blockchain specific contextual infos
1734}
1735
1736// FilterWithdraw is a free log retrieval operation binding the contract event 0x72608e45b52a95a12c2ac7f15ff53f92fc9572c9d84b6e6b5d7f0f7826cf3271.
1737//
1738// Solidity: event Withdraw(address indexed token, address indexed owner, uint192 amount)
1739func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterWithdraw(opts *bind.FilterOpts, token []common.Address, owner []common.Address) (*WithdrawalDelayerWithdrawIterator, error) {
1740
1741	var tokenRule []interface{}
1742	for _, tokenItem := range token {
1743		tokenRule = append(tokenRule, tokenItem)
1744	}
1745	var ownerRule []interface{}
1746	for _, ownerItem := range owner {
1747		ownerRule = append(ownerRule, ownerItem)
1748	}
1749
1750	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "Withdraw", tokenRule, ownerRule)
1751	if err != nil {
1752		return nil, tracerr.Wrap(err)
1753	}
1754	return &WithdrawalDelayerWithdrawIterator{contract: _WithdrawalDelayer.contract, event: "Withdraw", logs: logs, sub: sub}, nil
1755}
1756
1757// WatchWithdraw is a free log subscription operation binding the contract event 0x72608e45b52a95a12c2ac7f15ff53f92fc9572c9d84b6e6b5d7f0f7826cf3271.
1758//
1759// Solidity: event Withdraw(address indexed token, address indexed owner, uint192 amount)
1760func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerWithdraw, token []common.Address, owner []common.Address) (event.Subscription, error) {
1761
1762	var tokenRule []interface{}
1763	for _, tokenItem := range token {
1764		tokenRule = append(tokenRule, tokenItem)
1765	}
1766	var ownerRule []interface{}
1767	for _, ownerItem := range owner {
1768		ownerRule = append(ownerRule, ownerItem)
1769	}
1770
1771	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "Withdraw", tokenRule, ownerRule)
1772	if err != nil {
1773		return nil, tracerr.Wrap(err)
1774	}
1775	return event.NewSubscription(func(quit <-chan struct{}) error {
1776		defer sub.Unsubscribe()
1777		for {
1778			select {
1779			case log := <-logs:
1780				// New log arrived, parse the event and forward to the user
1781				event := new(WithdrawalDelayerWithdraw)
1782				if err := _WithdrawalDelayer.contract.UnpackLog(event, "Withdraw", log); err != nil {
1783					return tracerr.Wrap(err)
1784				}
1785				event.Raw = log
1786
1787				select {
1788				case sink <- event:
1789				case err := <-sub.Err():
1790					return tracerr.Wrap(err)
1791				case <-quit:
1792					return nil
1793				}
1794			case err := <-sub.Err():
1795				return tracerr.Wrap(err)
1796			case <-quit:
1797				return nil
1798			}
1799		}
1800	}), nil
1801}
1802
1803// ParseWithdraw is a log parse operation binding the contract event 0x72608e45b52a95a12c2ac7f15ff53f92fc9572c9d84b6e6b5d7f0f7826cf3271.
1804//
1805// Solidity: event Withdraw(address indexed token, address indexed owner, uint192 amount)
1806func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseWithdraw(log types.Log) (*WithdrawalDelayerWithdraw, error) {
1807	event := new(WithdrawalDelayerWithdraw)
1808	if err := _WithdrawalDelayer.contract.UnpackLog(event, "Withdraw", log); err != nil {
1809		return nil, tracerr.Wrap(err)
1810	}
1811	return event, nil
1812}