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