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