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