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