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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EscapeHatchWithdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newEmergencyCouncil\",\"type\":\"address\"}],\"name\":\"NewEmergencyCouncil\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newHermezGovernanceAddress\",\"type\":\"address\"}],\"name\":\"NewHermezGovernanceAddress\",\"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\":[],\"name\":\"claimEmergencyCouncil\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimGovernance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"_amount\",\"type\":\"uint192\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"depositInfo\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"\",\"type\":\"uint192\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"deposits\",\"outputs\":[{\"internalType\":\"uint192\",\"name\":\"amount\",\"type\":\"uint192\"},{\"internalType\":\"uint64\",\"name\":\"depositTimestamp\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableEmergencyMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"escapeHatchWithdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEmergencyCouncil\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEmergencyModeStartingTime\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getHermezGovernanceAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWithdrawalDelay\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hermezRollupAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isEmergencyMode\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingEmergencyCouncil\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingGovernance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"newEmergencyCouncil\",\"type\":\"address\"}],\"name\":\"transferEmergencyCouncil\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGovernance\",\"type\":\"address\"}],\"name\":\"transferGovernance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"addresspayable\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"withdrawal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_initialWithdrawalDelay\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_initialHermezRollup\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_initialHermezGovernanceAddress\",\"type\":\"address\"},{\"internalType\":\"addresspayable\",\"name\":\"_initialEmergencyCouncil\",\"type\":\"address\"}],\"name\":\"withdrawalDelayerInitializer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
  31
  32// WithdrawalDelayerBin is the compiled bytecode used for deploying new contracts.
  33var WithdrawalDelayerBin = "0x608060405234801561001057600080fd5b50611cf5806100206000396000f3fe6080604052600436106101355760003560e01c80637fd6b102116100ab578063ca79033f1161006f578063ca79033f146103ee578063cfc0b64114610403578063d38bfff414610443578063db2a1a8114610476578063de35f282146104a9578063f39c38a0146104e457610135565b80637fd6b1021461033b57806399ef11c51461037e578063a238f9df14610393578063b4b8e39d146103c4578063c5b1c7d0146103d957610135565b80633d4dff7b116100fd5780633d4dff7b1461021857806342cb72161461026d578063493b0170146102c15780635d36b190146102fc578063668cdd671461031157806367fa24031461032657610135565b8063031609401461013a5780630b21d430146101745780630e670af5146101a55780630fd266d7146101da57806320a194b8146101ef575b600080fd5b34801561014657600080fd5b5061014f6104f9565b604080516fffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561018057600080fd5b50610189610508565b604080516001600160a01b039092168252519081900360200190f35b3480156101b157600080fd5b506101d8600480360360208110156101c857600080fd5b50356001600160401b0316610517565b005b3480156101e657600080fd5b5061018961061b565b3480156101fb57600080fd5b5061020461062a565b604080519115158252519081900360200190f35b34801561022457600080fd5b506102426004803603602081101561023b57600080fd5b503561063a565b604080516001600160c01b0390931683526001600160401b0390911660208301528051918290030190f35b34801561027957600080fd5b506101d86004803603608081101561029057600080fd5b506001600160401b03813516906001600160a01b036020820135811691604081013582169160609091013516610667565b3480156102cd57600080fd5b50610242600480360360408110156102e457600080fd5b506001600160a01b0381358116916020013516610776565b34801561030857600080fd5b506101d8610807565b34801561031d57600080fd5b5061014f6108b1565b34801561033257600080fd5b506101896108c7565b34801561034757600080fd5b506101d86004803603606081101561035e57600080fd5b506001600160a01b038135811691602081013590911690604001356108d6565b34801561038a57600080fd5b50610189610af9565b34801561039f57600080fd5b506103a8610b08565b604080516001600160401b039092168252519081900360200190f35b3480156103d057600080fd5b506103a8610b0f565b3480156103e557600080fd5b506101d8610b16565b3480156103fa57600080fd5b506101d8610c12565b6101d86004803603606081101561041957600080fd5b5080356001600160a01b0390811691602081013590911690604001356001600160c01b0316610cbc565b34801561044f57600080fd5b506101d86004803603602081101561046657600080fd5b50356001600160a01b031661106e565b34801561048257600080fd5b506101d86004803603602081101561049957600080fd5b50356001600160a01b03166110d9565b3480156104b557600080fd5b506101d8600480360360408110156104cc57600080fd5b506001600160a01b0381358116916020013516611144565b3480156104f057600080fd5b5061018961139e565b6065546001600160401b031690565b6066546001600160a01b031690565b6066546001600160a01b031633148061053a5750606a546001600160a01b031633145b6105755760405162461bcd60e51b8152600401808060200182810382526043815260200180611a146043913960600191505060405180910390fd5b621275006001600160401b03821611156105c05760405162461bcd60e51b8152600401808060200182810382526046815260200180611bb76046913960600191505060405180910390fd5b6065805467ffffffffffffffff19166001600160401b03838116919091179182905560408051929091168252517f6b3670ab51e04a9da086741e5fd1eb36ffaf1d661a15330c528e1f3e0c8722d7916020908290030190a150565b606a546001600160a01b031681565b606954600160a01b900460ff1690565b606b602052600090815260409020546001600160c01b03811690600160c01b90046001600160401b031682565b600054610100900460ff168061068057506106806113ad565b8061068e575060005460ff16155b6106c95760405162461bcd60e51b815260040180806020018281038252602e815260200180611ac1602e913960400191505060405180910390fd5b600054610100900460ff161580156106f4576000805460ff1961ff0019909116610100171660011790555b6106fc6113b3565b6065805467ffffffffffffffff19166001600160401b038716179055606a80546001600160a01b03199081166001600160a01b0387811691909117909255606680548216868416179055606980549091169184169190911760ff60a01b19169055801561076f576000805461ff00191690555b5050505050565b6000806107816117b3565b505060408051606094851b6001600160601b03199081166020808401919091529490951b909416603485015280518085036028018152604885018083528151918501919091206000908152606b9094529281902060888501909152546001600160c01b03811692839052600160c01b90046001600160401b031660689093018390525091565b6067546001600160a01b031633146108505760405162461bcd60e51b815260040180806020018281038252603b8152602001806119a3603b913960400191505060405180910390fd5b60678054606680546001600160a01b038084166001600160a01b03199283161792839055921690925560408051929091168252517f3bf02437d5cd40067085d9dac2c3cdcbef0a449d98a259a40d9c24380aca81bf916020908290030190a1565b606554600160401b90046001600160401b031690565b6068546001600160a01b031681565b60335460ff1661092d576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6033805460ff19169055606954600160a01b900460ff1661097f5760405162461bcd60e51b81526004018080602001828103825260348152602001806118ca6034913960400191505060405180910390fd5b6069546001600160a01b03163314806109a257506066546001600160a01b031633145b6109dd5760405162461bcd60e51b8152600401808060200182810382526039815260200180611b206039913960400191505060405180910390fd5b6069546001600160a01b031633148015610a0857506066546069546001600160a01b03908116911614155b15610a6a576065546001600160401b03600160401b909104811662eff100018116429091161015610a6a5760405162461bcd60e51b815260040180806020018281038252604481526020018061192d6044913960600191505060405180910390fd5b6001600160a01b038216610a8757610a828382611462565b610a92565b610a928284836114f7565b816001600160a01b0316836001600160a01b0316336001600160a01b03167fde200220117ba95c9a6c4a1a13bb06b0b7be90faa85c8fb4576630119f891693846040518082815260200191505060405180910390a450506033805460ff1916600117905550565b6069546001600160a01b031690565b6212750081565b62eff10081565b6066546001600160a01b03163314610b5f5760405162461bcd60e51b8152600401808060200182810382526037815260200180611c326037913960400191505060405180910390fd5b606954600160a01b900460ff1615610ba85760405162461bcd60e51b81526004018080602001828103825260378152602001806118936037913960400191505060405180910390fd5b6069805460ff60a01b1916600160a01b179055606580546001600160401b034216600160401b026fffffffffffffffff0000000000000000199091161790556040517f2064d51aa5a8bd67928c7675e267e05c67ad5adf7c9098d0a602d01f36fda9c590600090a1565b6068546001600160a01b03163314610c5b5760405162461bcd60e51b81526004018080602001828103825260418152602001806117f36041913960600191505060405180910390fd5b60688054606980546001600160a01b038084166001600160a01b03199283161792839055921690925560408051929091168252517fcc267667d474ef34ee2de2d060e7c8b2c7295cefa22e57fd7049e22b5fdb5396916020908290030190a1565b60335460ff16610d13576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6033805460ff19169055606a546001600160a01b03163314610d665760405162461bcd60e51b8152600401808060200182810382526027815260200180611a9a6027913960400191505060405180910390fd5b3415610dfe576001600160a01b03821615610db25760405162461bcd60e51b815260040180806020018281038252602f8152602001806118fe602f913960400191505060405180910390fd5b34816001600160c01b031614610df95760405162461bcd60e51b81526004018080602001828103825260288152602001806117cb6028913960400191505060405180910390fd5b611051565b606a5460408051636eb1769f60e11b81526001600160a01b03928316600482015230602482015290516001600160c01b0384169285169163dd62ed3e916044808301926020929190829003018186803b158015610e5a57600080fd5b505afa158015610e6e573d6000803e3d6000fd5b505050506040513d6020811015610e8457600080fd5b50511015610ec35760405162461bcd60e51b8152600401808060200182810382526030815260200180611c696030913960400191505060405180910390fd5b60006060836001600160a01b031660405180606001604052806025815260200161186e602591398051602091820120606a54604080516001600160a01b0390921660248301523060448301526001600160c01b038816606480840191909152815180840390910181526084909201815292810180516001600160e01b03166001600160e01b031990931692909217825291518251909182918083835b60208310610f7e5780518252601f199092019160209182019101610f5f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610fe0576040519150601f19603f3d011682016040523d82523d6000602084013e610fe5565b606091505b5091509150818015611013575080511580611013575080806020019051602081101561101057600080fd5b50515b61104e5760405162461bcd60e51b8152600401808060200182810382526031815260200180611aef6031913960400191505060405180910390fd5b50505b61105c838383611674565b50506033805460ff1916600117905550565b6066546001600160a01b031633146110b75760405162461bcd60e51b81526004018080602001828103825260368152602001806119de6036913960400191505060405180910390fd5b606780546001600160a01b0319166001600160a01b0392909216919091179055565b6069546001600160a01b031633146111225760405162461bcd60e51b8152600401808060200182810382526043815260200180611a576043913960600191505060405180910390fd5b606880546001600160a01b0319166001600160a01b0392909216919091179055565b60335460ff1661119b576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6033805460ff19169055606954600160a01b900460ff16156111ee5760405162461bcd60e51b815260040180806020018281038252602a815260200180611b59602a913960400191505060405180910390fd5b60408051606084811b6001600160601b03199081166020808501919091529185901b16603483015282518083036028018152604890920183528151918101919091206000818152606b909252919020546001600160c01b0316806112835760405162461bcd60e51b8152600401808060200182810382526027815260200180611c996027913960400191505060405180910390fd5b6065546000838152606b60205260409020546001600160401b03918216600160c01b90910482160181164290911610156112ee5760405162461bcd60e51b8152600401808060200182810382526035815260200180611bfd6035913960400191505060405180910390fd5b6000828152606b60205260408120556001600160a01b0383166113235761131e84826001600160c01b0316611462565b611337565b6113378385836001600160c01b03166114f7565b836001600160a01b0316836001600160a01b03167f72608e45b52a95a12c2ac7f15ff53f92fc9572c9d84b6e6b5d7f0f7826cf32718360405180826001600160c01b0316815260200191505060405180910390a350506033805460ff191660011790555050565b6067546001600160a01b031681565b303b1590565b600054610100900460ff16806113cc57506113cc6113ad565b806113da575060005460ff16155b6114155760405162461bcd60e51b815260040180806020018281038252602e815260200180611ac1602e913960400191505060405180910390fd5b600054610100900460ff16158015611440576000805460ff1961ff0019909116610100171660011790555b6033805460ff19166001179055801561145f576000805461ff00191690555b50565b6040516000906001600160a01b0384169083908381818185875af1925050503d80600081146114ad576040519150601f19603f3d011682016040523d82523d6000602084013e6114b2565b606091505b50509050806114f25760405162461bcd60e51b81526004018080602001828103825260328152602001806119716032913960400191505060405180910390fd5b505050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b602083106115a45780518252601f199092019160209182019101611585565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611606576040519150601f19603f3d011682016040523d82523d6000602084013e61160b565b606091505b5091509150818015611639575080511580611639575080806020019051602081101561163657600080fd5b50515b61076f5760405162461bcd60e51b815260040180806020018281038252603a815260200180611834603a913960400191505060405180910390fd5b60408051606085811b6001600160601b03199081166020808501919091529186901b16603483015282518083036028018152604890920183528151918101919091206000818152606b909252919020546001600160c01b0390811683810191821610156117125760405162461bcd60e51b8152600401808060200182810382526034815260200180611b836034913960400191505060405180910390fd5b6000828152606b602090815260409182902080546001600160401b03428116600160c01b9081026001600160c01b038089166001600160c01b03199095169490941784161793849055855192891683529092049091169181019190915281516001600160a01b0380881693908916927f41219b99485f78192a5b9b1be28c7d53c3a2bdbe7900ae40c79fae8d9d6108fd929081900390910190a35050505050565b60408051808201909152600080825260208201529056fe5769746864726177616c44656c617965723a3a6465706f7369743a2057524f4e475f414d4f554e545769746864726177616c44656c617965723a3a636c61696d456d657267656e6379436f756e63696c3a204f4e4c595f50454e44494e475f474f5645524e414e43455769746864726177616c44656c617965723a3a5f746f6b656e5769746864726177616c3a20544f4b454e5f5452414e534645525f4641494c45447472616e7366657246726f6d28616464726573732c616464726573732c75696e74323536295769746864726177616c44656c617965723a3a656e61626c65456d657267656e63794d6f64653a20414c52454144595f454e41424c45445769746864726177616c44656c617965723a3a65736361706548617463685769746864726177616c3a204f4e4c595f454d4f44455769746864726177616c44656c617965723a3a6465706f7369743a2057524f4e475f544f4b454e5f414444524553535769746864726177616c44656c617965723a3a65736361706548617463685769746864726177616c3a204e4f5f4d41585f454d455247454e43595f4d4f44455f54494d455769746864726177616c44656c617965723a3a5f6574685769746864726177616c3a205452414e534645525f4641494c45445769746864726177616c44656c617965723a3a636c61696d476f7665726e616e63653a204f4e4c595f50454e44494e475f474f5645524e414e43455769746864726177616c44656c617965723a3a7472616e73666572476f7665726e616e63653a204f4e4c595f474f5645524e414e43455769746864726177616c44656c617965723a3a6368616e67655769746864726177616c44656c61793a204f4e4c595f524f4c4c55505f4f525f474f5645524e414e43455769746864726177616c44656c617965723a3a7472616e73666572456d657267656e6379436f756e63696c3a204f4e4c595f454d455247454e43595f434f554e43494c5769746864726177616c44656c617965723a3a6465706f7369743a204f4e4c595f524f4c4c5550436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645769746864726177616c44656c617965723a3a6465706f7369743a20544f4b454e5f5452414e534645525f4641494c45445769746864726177616c44656c617965723a3a65736361706548617463685769746864726177616c3a204f4e4c595f474f5645524e414e43455769746864726177616c44656c617965723a3a6465706f7369743a20454d455247454e43595f4d4f44455769746864726177616c44656c617965723a3a5f70726f636573734465706f7369743a204445504f5349545f4f564552464c4f575769746864726177616c44656c617965723a3a6368616e67655769746864726177616c44656c61793a20455843454544535f4d41585f5749544844524157414c5f44454c41595769746864726177616c44656c617965723a3a7769746864726177616c3a205749544844524157414c5f4e4f545f414c4c4f5745445769746864726177616c44656c617965723a3a656e61626c65456d657267656e63794d6f64653a204f4e4c595f474f5645524e414e43455769746864726177616c44656c617965723a3a6465706f7369743a204e4f545f454e4f5547485f414c4c4f57414e43455769746864726177616c44656c617965723a3a7769746864726177616c3a204e4f5f46554e4453a2646970667358221220e5a3370e58aedbb9299b84dab9f46ede78dea7760c7d54540ca28b4126cc4f0b64736f6c634300060c0033"
  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// GetEmergencyCouncil is a free data retrieval call binding the contract method 0x99ef11c5.
 310//
 311// Solidity: function getEmergencyCouncil() view returns(address)
 312func (_WithdrawalDelayer *WithdrawalDelayerCaller) GetEmergencyCouncil(opts *bind.CallOpts) (common.Address, error) {
 313	var (
 314		ret0 = new(common.Address)
 315	)
 316	out := ret0
 317	err := _WithdrawalDelayer.contract.Call(opts, out, "getEmergencyCouncil")
 318	return *ret0, err
 319}
 320
 321// GetEmergencyCouncil is a free data retrieval call binding the contract method 0x99ef11c5.
 322//
 323// Solidity: function getEmergencyCouncil() view returns(address)
 324func (_WithdrawalDelayer *WithdrawalDelayerSession) GetEmergencyCouncil() (common.Address, error) {
 325	return _WithdrawalDelayer.Contract.GetEmergencyCouncil(&_WithdrawalDelayer.CallOpts)
 326}
 327
 328// GetEmergencyCouncil is a free data retrieval call binding the contract method 0x99ef11c5.
 329//
 330// Solidity: function getEmergencyCouncil() view returns(address)
 331func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) GetEmergencyCouncil() (common.Address, error) {
 332	return _WithdrawalDelayer.Contract.GetEmergencyCouncil(&_WithdrawalDelayer.CallOpts)
 333}
 334
 335// GetEmergencyModeStartingTime is a free data retrieval call binding the contract method 0x668cdd67.
 336//
 337// Solidity: function getEmergencyModeStartingTime() view returns(uint128)
 338func (_WithdrawalDelayer *WithdrawalDelayerCaller) GetEmergencyModeStartingTime(opts *bind.CallOpts) (*big.Int, error) {
 339	var (
 340		ret0 = new(*big.Int)
 341	)
 342	out := ret0
 343	err := _WithdrawalDelayer.contract.Call(opts, out, "getEmergencyModeStartingTime")
 344	return *ret0, err
 345}
 346
 347// GetEmergencyModeStartingTime is a free data retrieval call binding the contract method 0x668cdd67.
 348//
 349// Solidity: function getEmergencyModeStartingTime() view returns(uint128)
 350func (_WithdrawalDelayer *WithdrawalDelayerSession) GetEmergencyModeStartingTime() (*big.Int, error) {
 351	return _WithdrawalDelayer.Contract.GetEmergencyModeStartingTime(&_WithdrawalDelayer.CallOpts)
 352}
 353
 354// GetEmergencyModeStartingTime is a free data retrieval call binding the contract method 0x668cdd67.
 355//
 356// Solidity: function getEmergencyModeStartingTime() view returns(uint128)
 357func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) GetEmergencyModeStartingTime() (*big.Int, error) {
 358	return _WithdrawalDelayer.Contract.GetEmergencyModeStartingTime(&_WithdrawalDelayer.CallOpts)
 359}
 360
 361// GetHermezGovernanceAddress is a free data retrieval call binding the contract method 0x0b21d430.
 362//
 363// Solidity: function getHermezGovernanceAddress() view returns(address)
 364func (_WithdrawalDelayer *WithdrawalDelayerCaller) GetHermezGovernanceAddress(opts *bind.CallOpts) (common.Address, error) {
 365	var (
 366		ret0 = new(common.Address)
 367	)
 368	out := ret0
 369	err := _WithdrawalDelayer.contract.Call(opts, out, "getHermezGovernanceAddress")
 370	return *ret0, err
 371}
 372
 373// GetHermezGovernanceAddress is a free data retrieval call binding the contract method 0x0b21d430.
 374//
 375// Solidity: function getHermezGovernanceAddress() view returns(address)
 376func (_WithdrawalDelayer *WithdrawalDelayerSession) GetHermezGovernanceAddress() (common.Address, error) {
 377	return _WithdrawalDelayer.Contract.GetHermezGovernanceAddress(&_WithdrawalDelayer.CallOpts)
 378}
 379
 380// GetHermezGovernanceAddress is a free data retrieval call binding the contract method 0x0b21d430.
 381//
 382// Solidity: function getHermezGovernanceAddress() view returns(address)
 383func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) GetHermezGovernanceAddress() (common.Address, error) {
 384	return _WithdrawalDelayer.Contract.GetHermezGovernanceAddress(&_WithdrawalDelayer.CallOpts)
 385}
 386
 387// GetWithdrawalDelay is a free data retrieval call binding the contract method 0x03160940.
 388//
 389// Solidity: function getWithdrawalDelay() view returns(uint128)
 390func (_WithdrawalDelayer *WithdrawalDelayerCaller) GetWithdrawalDelay(opts *bind.CallOpts) (*big.Int, error) {
 391	var (
 392		ret0 = new(*big.Int)
 393	)
 394	out := ret0
 395	err := _WithdrawalDelayer.contract.Call(opts, out, "getWithdrawalDelay")
 396	return *ret0, err
 397}
 398
 399// GetWithdrawalDelay is a free data retrieval call binding the contract method 0x03160940.
 400//
 401// Solidity: function getWithdrawalDelay() view returns(uint128)
 402func (_WithdrawalDelayer *WithdrawalDelayerSession) GetWithdrawalDelay() (*big.Int, error) {
 403	return _WithdrawalDelayer.Contract.GetWithdrawalDelay(&_WithdrawalDelayer.CallOpts)
 404}
 405
 406// GetWithdrawalDelay is a free data retrieval call binding the contract method 0x03160940.
 407//
 408// Solidity: function getWithdrawalDelay() view returns(uint128)
 409func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) GetWithdrawalDelay() (*big.Int, error) {
 410	return _WithdrawalDelayer.Contract.GetWithdrawalDelay(&_WithdrawalDelayer.CallOpts)
 411}
 412
 413// HermezRollupAddress is a free data retrieval call binding the contract method 0x0fd266d7.
 414//
 415// Solidity: function hermezRollupAddress() view returns(address)
 416func (_WithdrawalDelayer *WithdrawalDelayerCaller) HermezRollupAddress(opts *bind.CallOpts) (common.Address, error) {
 417	var (
 418		ret0 = new(common.Address)
 419	)
 420	out := ret0
 421	err := _WithdrawalDelayer.contract.Call(opts, out, "hermezRollupAddress")
 422	return *ret0, err
 423}
 424
 425// HermezRollupAddress is a free data retrieval call binding the contract method 0x0fd266d7.
 426//
 427// Solidity: function hermezRollupAddress() view returns(address)
 428func (_WithdrawalDelayer *WithdrawalDelayerSession) HermezRollupAddress() (common.Address, error) {
 429	return _WithdrawalDelayer.Contract.HermezRollupAddress(&_WithdrawalDelayer.CallOpts)
 430}
 431
 432// HermezRollupAddress is a free data retrieval call binding the contract method 0x0fd266d7.
 433//
 434// Solidity: function hermezRollupAddress() view returns(address)
 435func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) HermezRollupAddress() (common.Address, error) {
 436	return _WithdrawalDelayer.Contract.HermezRollupAddress(&_WithdrawalDelayer.CallOpts)
 437}
 438
 439// IsEmergencyMode is a free data retrieval call binding the contract method 0x20a194b8.
 440//
 441// Solidity: function isEmergencyMode() view returns(bool)
 442func (_WithdrawalDelayer *WithdrawalDelayerCaller) IsEmergencyMode(opts *bind.CallOpts) (bool, error) {
 443	var (
 444		ret0 = new(bool)
 445	)
 446	out := ret0
 447	err := _WithdrawalDelayer.contract.Call(opts, out, "isEmergencyMode")
 448	return *ret0, err
 449}
 450
 451// IsEmergencyMode is a free data retrieval call binding the contract method 0x20a194b8.
 452//
 453// Solidity: function isEmergencyMode() view returns(bool)
 454func (_WithdrawalDelayer *WithdrawalDelayerSession) IsEmergencyMode() (bool, error) {
 455	return _WithdrawalDelayer.Contract.IsEmergencyMode(&_WithdrawalDelayer.CallOpts)
 456}
 457
 458// IsEmergencyMode is a free data retrieval call binding the contract method 0x20a194b8.
 459//
 460// Solidity: function isEmergencyMode() view returns(bool)
 461func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) IsEmergencyMode() (bool, error) {
 462	return _WithdrawalDelayer.Contract.IsEmergencyMode(&_WithdrawalDelayer.CallOpts)
 463}
 464
 465// PendingEmergencyCouncil is a free data retrieval call binding the contract method 0x67fa2403.
 466//
 467// Solidity: function pendingEmergencyCouncil() view returns(address)
 468func (_WithdrawalDelayer *WithdrawalDelayerCaller) PendingEmergencyCouncil(opts *bind.CallOpts) (common.Address, error) {
 469	var (
 470		ret0 = new(common.Address)
 471	)
 472	out := ret0
 473	err := _WithdrawalDelayer.contract.Call(opts, out, "pendingEmergencyCouncil")
 474	return *ret0, err
 475}
 476
 477// PendingEmergencyCouncil is a free data retrieval call binding the contract method 0x67fa2403.
 478//
 479// Solidity: function pendingEmergencyCouncil() view returns(address)
 480func (_WithdrawalDelayer *WithdrawalDelayerSession) PendingEmergencyCouncil() (common.Address, error) {
 481	return _WithdrawalDelayer.Contract.PendingEmergencyCouncil(&_WithdrawalDelayer.CallOpts)
 482}
 483
 484// PendingEmergencyCouncil is a free data retrieval call binding the contract method 0x67fa2403.
 485//
 486// Solidity: function pendingEmergencyCouncil() view returns(address)
 487func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) PendingEmergencyCouncil() (common.Address, error) {
 488	return _WithdrawalDelayer.Contract.PendingEmergencyCouncil(&_WithdrawalDelayer.CallOpts)
 489}
 490
 491// PendingGovernance is a free data retrieval call binding the contract method 0xf39c38a0.
 492//
 493// Solidity: function pendingGovernance() view returns(address)
 494func (_WithdrawalDelayer *WithdrawalDelayerCaller) PendingGovernance(opts *bind.CallOpts) (common.Address, error) {
 495	var (
 496		ret0 = new(common.Address)
 497	)
 498	out := ret0
 499	err := _WithdrawalDelayer.contract.Call(opts, out, "pendingGovernance")
 500	return *ret0, err
 501}
 502
 503// PendingGovernance is a free data retrieval call binding the contract method 0xf39c38a0.
 504//
 505// Solidity: function pendingGovernance() view returns(address)
 506func (_WithdrawalDelayer *WithdrawalDelayerSession) PendingGovernance() (common.Address, error) {
 507	return _WithdrawalDelayer.Contract.PendingGovernance(&_WithdrawalDelayer.CallOpts)
 508}
 509
 510// PendingGovernance is a free data retrieval call binding the contract method 0xf39c38a0.
 511//
 512// Solidity: function pendingGovernance() view returns(address)
 513func (_WithdrawalDelayer *WithdrawalDelayerCallerSession) PendingGovernance() (common.Address, error) {
 514	return _WithdrawalDelayer.Contract.PendingGovernance(&_WithdrawalDelayer.CallOpts)
 515}
 516
 517// ChangeWithdrawalDelay is a paid mutator transaction binding the contract method 0x0e670af5.
 518//
 519// Solidity: function changeWithdrawalDelay(uint64 _newWithdrawalDelay) returns()
 520func (_WithdrawalDelayer *WithdrawalDelayerTransactor) ChangeWithdrawalDelay(opts *bind.TransactOpts, _newWithdrawalDelay uint64) (*types.Transaction, error) {
 521	return _WithdrawalDelayer.contract.Transact(opts, "changeWithdrawalDelay", _newWithdrawalDelay)
 522}
 523
 524// ChangeWithdrawalDelay is a paid mutator transaction binding the contract method 0x0e670af5.
 525//
 526// Solidity: function changeWithdrawalDelay(uint64 _newWithdrawalDelay) returns()
 527func (_WithdrawalDelayer *WithdrawalDelayerSession) ChangeWithdrawalDelay(_newWithdrawalDelay uint64) (*types.Transaction, error) {
 528	return _WithdrawalDelayer.Contract.ChangeWithdrawalDelay(&_WithdrawalDelayer.TransactOpts, _newWithdrawalDelay)
 529}
 530
 531// ChangeWithdrawalDelay is a paid mutator transaction binding the contract method 0x0e670af5.
 532//
 533// Solidity: function changeWithdrawalDelay(uint64 _newWithdrawalDelay) returns()
 534func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) ChangeWithdrawalDelay(_newWithdrawalDelay uint64) (*types.Transaction, error) {
 535	return _WithdrawalDelayer.Contract.ChangeWithdrawalDelay(&_WithdrawalDelayer.TransactOpts, _newWithdrawalDelay)
 536}
 537
 538// ClaimEmergencyCouncil is a paid mutator transaction binding the contract method 0xca79033f.
 539//
 540// Solidity: function claimEmergencyCouncil() returns()
 541func (_WithdrawalDelayer *WithdrawalDelayerTransactor) ClaimEmergencyCouncil(opts *bind.TransactOpts) (*types.Transaction, error) {
 542	return _WithdrawalDelayer.contract.Transact(opts, "claimEmergencyCouncil")
 543}
 544
 545// ClaimEmergencyCouncil is a paid mutator transaction binding the contract method 0xca79033f.
 546//
 547// Solidity: function claimEmergencyCouncil() returns()
 548func (_WithdrawalDelayer *WithdrawalDelayerSession) ClaimEmergencyCouncil() (*types.Transaction, error) {
 549	return _WithdrawalDelayer.Contract.ClaimEmergencyCouncil(&_WithdrawalDelayer.TransactOpts)
 550}
 551
 552// ClaimEmergencyCouncil is a paid mutator transaction binding the contract method 0xca79033f.
 553//
 554// Solidity: function claimEmergencyCouncil() returns()
 555func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) ClaimEmergencyCouncil() (*types.Transaction, error) {
 556	return _WithdrawalDelayer.Contract.ClaimEmergencyCouncil(&_WithdrawalDelayer.TransactOpts)
 557}
 558
 559// ClaimGovernance is a paid mutator transaction binding the contract method 0x5d36b190.
 560//
 561// Solidity: function claimGovernance() returns()
 562func (_WithdrawalDelayer *WithdrawalDelayerTransactor) ClaimGovernance(opts *bind.TransactOpts) (*types.Transaction, error) {
 563	return _WithdrawalDelayer.contract.Transact(opts, "claimGovernance")
 564}
 565
 566// ClaimGovernance is a paid mutator transaction binding the contract method 0x5d36b190.
 567//
 568// Solidity: function claimGovernance() returns()
 569func (_WithdrawalDelayer *WithdrawalDelayerSession) ClaimGovernance() (*types.Transaction, error) {
 570	return _WithdrawalDelayer.Contract.ClaimGovernance(&_WithdrawalDelayer.TransactOpts)
 571}
 572
 573// ClaimGovernance is a paid mutator transaction binding the contract method 0x5d36b190.
 574//
 575// Solidity: function claimGovernance() returns()
 576func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) ClaimGovernance() (*types.Transaction, error) {
 577	return _WithdrawalDelayer.Contract.ClaimGovernance(&_WithdrawalDelayer.TransactOpts)
 578}
 579
 580// Deposit is a paid mutator transaction binding the contract method 0xcfc0b641.
 581//
 582// Solidity: function deposit(address _owner, address _token, uint192 _amount) payable returns()
 583func (_WithdrawalDelayer *WithdrawalDelayerTransactor) Deposit(opts *bind.TransactOpts, _owner common.Address, _token common.Address, _amount *big.Int) (*types.Transaction, error) {
 584	return _WithdrawalDelayer.contract.Transact(opts, "deposit", _owner, _token, _amount)
 585}
 586
 587// Deposit is a paid mutator transaction binding the contract method 0xcfc0b641.
 588//
 589// Solidity: function deposit(address _owner, address _token, uint192 _amount) payable returns()
 590func (_WithdrawalDelayer *WithdrawalDelayerSession) Deposit(_owner common.Address, _token common.Address, _amount *big.Int) (*types.Transaction, error) {
 591	return _WithdrawalDelayer.Contract.Deposit(&_WithdrawalDelayer.TransactOpts, _owner, _token, _amount)
 592}
 593
 594// Deposit is a paid mutator transaction binding the contract method 0xcfc0b641.
 595//
 596// Solidity: function deposit(address _owner, address _token, uint192 _amount) payable returns()
 597func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) Deposit(_owner common.Address, _token common.Address, _amount *big.Int) (*types.Transaction, error) {
 598	return _WithdrawalDelayer.Contract.Deposit(&_WithdrawalDelayer.TransactOpts, _owner, _token, _amount)
 599}
 600
 601// EnableEmergencyMode is a paid mutator transaction binding the contract method 0xc5b1c7d0.
 602//
 603// Solidity: function enableEmergencyMode() returns()
 604func (_WithdrawalDelayer *WithdrawalDelayerTransactor) EnableEmergencyMode(opts *bind.TransactOpts) (*types.Transaction, error) {
 605	return _WithdrawalDelayer.contract.Transact(opts, "enableEmergencyMode")
 606}
 607
 608// EnableEmergencyMode is a paid mutator transaction binding the contract method 0xc5b1c7d0.
 609//
 610// Solidity: function enableEmergencyMode() returns()
 611func (_WithdrawalDelayer *WithdrawalDelayerSession) EnableEmergencyMode() (*types.Transaction, error) {
 612	return _WithdrawalDelayer.Contract.EnableEmergencyMode(&_WithdrawalDelayer.TransactOpts)
 613}
 614
 615// EnableEmergencyMode is a paid mutator transaction binding the contract method 0xc5b1c7d0.
 616//
 617// Solidity: function enableEmergencyMode() returns()
 618func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) EnableEmergencyMode() (*types.Transaction, error) {
 619	return _WithdrawalDelayer.Contract.EnableEmergencyMode(&_WithdrawalDelayer.TransactOpts)
 620}
 621
 622// EscapeHatchWithdrawal is a paid mutator transaction binding the contract method 0x7fd6b102.
 623//
 624// Solidity: function escapeHatchWithdrawal(address _to, address _token, uint256 _amount) returns()
 625func (_WithdrawalDelayer *WithdrawalDelayerTransactor) EscapeHatchWithdrawal(opts *bind.TransactOpts, _to common.Address, _token common.Address, _amount *big.Int) (*types.Transaction, error) {
 626	return _WithdrawalDelayer.contract.Transact(opts, "escapeHatchWithdrawal", _to, _token, _amount)
 627}
 628
 629// EscapeHatchWithdrawal is a paid mutator transaction binding the contract method 0x7fd6b102.
 630//
 631// Solidity: function escapeHatchWithdrawal(address _to, address _token, uint256 _amount) returns()
 632func (_WithdrawalDelayer *WithdrawalDelayerSession) EscapeHatchWithdrawal(_to common.Address, _token common.Address, _amount *big.Int) (*types.Transaction, error) {
 633	return _WithdrawalDelayer.Contract.EscapeHatchWithdrawal(&_WithdrawalDelayer.TransactOpts, _to, _token, _amount)
 634}
 635
 636// EscapeHatchWithdrawal is a paid mutator transaction binding the contract method 0x7fd6b102.
 637//
 638// Solidity: function escapeHatchWithdrawal(address _to, address _token, uint256 _amount) returns()
 639func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) EscapeHatchWithdrawal(_to common.Address, _token common.Address, _amount *big.Int) (*types.Transaction, error) {
 640	return _WithdrawalDelayer.Contract.EscapeHatchWithdrawal(&_WithdrawalDelayer.TransactOpts, _to, _token, _amount)
 641}
 642
 643// TransferEmergencyCouncil is a paid mutator transaction binding the contract method 0xdb2a1a81.
 644//
 645// Solidity: function transferEmergencyCouncil(address newEmergencyCouncil) returns()
 646func (_WithdrawalDelayer *WithdrawalDelayerTransactor) TransferEmergencyCouncil(opts *bind.TransactOpts, newEmergencyCouncil common.Address) (*types.Transaction, error) {
 647	return _WithdrawalDelayer.contract.Transact(opts, "transferEmergencyCouncil", newEmergencyCouncil)
 648}
 649
 650// TransferEmergencyCouncil is a paid mutator transaction binding the contract method 0xdb2a1a81.
 651//
 652// Solidity: function transferEmergencyCouncil(address newEmergencyCouncil) returns()
 653func (_WithdrawalDelayer *WithdrawalDelayerSession) TransferEmergencyCouncil(newEmergencyCouncil common.Address) (*types.Transaction, error) {
 654	return _WithdrawalDelayer.Contract.TransferEmergencyCouncil(&_WithdrawalDelayer.TransactOpts, newEmergencyCouncil)
 655}
 656
 657// TransferEmergencyCouncil is a paid mutator transaction binding the contract method 0xdb2a1a81.
 658//
 659// Solidity: function transferEmergencyCouncil(address newEmergencyCouncil) returns()
 660func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) TransferEmergencyCouncil(newEmergencyCouncil common.Address) (*types.Transaction, error) {
 661	return _WithdrawalDelayer.Contract.TransferEmergencyCouncil(&_WithdrawalDelayer.TransactOpts, newEmergencyCouncil)
 662}
 663
 664// TransferGovernance is a paid mutator transaction binding the contract method 0xd38bfff4.
 665//
 666// Solidity: function transferGovernance(address newGovernance) returns()
 667func (_WithdrawalDelayer *WithdrawalDelayerTransactor) TransferGovernance(opts *bind.TransactOpts, newGovernance common.Address) (*types.Transaction, error) {
 668	return _WithdrawalDelayer.contract.Transact(opts, "transferGovernance", newGovernance)
 669}
 670
 671// TransferGovernance is a paid mutator transaction binding the contract method 0xd38bfff4.
 672//
 673// Solidity: function transferGovernance(address newGovernance) returns()
 674func (_WithdrawalDelayer *WithdrawalDelayerSession) TransferGovernance(newGovernance common.Address) (*types.Transaction, error) {
 675	return _WithdrawalDelayer.Contract.TransferGovernance(&_WithdrawalDelayer.TransactOpts, newGovernance)
 676}
 677
 678// TransferGovernance is a paid mutator transaction binding the contract method 0xd38bfff4.
 679//
 680// Solidity: function transferGovernance(address newGovernance) returns()
 681func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) TransferGovernance(newGovernance common.Address) (*types.Transaction, error) {
 682	return _WithdrawalDelayer.Contract.TransferGovernance(&_WithdrawalDelayer.TransactOpts, newGovernance)
 683}
 684
 685// Withdrawal is a paid mutator transaction binding the contract method 0xde35f282.
 686//
 687// Solidity: function withdrawal(address _owner, address _token) returns()
 688func (_WithdrawalDelayer *WithdrawalDelayerTransactor) Withdrawal(opts *bind.TransactOpts, _owner common.Address, _token common.Address) (*types.Transaction, error) {
 689	return _WithdrawalDelayer.contract.Transact(opts, "withdrawal", _owner, _token)
 690}
 691
 692// Withdrawal is a paid mutator transaction binding the contract method 0xde35f282.
 693//
 694// Solidity: function withdrawal(address _owner, address _token) returns()
 695func (_WithdrawalDelayer *WithdrawalDelayerSession) Withdrawal(_owner common.Address, _token common.Address) (*types.Transaction, error) {
 696	return _WithdrawalDelayer.Contract.Withdrawal(&_WithdrawalDelayer.TransactOpts, _owner, _token)
 697}
 698
 699// Withdrawal is a paid mutator transaction binding the contract method 0xde35f282.
 700//
 701// Solidity: function withdrawal(address _owner, address _token) returns()
 702func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) Withdrawal(_owner common.Address, _token common.Address) (*types.Transaction, error) {
 703	return _WithdrawalDelayer.Contract.Withdrawal(&_WithdrawalDelayer.TransactOpts, _owner, _token)
 704}
 705
 706// WithdrawalDelayerInitializer is a paid mutator transaction binding the contract method 0x42cb7216.
 707//
 708// Solidity: function withdrawalDelayerInitializer(uint64 _initialWithdrawalDelay, address _initialHermezRollup, address _initialHermezGovernanceAddress, address _initialEmergencyCouncil) returns()
 709func (_WithdrawalDelayer *WithdrawalDelayerTransactor) WithdrawalDelayerInitializer(opts *bind.TransactOpts, _initialWithdrawalDelay uint64, _initialHermezRollup common.Address, _initialHermezGovernanceAddress common.Address, _initialEmergencyCouncil common.Address) (*types.Transaction, error) {
 710	return _WithdrawalDelayer.contract.Transact(opts, "withdrawalDelayerInitializer", _initialWithdrawalDelay, _initialHermezRollup, _initialHermezGovernanceAddress, _initialEmergencyCouncil)
 711}
 712
 713// WithdrawalDelayerInitializer is a paid mutator transaction binding the contract method 0x42cb7216.
 714//
 715// Solidity: function withdrawalDelayerInitializer(uint64 _initialWithdrawalDelay, address _initialHermezRollup, address _initialHermezGovernanceAddress, address _initialEmergencyCouncil) returns()
 716func (_WithdrawalDelayer *WithdrawalDelayerSession) WithdrawalDelayerInitializer(_initialWithdrawalDelay uint64, _initialHermezRollup common.Address, _initialHermezGovernanceAddress common.Address, _initialEmergencyCouncil common.Address) (*types.Transaction, error) {
 717	return _WithdrawalDelayer.Contract.WithdrawalDelayerInitializer(&_WithdrawalDelayer.TransactOpts, _initialWithdrawalDelay, _initialHermezRollup, _initialHermezGovernanceAddress, _initialEmergencyCouncil)
 718}
 719
 720// WithdrawalDelayerInitializer is a paid mutator transaction binding the contract method 0x42cb7216.
 721//
 722// Solidity: function withdrawalDelayerInitializer(uint64 _initialWithdrawalDelay, address _initialHermezRollup, address _initialHermezGovernanceAddress, address _initialEmergencyCouncil) returns()
 723func (_WithdrawalDelayer *WithdrawalDelayerTransactorSession) WithdrawalDelayerInitializer(_initialWithdrawalDelay uint64, _initialHermezRollup common.Address, _initialHermezGovernanceAddress common.Address, _initialEmergencyCouncil common.Address) (*types.Transaction, error) {
 724	return _WithdrawalDelayer.Contract.WithdrawalDelayerInitializer(&_WithdrawalDelayer.TransactOpts, _initialWithdrawalDelay, _initialHermezRollup, _initialHermezGovernanceAddress, _initialEmergencyCouncil)
 725}
 726
 727// 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.
 728type WithdrawalDelayerDepositIterator struct {
 729	Event *WithdrawalDelayerDeposit // Event containing the contract specifics and raw log
 730
 731	contract *bind.BoundContract // Generic contract to use for unpacking event data
 732	event    string              // Event name to use for unpacking event data
 733
 734	logs chan types.Log        // Log channel receiving the found contract events
 735	sub  ethereum.Subscription // Subscription for errors, completion and termination
 736	done bool                  // Whether the subscription completed delivering logs
 737	fail error                 // Occurred error to stop iteration
 738}
 739
 740// Next advances the iterator to the subsequent event, returning whether there
 741// are any more events found. In case of a retrieval or parsing error, false is
 742// returned and Error() can be queried for the exact failure.
 743func (it *WithdrawalDelayerDepositIterator) Next() bool {
 744	// If the iterator failed, stop iterating
 745	if it.fail != nil {
 746		return false
 747	}
 748	// If the iterator completed, deliver directly whatever's available
 749	if it.done {
 750		select {
 751		case log := <-it.logs:
 752			it.Event = new(WithdrawalDelayerDeposit)
 753			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 754				it.fail = err
 755				return false
 756			}
 757			it.Event.Raw = log
 758			return true
 759
 760		default:
 761			return false
 762		}
 763	}
 764	// Iterator still in progress, wait for either a data or an error event
 765	select {
 766	case log := <-it.logs:
 767		it.Event = new(WithdrawalDelayerDeposit)
 768		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 769			it.fail = err
 770			return false
 771		}
 772		it.Event.Raw = log
 773		return true
 774
 775	case err := <-it.sub.Err():
 776		it.done = true
 777		it.fail = err
 778		return it.Next()
 779	}
 780}
 781
 782// Error returns any retrieval or parsing error occurred during filtering.
 783func (it *WithdrawalDelayerDepositIterator) Error() error {
 784	return it.fail
 785}
 786
 787// Close terminates the iteration process, releasing any pending underlying
 788// resources.
 789func (it *WithdrawalDelayerDepositIterator) Close() error {
 790	it.sub.Unsubscribe()
 791	return nil
 792}
 793
 794// WithdrawalDelayerDeposit represents a Deposit event raised by the WithdrawalDelayer contract.
 795type WithdrawalDelayerDeposit struct {
 796	Owner            common.Address
 797	Token            common.Address
 798	Amount           *big.Int
 799	DepositTimestamp uint64
 800	Raw              types.Log // Blockchain specific contextual infos
 801}
 802
 803// FilterDeposit is a free log retrieval operation binding the contract event 0x41219b99485f78192a5b9b1be28c7d53c3a2bdbe7900ae40c79fae8d9d6108fd.
 804//
 805// Solidity: event Deposit(address indexed owner, address indexed token, uint192 amount, uint64 depositTimestamp)
 806func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterDeposit(opts *bind.FilterOpts, owner []common.Address, token []common.Address) (*WithdrawalDelayerDepositIterator, error) {
 807
 808	var ownerRule []interface{}
 809	for _, ownerItem := range owner {
 810		ownerRule = append(ownerRule, ownerItem)
 811	}
 812	var tokenRule []interface{}
 813	for _, tokenItem := range token {
 814		tokenRule = append(tokenRule, tokenItem)
 815	}
 816
 817	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "Deposit", ownerRule, tokenRule)
 818	if err != nil {
 819		return nil, err
 820	}
 821	return &WithdrawalDelayerDepositIterator{contract: _WithdrawalDelayer.contract, event: "Deposit", logs: logs, sub: sub}, nil
 822}
 823
 824// WatchDeposit is a free log subscription operation binding the contract event 0x41219b99485f78192a5b9b1be28c7d53c3a2bdbe7900ae40c79fae8d9d6108fd.
 825//
 826// Solidity: event Deposit(address indexed owner, address indexed token, uint192 amount, uint64 depositTimestamp)
 827func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchDeposit(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerDeposit, owner []common.Address, token []common.Address) (event.Subscription, error) {
 828
 829	var ownerRule []interface{}
 830	for _, ownerItem := range owner {
 831		ownerRule = append(ownerRule, ownerItem)
 832	}
 833	var tokenRule []interface{}
 834	for _, tokenItem := range token {
 835		tokenRule = append(tokenRule, tokenItem)
 836	}
 837
 838	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "Deposit", ownerRule, tokenRule)
 839	if err != nil {
 840		return nil, err
 841	}
 842	return event.NewSubscription(func(quit <-chan struct{}) error {
 843		defer sub.Unsubscribe()
 844		for {
 845			select {
 846			case log := <-logs:
 847				// New log arrived, parse the event and forward to the user
 848				event := new(WithdrawalDelayerDeposit)
 849				if err := _WithdrawalDelayer.contract.UnpackLog(event, "Deposit", log); err != nil {
 850					return err
 851				}
 852				event.Raw = log
 853
 854				select {
 855				case sink <- event:
 856				case err := <-sub.Err():
 857					return err
 858				case <-quit:
 859					return nil
 860				}
 861			case err := <-sub.Err():
 862				return err
 863			case <-quit:
 864				return nil
 865			}
 866		}
 867	}), nil
 868}
 869
 870// ParseDeposit is a log parse operation binding the contract event 0x41219b99485f78192a5b9b1be28c7d53c3a2bdbe7900ae40c79fae8d9d6108fd.
 871//
 872// Solidity: event Deposit(address indexed owner, address indexed token, uint192 amount, uint64 depositTimestamp)
 873func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseDeposit(log types.Log) (*WithdrawalDelayerDeposit, error) {
 874	event := new(WithdrawalDelayerDeposit)
 875	if err := _WithdrawalDelayer.contract.UnpackLog(event, "Deposit", log); err != nil {
 876		return nil, err
 877	}
 878	return event, nil
 879}
 880
 881// 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.
 882type WithdrawalDelayerEmergencyModeEnabledIterator struct {
 883	Event *WithdrawalDelayerEmergencyModeEnabled // Event containing the contract specifics and raw log
 884
 885	contract *bind.BoundContract // Generic contract to use for unpacking event data
 886	event    string              // Event name to use for unpacking event data
 887
 888	logs chan types.Log        // Log channel receiving the found contract events
 889	sub  ethereum.Subscription // Subscription for errors, completion and termination
 890	done bool                  // Whether the subscription completed delivering logs
 891	fail error                 // Occurred error to stop iteration
 892}
 893
 894// Next advances the iterator to the subsequent event, returning whether there
 895// are any more events found. In case of a retrieval or parsing error, false is
 896// returned and Error() can be queried for the exact failure.
 897func (it *WithdrawalDelayerEmergencyModeEnabledIterator) Next() bool {
 898	// If the iterator failed, stop iterating
 899	if it.fail != nil {
 900		return false
 901	}
 902	// If the iterator completed, deliver directly whatever's available
 903	if it.done {
 904		select {
 905		case log := <-it.logs:
 906			it.Event = new(WithdrawalDelayerEmergencyModeEnabled)
 907			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 908				it.fail = err
 909				return false
 910			}
 911			it.Event.Raw = log
 912			return true
 913
 914		default:
 915			return false
 916		}
 917	}
 918	// Iterator still in progress, wait for either a data or an error event
 919	select {
 920	case log := <-it.logs:
 921		it.Event = new(WithdrawalDelayerEmergencyModeEnabled)
 922		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
 923			it.fail = err
 924			return false
 925		}
 926		it.Event.Raw = log
 927		return true
 928
 929	case err := <-it.sub.Err():
 930		it.done = true
 931		it.fail = err
 932		return it.Next()
 933	}
 934}
 935
 936// Error returns any retrieval or parsing error occurred during filtering.
 937func (it *WithdrawalDelayerEmergencyModeEnabledIterator) Error() error {
 938	return it.fail
 939}
 940
 941// Close terminates the iteration process, releasing any pending underlying
 942// resources.
 943func (it *WithdrawalDelayerEmergencyModeEnabledIterator) Close() error {
 944	it.sub.Unsubscribe()
 945	return nil
 946}
 947
 948// WithdrawalDelayerEmergencyModeEnabled represents a EmergencyModeEnabled event raised by the WithdrawalDelayer contract.
 949type WithdrawalDelayerEmergencyModeEnabled struct {
 950	Raw types.Log // Blockchain specific contextual infos
 951}
 952
 953// FilterEmergencyModeEnabled is a free log retrieval operation binding the contract event 0x2064d51aa5a8bd67928c7675e267e05c67ad5adf7c9098d0a602d01f36fda9c5.
 954//
 955// Solidity: event EmergencyModeEnabled()
 956func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterEmergencyModeEnabled(opts *bind.FilterOpts) (*WithdrawalDelayerEmergencyModeEnabledIterator, error) {
 957
 958	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "EmergencyModeEnabled")
 959	if err != nil {
 960		return nil, err
 961	}
 962	return &WithdrawalDelayerEmergencyModeEnabledIterator{contract: _WithdrawalDelayer.contract, event: "EmergencyModeEnabled", logs: logs, sub: sub}, nil
 963}
 964
 965// WatchEmergencyModeEnabled is a free log subscription operation binding the contract event 0x2064d51aa5a8bd67928c7675e267e05c67ad5adf7c9098d0a602d01f36fda9c5.
 966//
 967// Solidity: event EmergencyModeEnabled()
 968func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchEmergencyModeEnabled(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerEmergencyModeEnabled) (event.Subscription, error) {
 969
 970	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "EmergencyModeEnabled")
 971	if err != nil {
 972		return nil, err
 973	}
 974	return event.NewSubscription(func(quit <-chan struct{}) error {
 975		defer sub.Unsubscribe()
 976		for {
 977			select {
 978			case log := <-logs:
 979				// New log arrived, parse the event and forward to the user
 980				event := new(WithdrawalDelayerEmergencyModeEnabled)
 981				if err := _WithdrawalDelayer.contract.UnpackLog(event, "EmergencyModeEnabled", log); err != nil {
 982					return err
 983				}
 984				event.Raw = log
 985
 986				select {
 987				case sink <- event:
 988				case err := <-sub.Err():
 989					return err
 990				case <-quit:
 991					return nil
 992				}
 993			case err := <-sub.Err():
 994				return err
 995			case <-quit:
 996				return nil
 997			}
 998		}
 999	}), nil
1000}
1001
1002// ParseEmergencyModeEnabled is a log parse operation binding the contract event 0x2064d51aa5a8bd67928c7675e267e05c67ad5adf7c9098d0a602d01f36fda9c5.
1003//
1004// Solidity: event EmergencyModeEnabled()
1005func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseEmergencyModeEnabled(log types.Log) (*WithdrawalDelayerEmergencyModeEnabled, error) {
1006	event := new(WithdrawalDelayerEmergencyModeEnabled)
1007	if err := _WithdrawalDelayer.contract.UnpackLog(event, "EmergencyModeEnabled", log); err != nil {
1008		return nil, err
1009	}
1010	return event, nil
1011}
1012
1013// 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.
1014type WithdrawalDelayerEscapeHatchWithdrawalIterator struct {
1015	Event *WithdrawalDelayerEscapeHatchWithdrawal // Event containing the contract specifics and raw log
1016
1017	contract *bind.BoundContract // Generic contract to use for unpacking event data
1018	event    string              // Event name to use for unpacking event data
1019
1020	logs chan types.Log        // Log channel receiving the found contract events
1021	sub  ethereum.Subscription // Subscription for errors, completion and termination
1022	done bool                  // Whether the subscription completed delivering logs
1023	fail error                 // Occurred error to stop iteration
1024}
1025
1026// Next advances the iterator to the subsequent event, returning whether there
1027// are any more events found. In case of a retrieval or parsing error, false is
1028// returned and Error() can be queried for the exact failure.
1029func (it *WithdrawalDelayerEscapeHatchWithdrawalIterator) Next() bool {
1030	// If the iterator failed, stop iterating
1031	if it.fail != nil {
1032		return false
1033	}
1034	// If the iterator completed, deliver directly whatever's available
1035	if it.done {
1036		select {
1037		case log := <-it.logs:
1038			it.Event = new(WithdrawalDelayerEscapeHatchWithdrawal)
1039			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1040				it.fail = err
1041				return false
1042			}
1043			it.Event.Raw = log
1044			return true
1045
1046		default:
1047			return false
1048		}
1049	}
1050	// Iterator still in progress, wait for either a data or an error event
1051	select {
1052	case log := <-it.logs:
1053		it.Event = new(WithdrawalDelayerEscapeHatchWithdrawal)
1054		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1055			it.fail = err
1056			return false
1057		}
1058		it.Event.Raw = log
1059		return true
1060
1061	case err := <-it.sub.Err():
1062		it.done = true
1063		it.fail = err
1064		return it.Next()
1065	}
1066}
1067
1068// Error returns any retrieval or parsing error occurred during filtering.
1069func (it *WithdrawalDelayerEscapeHatchWithdrawalIterator) Error() error {
1070	return it.fail
1071}
1072
1073// Close terminates the iteration process, releasing any pending underlying
1074// resources.
1075func (it *WithdrawalDelayerEscapeHatchWithdrawalIterator) Close() error {
1076	it.sub.Unsubscribe()
1077	return nil
1078}
1079
1080// WithdrawalDelayerEscapeHatchWithdrawal represents a EscapeHatchWithdrawal event raised by the WithdrawalDelayer contract.
1081type WithdrawalDelayerEscapeHatchWithdrawal struct {
1082	Who    common.Address
1083	To     common.Address
1084	Token  common.Address
1085	Amount *big.Int
1086	Raw    types.Log // Blockchain specific contextual infos
1087}
1088
1089// FilterEscapeHatchWithdrawal is a free log retrieval operation binding the contract event 0xde200220117ba95c9a6c4a1a13bb06b0b7be90faa85c8fb4576630119f891693.
1090//
1091// Solidity: event EscapeHatchWithdrawal(address indexed who, address indexed to, address indexed token, uint256 amount)
1092func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterEscapeHatchWithdrawal(opts *bind.FilterOpts, who []common.Address, to []common.Address, token []common.Address) (*WithdrawalDelayerEscapeHatchWithdrawalIterator, error) {
1093
1094	var whoRule []interface{}
1095	for _, whoItem := range who {
1096		whoRule = append(whoRule, whoItem)
1097	}
1098	var toRule []interface{}
1099	for _, toItem := range to {
1100		toRule = append(toRule, toItem)
1101	}
1102	var tokenRule []interface{}
1103	for _, tokenItem := range token {
1104		tokenRule = append(tokenRule, tokenItem)
1105	}
1106
1107	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "EscapeHatchWithdrawal", whoRule, toRule, tokenRule)
1108	if err != nil {
1109		return nil, err
1110	}
1111	return &WithdrawalDelayerEscapeHatchWithdrawalIterator{contract: _WithdrawalDelayer.contract, event: "EscapeHatchWithdrawal", logs: logs, sub: sub}, nil
1112}
1113
1114// WatchEscapeHatchWithdrawal is a free log subscription operation binding the contract event 0xde200220117ba95c9a6c4a1a13bb06b0b7be90faa85c8fb4576630119f891693.
1115//
1116// Solidity: event EscapeHatchWithdrawal(address indexed who, address indexed to, address indexed token, uint256 amount)
1117func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchEscapeHatchWithdrawal(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerEscapeHatchWithdrawal, who []common.Address, to []common.Address, token []common.Address) (event.Subscription, error) {
1118
1119	var whoRule []interface{}
1120	for _, whoItem := range who {
1121		whoRule = append(whoRule, whoItem)
1122	}
1123	var toRule []interface{}
1124	for _, toItem := range to {
1125		toRule = append(toRule, toItem)
1126	}
1127	var tokenRule []interface{}
1128	for _, tokenItem := range token {
1129		tokenRule = append(tokenRule, tokenItem)
1130	}
1131
1132	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "EscapeHatchWithdrawal", whoRule, toRule, tokenRule)
1133	if err != nil {
1134		return nil, err
1135	}
1136	return event.NewSubscription(func(quit <-chan struct{}) error {
1137		defer sub.Unsubscribe()
1138		for {
1139			select {
1140			case log := <-logs:
1141				// New log arrived, parse the event and forward to the user
1142				event := new(WithdrawalDelayerEscapeHatchWithdrawal)
1143				if err := _WithdrawalDelayer.contract.UnpackLog(event, "EscapeHatchWithdrawal", log); err != nil {
1144					return err
1145				}
1146				event.Raw = log
1147
1148				select {
1149				case sink <- event:
1150				case err := <-sub.Err():
1151					return err
1152				case <-quit:
1153					return nil
1154				}
1155			case err := <-sub.Err():
1156				return err
1157			case <-quit:
1158				return nil
1159			}
1160		}
1161	}), nil
1162}
1163
1164// ParseEscapeHatchWithdrawal is a log parse operation binding the contract event 0xde200220117ba95c9a6c4a1a13bb06b0b7be90faa85c8fb4576630119f891693.
1165//
1166// Solidity: event EscapeHatchWithdrawal(address indexed who, address indexed to, address indexed token, uint256 amount)
1167func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseEscapeHatchWithdrawal(log types.Log) (*WithdrawalDelayerEscapeHatchWithdrawal, error) {
1168	event := new(WithdrawalDelayerEscapeHatchWithdrawal)
1169	if err := _WithdrawalDelayer.contract.UnpackLog(event, "EscapeHatchWithdrawal", log); err != nil {
1170		return nil, err
1171	}
1172	return event, nil
1173}
1174
1175// WithdrawalDelayerNewEmergencyCouncilIterator is returned from FilterNewEmergencyCouncil and is used to iterate over the raw logs and unpacked data for NewEmergencyCouncil events raised by the WithdrawalDelayer contract.
1176type WithdrawalDelayerNewEmergencyCouncilIterator struct {
1177	Event *WithdrawalDelayerNewEmergencyCouncil // Event containing the contract specifics and raw log
1178
1179	contract *bind.BoundContract // Generic contract to use for unpacking event data
1180	event    string              // Event name to use for unpacking event data
1181
1182	logs chan types.Log        // Log channel receiving the found contract events
1183	sub  ethereum.Subscription // Subscription for errors, completion and termination
1184	done bool                  // Whether the subscription completed delivering logs
1185	fail error                 // Occurred error to stop iteration
1186}
1187
1188// Next advances the iterator to the subsequent event, returning whether there
1189// are any more events found. In case of a retrieval or parsing error, false is
1190// returned and Error() can be queried for the exact failure.
1191func (it *WithdrawalDelayerNewEmergencyCouncilIterator) Next() bool {
1192	// If the iterator failed, stop iterating
1193	if it.fail != nil {
1194		return false
1195	}
1196	// If the iterator completed, deliver directly whatever's available
1197	if it.done {
1198		select {
1199		case log := <-it.logs:
1200			it.Event = new(WithdrawalDelayerNewEmergencyCouncil)
1201			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1202				it.fail = err
1203				return false
1204			}
1205			it.Event.Raw = log
1206			return true
1207
1208		default:
1209			return false
1210		}
1211	}
1212	// Iterator still in progress, wait for either a data or an error event
1213	select {
1214	case log := <-it.logs:
1215		it.Event = new(WithdrawalDelayerNewEmergencyCouncil)
1216		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1217			it.fail = err
1218			return false
1219		}
1220		it.Event.Raw = log
1221		return true
1222
1223	case err := <-it.sub.Err():
1224		it.done = true
1225		it.fail = err
1226		return it.Next()
1227	}
1228}
1229
1230// Error returns any retrieval or parsing error occurred during filtering.
1231func (it *WithdrawalDelayerNewEmergencyCouncilIterator) Error() error {
1232	return it.fail
1233}
1234
1235// Close terminates the iteration process, releasing any pending underlying
1236// resources.
1237func (it *WithdrawalDelayerNewEmergencyCouncilIterator) Close() error {
1238	it.sub.Unsubscribe()
1239	return nil
1240}
1241
1242// WithdrawalDelayerNewEmergencyCouncil represents a NewEmergencyCouncil event raised by the WithdrawalDelayer contract.
1243type WithdrawalDelayerNewEmergencyCouncil struct {
1244	NewEmergencyCouncil common.Address
1245	Raw                 types.Log // Blockchain specific contextual infos
1246}
1247
1248// FilterNewEmergencyCouncil is a free log retrieval operation binding the contract event 0xcc267667d474ef34ee2de2d060e7c8b2c7295cefa22e57fd7049e22b5fdb5396.
1249//
1250// Solidity: event NewEmergencyCouncil(address newEmergencyCouncil)
1251func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterNewEmergencyCouncil(opts *bind.FilterOpts) (*WithdrawalDelayerNewEmergencyCouncilIterator, error) {
1252
1253	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "NewEmergencyCouncil")
1254	if err != nil {
1255		return nil, err
1256	}
1257	return &WithdrawalDelayerNewEmergencyCouncilIterator{contract: _WithdrawalDelayer.contract, event: "NewEmergencyCouncil", logs: logs, sub: sub}, nil
1258}
1259
1260// WatchNewEmergencyCouncil is a free log subscription operation binding the contract event 0xcc267667d474ef34ee2de2d060e7c8b2c7295cefa22e57fd7049e22b5fdb5396.
1261//
1262// Solidity: event NewEmergencyCouncil(address newEmergencyCouncil)
1263func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchNewEmergencyCouncil(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerNewEmergencyCouncil) (event.Subscription, error) {
1264
1265	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "NewEmergencyCouncil")
1266	if err != nil {
1267		return nil, err
1268	}
1269	return event.NewSubscription(func(quit <-chan struct{}) error {
1270		defer sub.Unsubscribe()
1271		for {
1272			select {
1273			case log := <-logs:
1274				// New log arrived, parse the event and forward to the user
1275				event := new(WithdrawalDelayerNewEmergencyCouncil)
1276				if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewEmergencyCouncil", log); err != nil {
1277					return err
1278				}
1279				event.Raw = log
1280
1281				select {
1282				case sink <- event:
1283				case err := <-sub.Err():
1284					return err
1285				case <-quit:
1286					return nil
1287				}
1288			case err := <-sub.Err():
1289				return err
1290			case <-quit:
1291				return nil
1292			}
1293		}
1294	}), nil
1295}
1296
1297// ParseNewEmergencyCouncil is a log parse operation binding the contract event 0xcc267667d474ef34ee2de2d060e7c8b2c7295cefa22e57fd7049e22b5fdb5396.
1298//
1299// Solidity: event NewEmergencyCouncil(address newEmergencyCouncil)
1300func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseNewEmergencyCouncil(log types.Log) (*WithdrawalDelayerNewEmergencyCouncil, error) {
1301	event := new(WithdrawalDelayerNewEmergencyCouncil)
1302	if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewEmergencyCouncil", log); err != nil {
1303		return nil, err
1304	}
1305	return event, nil
1306}
1307
1308// WithdrawalDelayerNewHermezGovernanceAddressIterator is returned from FilterNewHermezGovernanceAddress and is used to iterate over the raw logs and unpacked data for NewHermezGovernanceAddress events raised by the WithdrawalDelayer contract.
1309type WithdrawalDelayerNewHermezGovernanceAddressIterator struct {
1310	Event *WithdrawalDelayerNewHermezGovernanceAddress // Event containing the contract specifics and raw log
1311
1312	contract *bind.BoundContract // Generic contract to use for unpacking event data
1313	event    string              // Event name to use for unpacking event data
1314
1315	logs chan types.Log        // Log channel receiving the found contract events
1316	sub  ethereum.Subscription // Subscription for errors, completion and termination
1317	done bool                  // Whether the subscription completed delivering logs
1318	fail error                 // Occurred error to stop iteration
1319}
1320
1321// Next advances the iterator to the subsequent event, returning whether there
1322// are any more events found. In case of a retrieval or parsing error, false is
1323// returned and Error() can be queried for the exact failure.
1324func (it *WithdrawalDelayerNewHermezGovernanceAddressIterator) Next() bool {
1325	// If the iterator failed, stop iterating
1326	if it.fail != nil {
1327		return false
1328	}
1329	// If the iterator completed, deliver directly whatever's available
1330	if it.done {
1331		select {
1332		case log := <-it.logs:
1333			it.Event = new(WithdrawalDelayerNewHermezGovernanceAddress)
1334			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1335				it.fail = err
1336				return false
1337			}
1338			it.Event.Raw = log
1339			return true
1340
1341		default:
1342			return false
1343		}
1344	}
1345	// Iterator still in progress, wait for either a data or an error event
1346	select {
1347	case log := <-it.logs:
1348		it.Event = new(WithdrawalDelayerNewHermezGovernanceAddress)
1349		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1350			it.fail = err
1351			return false
1352		}
1353		it.Event.Raw = log
1354		return true
1355
1356	case err := <-it.sub.Err():
1357		it.done = true
1358		it.fail = err
1359		return it.Next()
1360	}
1361}
1362
1363// Error returns any retrieval or parsing error occurred during filtering.
1364func (it *WithdrawalDelayerNewHermezGovernanceAddressIterator) Error() error {
1365	return it.fail
1366}
1367
1368// Close terminates the iteration process, releasing any pending underlying
1369// resources.
1370func (it *WithdrawalDelayerNewHermezGovernanceAddressIterator) Close() error {
1371	it.sub.Unsubscribe()
1372	return nil
1373}
1374
1375// WithdrawalDelayerNewHermezGovernanceAddress represents a NewHermezGovernanceAddress event raised by the WithdrawalDelayer contract.
1376type WithdrawalDelayerNewHermezGovernanceAddress struct {
1377	NewHermezGovernanceAddress common.Address
1378	Raw                        types.Log // Blockchain specific contextual infos
1379}
1380
1381// FilterNewHermezGovernanceAddress is a free log retrieval operation binding the contract event 0x3bf02437d5cd40067085d9dac2c3cdcbef0a449d98a259a40d9c24380aca81bf.
1382//
1383// Solidity: event NewHermezGovernanceAddress(address newHermezGovernanceAddress)
1384func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterNewHermezGovernanceAddress(opts *bind.FilterOpts) (*WithdrawalDelayerNewHermezGovernanceAddressIterator, error) {
1385
1386	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "NewHermezGovernanceAddress")
1387	if err != nil {
1388		return nil, err
1389	}
1390	return &WithdrawalDelayerNewHermezGovernanceAddressIterator{contract: _WithdrawalDelayer.contract, event: "NewHermezGovernanceAddress", logs: logs, sub: sub}, nil
1391}
1392
1393// WatchNewHermezGovernanceAddress is a free log subscription operation binding the contract event 0x3bf02437d5cd40067085d9dac2c3cdcbef0a449d98a259a40d9c24380aca81bf.
1394//
1395// Solidity: event NewHermezGovernanceAddress(address newHermezGovernanceAddress)
1396func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchNewHermezGovernanceAddress(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerNewHermezGovernanceAddress) (event.Subscription, error) {
1397
1398	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "NewHermezGovernanceAddress")
1399	if err != nil {
1400		return nil, err
1401	}
1402	return event.NewSubscription(func(quit <-chan struct{}) error {
1403		defer sub.Unsubscribe()
1404		for {
1405			select {
1406			case log := <-logs:
1407				// New log arrived, parse the event and forward to the user
1408				event := new(WithdrawalDelayerNewHermezGovernanceAddress)
1409				if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewHermezGovernanceAddress", log); err != nil {
1410					return err
1411				}
1412				event.Raw = log
1413
1414				select {
1415				case sink <- event:
1416				case err := <-sub.Err():
1417					return err
1418				case <-quit:
1419					return nil
1420				}
1421			case err := <-sub.Err():
1422				return err
1423			case <-quit:
1424				return nil
1425			}
1426		}
1427	}), nil
1428}
1429
1430// ParseNewHermezGovernanceAddress is a log parse operation binding the contract event 0x3bf02437d5cd40067085d9dac2c3cdcbef0a449d98a259a40d9c24380aca81bf.
1431//
1432// Solidity: event NewHermezGovernanceAddress(address newHermezGovernanceAddress)
1433func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseNewHermezGovernanceAddress(log types.Log) (*WithdrawalDelayerNewHermezGovernanceAddress, error) {
1434	event := new(WithdrawalDelayerNewHermezGovernanceAddress)
1435	if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewHermezGovernanceAddress", log); err != nil {
1436		return nil, err
1437	}
1438	return event, nil
1439}
1440
1441// 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.
1442type WithdrawalDelayerNewWithdrawalDelayIterator struct {
1443	Event *WithdrawalDelayerNewWithdrawalDelay // Event containing the contract specifics and raw log
1444
1445	contract *bind.BoundContract // Generic contract to use for unpacking event data
1446	event    string              // Event name to use for unpacking event data
1447
1448	logs chan types.Log        // Log channel receiving the found contract events
1449	sub  ethereum.Subscription // Subscription for errors, completion and termination
1450	done bool                  // Whether the subscription completed delivering logs
1451	fail error                 // Occurred error to stop iteration
1452}
1453
1454// Next advances the iterator to the subsequent event, returning whether there
1455// are any more events found. In case of a retrieval or parsing error, false is
1456// returned and Error() can be queried for the exact failure.
1457func (it *WithdrawalDelayerNewWithdrawalDelayIterator) Next() bool {
1458	// If the iterator failed, stop iterating
1459	if it.fail != nil {
1460		return false
1461	}
1462	// If the iterator completed, deliver directly whatever's available
1463	if it.done {
1464		select {
1465		case log := <-it.logs:
1466			it.Event = new(WithdrawalDelayerNewWithdrawalDelay)
1467			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1468				it.fail = err
1469				return false
1470			}
1471			it.Event.Raw = log
1472			return true
1473
1474		default:
1475			return false
1476		}
1477	}
1478	// Iterator still in progress, wait for either a data or an error event
1479	select {
1480	case log := <-it.logs:
1481		it.Event = new(WithdrawalDelayerNewWithdrawalDelay)
1482		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1483			it.fail = err
1484			return false
1485		}
1486		it.Event.Raw = log
1487		return true
1488
1489	case err := <-it.sub.Err():
1490		it.done = true
1491		it.fail = err
1492		return it.Next()
1493	}
1494}
1495
1496// Error returns any retrieval or parsing error occurred during filtering.
1497func (it *WithdrawalDelayerNewWithdrawalDelayIterator) Error() error {
1498	return it.fail
1499}
1500
1501// Close terminates the iteration process, releasing any pending underlying
1502// resources.
1503func (it *WithdrawalDelayerNewWithdrawalDelayIterator) Close() error {
1504	it.sub.Unsubscribe()
1505	return nil
1506}
1507
1508// WithdrawalDelayerNewWithdrawalDelay represents a NewWithdrawalDelay event raised by the WithdrawalDelayer contract.
1509type WithdrawalDelayerNewWithdrawalDelay struct {
1510	WithdrawalDelay uint64
1511	Raw             types.Log // Blockchain specific contextual infos
1512}
1513
1514// FilterNewWithdrawalDelay is a free log retrieval operation binding the contract event 0x6b3670ab51e04a9da086741e5fd1eb36ffaf1d661a15330c528e1f3e0c8722d7.
1515//
1516// Solidity: event NewWithdrawalDelay(uint64 withdrawalDelay)
1517func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterNewWithdrawalDelay(opts *bind.FilterOpts) (*WithdrawalDelayerNewWithdrawalDelayIterator, error) {
1518
1519	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "NewWithdrawalDelay")
1520	if err != nil {
1521		return nil, err
1522	}
1523	return &WithdrawalDelayerNewWithdrawalDelayIterator{contract: _WithdrawalDelayer.contract, event: "NewWithdrawalDelay", logs: logs, sub: sub}, nil
1524}
1525
1526// WatchNewWithdrawalDelay is a free log subscription operation binding the contract event 0x6b3670ab51e04a9da086741e5fd1eb36ffaf1d661a15330c528e1f3e0c8722d7.
1527//
1528// Solidity: event NewWithdrawalDelay(uint64 withdrawalDelay)
1529func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchNewWithdrawalDelay(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerNewWithdrawalDelay) (event.Subscription, error) {
1530
1531	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "NewWithdrawalDelay")
1532	if err != nil {
1533		return nil, err
1534	}
1535	return event.NewSubscription(func(quit <-chan struct{}) error {
1536		defer sub.Unsubscribe()
1537		for {
1538			select {
1539			case log := <-logs:
1540				// New log arrived, parse the event and forward to the user
1541				event := new(WithdrawalDelayerNewWithdrawalDelay)
1542				if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewWithdrawalDelay", log); err != nil {
1543					return err
1544				}
1545				event.Raw = log
1546
1547				select {
1548				case sink <- event:
1549				case err := <-sub.Err():
1550					return err
1551				case <-quit:
1552					return nil
1553				}
1554			case err := <-sub.Err():
1555				return err
1556			case <-quit:
1557				return nil
1558			}
1559		}
1560	}), nil
1561}
1562
1563// ParseNewWithdrawalDelay is a log parse operation binding the contract event 0x6b3670ab51e04a9da086741e5fd1eb36ffaf1d661a15330c528e1f3e0c8722d7.
1564//
1565// Solidity: event NewWithdrawalDelay(uint64 withdrawalDelay)
1566func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseNewWithdrawalDelay(log types.Log) (*WithdrawalDelayerNewWithdrawalDelay, error) {
1567	event := new(WithdrawalDelayerNewWithdrawalDelay)
1568	if err := _WithdrawalDelayer.contract.UnpackLog(event, "NewWithdrawalDelay", log); err != nil {
1569		return nil, err
1570	}
1571	return event, nil
1572}
1573
1574// 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.
1575type WithdrawalDelayerWithdrawIterator struct {
1576	Event *WithdrawalDelayerWithdraw // Event containing the contract specifics and raw log
1577
1578	contract *bind.BoundContract // Generic contract to use for unpacking event data
1579	event    string              // Event name to use for unpacking event data
1580
1581	logs chan types.Log        // Log channel receiving the found contract events
1582	sub  ethereum.Subscription // Subscription for errors, completion and termination
1583	done bool                  // Whether the subscription completed delivering logs
1584	fail error                 // Occurred error to stop iteration
1585}
1586
1587// Next advances the iterator to the subsequent event, returning whether there
1588// are any more events found. In case of a retrieval or parsing error, false is
1589// returned and Error() can be queried for the exact failure.
1590func (it *WithdrawalDelayerWithdrawIterator) Next() bool {
1591	// If the iterator failed, stop iterating
1592	if it.fail != nil {
1593		return false
1594	}
1595	// If the iterator completed, deliver directly whatever's available
1596	if it.done {
1597		select {
1598		case log := <-it.logs:
1599			it.Event = new(WithdrawalDelayerWithdraw)
1600			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1601				it.fail = err
1602				return false
1603			}
1604			it.Event.Raw = log
1605			return true
1606
1607		default:
1608			return false
1609		}
1610	}
1611	// Iterator still in progress, wait for either a data or an error event
1612	select {
1613	case log := <-it.logs:
1614		it.Event = new(WithdrawalDelayerWithdraw)
1615		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1616			it.fail = err
1617			return false
1618		}
1619		it.Event.Raw = log
1620		return true
1621
1622	case err := <-it.sub.Err():
1623		it.done = true
1624		it.fail = err
1625		return it.Next()
1626	}
1627}
1628
1629// Error returns any retrieval or parsing error occurred during filtering.
1630func (it *WithdrawalDelayerWithdrawIterator) Error() error {
1631	return it.fail
1632}
1633
1634// Close terminates the iteration process, releasing any pending underlying
1635// resources.
1636func (it *WithdrawalDelayerWithdrawIterator) Close() error {
1637	it.sub.Unsubscribe()
1638	return nil
1639}
1640
1641// WithdrawalDelayerWithdraw represents a Withdraw event raised by the WithdrawalDelayer contract.
1642type WithdrawalDelayerWithdraw struct {
1643	Token  common.Address
1644	Owner  common.Address
1645	Amount *big.Int
1646	Raw    types.Log // Blockchain specific contextual infos
1647}
1648
1649// FilterWithdraw is a free log retrieval operation binding the contract event 0x72608e45b52a95a12c2ac7f15ff53f92fc9572c9d84b6e6b5d7f0f7826cf3271.
1650//
1651// Solidity: event Withdraw(address indexed token, address indexed owner, uint192 amount)
1652func (_WithdrawalDelayer *WithdrawalDelayerFilterer) FilterWithdraw(opts *bind.FilterOpts, token []common.Address, owner []common.Address) (*WithdrawalDelayerWithdrawIterator, error) {
1653
1654	var tokenRule []interface{}
1655	for _, tokenItem := range token {
1656		tokenRule = append(tokenRule, tokenItem)
1657	}
1658	var ownerRule []interface{}
1659	for _, ownerItem := range owner {
1660		ownerRule = append(ownerRule, ownerItem)
1661	}
1662
1663	logs, sub, err := _WithdrawalDelayer.contract.FilterLogs(opts, "Withdraw", tokenRule, ownerRule)
1664	if err != nil {
1665		return nil, err
1666	}
1667	return &WithdrawalDelayerWithdrawIterator{contract: _WithdrawalDelayer.contract, event: "Withdraw", logs: logs, sub: sub}, nil
1668}
1669
1670// WatchWithdraw is a free log subscription operation binding the contract event 0x72608e45b52a95a12c2ac7f15ff53f92fc9572c9d84b6e6b5d7f0f7826cf3271.
1671//
1672// Solidity: event Withdraw(address indexed token, address indexed owner, uint192 amount)
1673func (_WithdrawalDelayer *WithdrawalDelayerFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *WithdrawalDelayerWithdraw, token []common.Address, owner []common.Address) (event.Subscription, error) {
1674
1675	var tokenRule []interface{}
1676	for _, tokenItem := range token {
1677		tokenRule = append(tokenRule, tokenItem)
1678	}
1679	var ownerRule []interface{}
1680	for _, ownerItem := range owner {
1681		ownerRule = append(ownerRule, ownerItem)
1682	}
1683
1684	logs, sub, err := _WithdrawalDelayer.contract.WatchLogs(opts, "Withdraw", tokenRule, ownerRule)
1685	if err != nil {
1686		return nil, err
1687	}
1688	return event.NewSubscription(func(quit <-chan struct{}) error {
1689		defer sub.Unsubscribe()
1690		for {
1691			select {
1692			case log := <-logs:
1693				// New log arrived, parse the event and forward to the user
1694				event := new(WithdrawalDelayerWithdraw)
1695				if err := _WithdrawalDelayer.contract.UnpackLog(event, "Withdraw", log); err != nil {
1696					return err
1697				}
1698				event.Raw = log
1699
1700				select {
1701				case sink <- event:
1702				case err := <-sub.Err():
1703					return err
1704				case <-quit:
1705					return nil
1706				}
1707			case err := <-sub.Err():
1708				return err
1709			case <-quit:
1710				return nil
1711			}
1712		}
1713	}), nil
1714}
1715
1716// ParseWithdraw is a log parse operation binding the contract event 0x72608e45b52a95a12c2ac7f15ff53f92fc9572c9d84b6e6b5d7f0f7826cf3271.
1717//
1718// Solidity: event Withdraw(address indexed token, address indexed owner, uint192 amount)
1719func (_WithdrawalDelayer *WithdrawalDelayerFilterer) ParseWithdraw(log types.Log) (*WithdrawalDelayerWithdraw, error) {
1720	event := new(WithdrawalDelayerWithdraw)
1721	if err := _WithdrawalDelayer.contract.UnpackLog(event, "Withdraw", log); err != nil {
1722		return nil, err
1723	}
1724	return event, nil
1725}