arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
hermez-node/eth/contracts/hermez/Hermez.go
eth/contracts/hermez/Hermez.goRaw
   1// Code generated - DO NOT EDIT.
   2// This file is a generated binding and any manual changes will be lost.
   3
   4package Hermez
   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// HermezABI is the input ABI used to generate the binding from.
  30const HermezABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"tokenID\",\"type\":\"uint32\"}],\"name\":\"AddToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"batchNum\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"l1UserTxsLen\",\"type\":\"uint16\"}],\"name\":\"ForgeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"forgeL1L2BatchTimeout\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeAddToken\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"withdrawalDelay\",\"type\":\"uint64\"}],\"name\":\"InitializeHermezEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"queueIndex\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"position\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"l1UserTx\",\"type\":\"bytes\"}],\"name\":\"L1UserTxEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"SafeMode\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"numBucket\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockStamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"withdrawals\",\"type\":\"uint256\"}],\"name\":\"UpdateBucketWithdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[4][5]\",\"name\":\"arrayBuckets\",\"type\":\"uint256[4][5]\"}],\"name\":\"UpdateBucketsParameters\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newFeeAddToken\",\"type\":\"uint256\"}],\"name\":\"UpdateFeeAddToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"newForgeL1L2BatchTimeout\",\"type\":\"uint8\"}],\"name\":\"UpdateForgeL1L2BatchTimeout\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"addressArray\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint64[]\",\"name\":\"valueArray\",\"type\":\"uint64[]\"}],\"name\":\"UpdateTokenExchange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"newWithdrawalDelay\",\"type\":\"uint64\"}],\"name\":\"UpdateWithdrawalDelay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint48\",\"name\":\"idx\",\"type\":\"uint48\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"numExitRoot\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"instantWithdraw\",\"type\":\"bool\"}],\"name\":\"WithdrawEvent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ABSOLUTE_MAX_L1L2BATCHTIMEOUT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"babyPubKey\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"fromIdx\",\"type\":\"uint48\"},{\"internalType\":\"uint16\",\"name\":\"loadAmountF\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"amountF\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"tokenID\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"toIdx\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"permit\",\"type\":\"bytes\"}],\"name\":\"addL1Transaction\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"permit\",\"type\":\"bytes\"}],\"name\":\"addToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"buckets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"ceilUSD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockStamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"withdrawals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockWithdrawalRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxWithdrawals\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"exitNullifierMap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"exitRootsMap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeAddToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newLastIdx\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"newStRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newExitRoot\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedL1CoordinatorTx\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"l1L2TxsData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"feeIdxCoordinator\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"verifierIdx\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"l1Batch\",\"type\":\"bool\"},{\"internalType\":\"uint256[2]\",\"name\":\"proofA\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"proofB\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"proofC\",\"type\":\"uint256[2]\"}],\"name\":\"forgeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"forgeL1L2BatchTimeout\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hermezAuctionContract\",\"outputs\":[{\"internalType\":\"contractIHermezAuctionProtocol\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hermezGovernanceAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_verifiers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_verifiersParams\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"_withdrawVerifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_hermezAuctionContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenHEZ\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"_forgeL1L2BatchTimeout\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_feeAddToken\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_poseidon2Elements\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_poseidon3Elements\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_poseidon4Elements\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_hermezGovernanceAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_withdrawalDelay\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_withdrawDelayerContract\",\"type\":\"address\"}],\"name\":\"initializeHermez\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"amount\",\"type\":\"uint192\"}],\"name\":\"instantWithdrawalViewer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"l1L2TxsDataHashMap\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastForgedBatch\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastIdx\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastL1L2Batch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"mapL1TxQueue\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextL1FillingQueue\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextL1ToForgeQueue\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerTokensCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rollupVerifiers\",\"outputs\":[{\"internalType\":\"contractVerifierRollupInterface\",\"name\":\"verifierInterface\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxTx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nLevels\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollupVerifiersLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"safeMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"stateRootMap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenExchange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenHEZ\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenMap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[4][5]\",\"name\":\"arrayBuckets\",\"type\":\"uint256[4][5]\"}],\"name\":\"updateBucketsParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newFeeAddToken\",\"type\":\"uint256\"}],\"name\":\"updateFeeAddToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"newForgeL1L2BatchTimeout\",\"type\":\"uint8\"}],\"name\":\"updateForgeL1L2BatchTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addressArray\",\"type\":\"address[]\"},{\"internalType\":\"uint64[]\",\"name\":\"valueArray\",\"type\":\"uint64[]\"}],\"name\":\"updateTokenExchange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newWithdrawalDelay\",\"type\":\"uint64\"}],\"name\":\"updateWithdrawalDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"proofA\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"proofB\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"proofC\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint32\",\"name\":\"tokenID\",\"type\":\"uint32\"},{\"internalType\":\"uint192\",\"name\":\"amount\",\"type\":\"uint192\"},{\"internalType\":\"uint32\",\"name\":\"numExitRoot\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"idx\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"instantWithdraw\",\"type\":\"bool\"}],\"name\":\"withdrawCircuit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawDelayerContract\",\"outputs\":[{\"internalType\":\"contractIWithdrawalDelayer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"tokenID\",\"type\":\"uint32\"},{\"internalType\":\"uint192\",\"name\":\"amount\",\"type\":\"uint192\"},{\"internalType\":\"uint256\",\"name\":\"babyPubKey\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"numExitRoot\",\"type\":\"uint32\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint48\",\"name\":\"idx\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"instantWithdraw\",\"type\":\"bool\"}],\"name\":\"withdrawMerkleProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawVerifier\",\"outputs\":[{\"internalType\":\"contractVerifierWithdrawInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawalDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]"
  31
  32// Hermez is an auto generated Go binding around an Ethereum contract.
  33type Hermez struct {
  34	HermezCaller     // Read-only binding to the contract
  35	HermezTransactor // Write-only binding to the contract
  36	HermezFilterer   // Log filterer for contract events
  37}
  38
  39// HermezCaller is an auto generated read-only Go binding around an Ethereum contract.
  40type HermezCaller struct {
  41	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  42}
  43
  44// HermezTransactor is an auto generated write-only Go binding around an Ethereum contract.
  45type HermezTransactor struct {
  46	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  47}
  48
  49// HermezFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  50type HermezFilterer struct {
  51	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  52}
  53
  54// HermezSession is an auto generated Go binding around an Ethereum contract,
  55// with pre-set call and transact options.
  56type HermezSession struct {
  57	Contract     *Hermez           // 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// HermezCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  63// with pre-set call options.
  64type HermezCallerSession struct {
  65	Contract *HermezCaller // Generic contract caller binding to set the session for
  66	CallOpts bind.CallOpts // Call options to use throughout this session
  67}
  68
  69// HermezTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  70// with pre-set transact options.
  71type HermezTransactorSession struct {
  72	Contract     *HermezTransactor // Generic contract transactor binding to set the session for
  73	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  74}
  75
  76// HermezRaw is an auto generated low-level Go binding around an Ethereum contract.
  77type HermezRaw struct {
  78	Contract *Hermez // Generic contract binding to access the raw methods on
  79}
  80
  81// HermezCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  82type HermezCallerRaw struct {
  83	Contract *HermezCaller // Generic read-only contract binding to access the raw methods on
  84}
  85
  86// HermezTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
  87type HermezTransactorRaw struct {
  88	Contract *HermezTransactor // Generic write-only contract binding to access the raw methods on
  89}
  90
  91// NewHermez creates a new instance of Hermez, bound to a specific deployed contract.
  92func NewHermez(address common.Address, backend bind.ContractBackend) (*Hermez, error) {
  93	contract, err := bindHermez(address, backend, backend, backend)
  94	if err != nil {
  95		return nil, err
  96	}
  97	return &Hermez{HermezCaller: HermezCaller{contract: contract}, HermezTransactor: HermezTransactor{contract: contract}, HermezFilterer: HermezFilterer{contract: contract}}, nil
  98}
  99
 100// NewHermezCaller creates a new read-only instance of Hermez, bound to a specific deployed contract.
 101func NewHermezCaller(address common.Address, caller bind.ContractCaller) (*HermezCaller, error) {
 102	contract, err := bindHermez(address, caller, nil, nil)
 103	if err != nil {
 104		return nil, err
 105	}
 106	return &HermezCaller{contract: contract}, nil
 107}
 108
 109// NewHermezTransactor creates a new write-only instance of Hermez, bound to a specific deployed contract.
 110func NewHermezTransactor(address common.Address, transactor bind.ContractTransactor) (*HermezTransactor, error) {
 111	contract, err := bindHermez(address, nil, transactor, nil)
 112	if err != nil {
 113		return nil, err
 114	}
 115	return &HermezTransactor{contract: contract}, nil
 116}
 117
 118// NewHermezFilterer creates a new log filterer instance of Hermez, bound to a specific deployed contract.
 119func NewHermezFilterer(address common.Address, filterer bind.ContractFilterer) (*HermezFilterer, error) {
 120	contract, err := bindHermez(address, nil, nil, filterer)
 121	if err != nil {
 122		return nil, err
 123	}
 124	return &HermezFilterer{contract: contract}, nil
 125}
 126
 127// bindHermez binds a generic wrapper to an already deployed contract.
 128func bindHermez(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 129	parsed, err := abi.JSON(strings.NewReader(HermezABI))
 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 (_Hermez *HermezRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 141	return _Hermez.Contract.HermezCaller.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 (_Hermez *HermezRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 147	return _Hermez.Contract.HermezTransactor.contract.Transfer(opts)
 148}
 149
 150// Transact invokes the (paid) contract method with params as input values.
 151func (_Hermez *HermezRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 152	return _Hermez.Contract.HermezTransactor.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 (_Hermez *HermezCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
 160	return _Hermez.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 (_Hermez *HermezTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 166	return _Hermez.Contract.contract.Transfer(opts)
 167}
 168
 169// Transact invokes the (paid) contract method with params as input values.
 170func (_Hermez *HermezTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 171	return _Hermez.Contract.contract.Transact(opts, method, params...)
 172}
 173
 174// ABSOLUTEMAXL1L2BATCHTIMEOUT is a free data retrieval call binding the contract method 0x95a09f2a.
 175//
 176// Solidity: function ABSOLUTE_MAX_L1L2BATCHTIMEOUT() view returns(uint8)
 177func (_Hermez *HermezCaller) ABSOLUTEMAXL1L2BATCHTIMEOUT(opts *bind.CallOpts) (uint8, error) {
 178	var out []interface{}
 179	err := _Hermez.contract.Call(opts, &out, "ABSOLUTE_MAX_L1L2BATCHTIMEOUT")
 180
 181	if err != nil {
 182		return *new(uint8), err
 183	}
 184
 185	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
 186
 187	return out0, err
 188
 189}
 190
 191// ABSOLUTEMAXL1L2BATCHTIMEOUT is a free data retrieval call binding the contract method 0x95a09f2a.
 192//
 193// Solidity: function ABSOLUTE_MAX_L1L2BATCHTIMEOUT() view returns(uint8)
 194func (_Hermez *HermezSession) ABSOLUTEMAXL1L2BATCHTIMEOUT() (uint8, error) {
 195	return _Hermez.Contract.ABSOLUTEMAXL1L2BATCHTIMEOUT(&_Hermez.CallOpts)
 196}
 197
 198// ABSOLUTEMAXL1L2BATCHTIMEOUT is a free data retrieval call binding the contract method 0x95a09f2a.
 199//
 200// Solidity: function ABSOLUTE_MAX_L1L2BATCHTIMEOUT() view returns(uint8)
 201func (_Hermez *HermezCallerSession) ABSOLUTEMAXL1L2BATCHTIMEOUT() (uint8, error) {
 202	return _Hermez.Contract.ABSOLUTEMAXL1L2BATCHTIMEOUT(&_Hermez.CallOpts)
 203}
 204
 205// Buckets is a free data retrieval call binding the contract method 0x9b51fb0d.
 206//
 207// Solidity: function buckets(uint256 ) view returns(uint256 ceilUSD, uint256 blockStamp, uint256 withdrawals, uint256 blockWithdrawalRate, uint256 maxWithdrawals)
 208func (_Hermez *HermezCaller) Buckets(opts *bind.CallOpts, arg0 *big.Int) (struct {
 209	CeilUSD             *big.Int
 210	BlockStamp          *big.Int
 211	Withdrawals         *big.Int
 212	BlockWithdrawalRate *big.Int
 213	MaxWithdrawals      *big.Int
 214}, error) {
 215	var out []interface{}
 216	err := _Hermez.contract.Call(opts, &out, "buckets", arg0)
 217
 218	outstruct := new(struct {
 219		CeilUSD             *big.Int
 220		BlockStamp          *big.Int
 221		Withdrawals         *big.Int
 222		BlockWithdrawalRate *big.Int
 223		MaxWithdrawals      *big.Int
 224	})
 225
 226	outstruct.CeilUSD = out[0].(*big.Int)
 227	outstruct.BlockStamp = out[1].(*big.Int)
 228	outstruct.Withdrawals = out[2].(*big.Int)
 229	outstruct.BlockWithdrawalRate = out[3].(*big.Int)
 230	outstruct.MaxWithdrawals = out[4].(*big.Int)
 231
 232	return *outstruct, err
 233
 234}
 235
 236// Buckets is a free data retrieval call binding the contract method 0x9b51fb0d.
 237//
 238// Solidity: function buckets(uint256 ) view returns(uint256 ceilUSD, uint256 blockStamp, uint256 withdrawals, uint256 blockWithdrawalRate, uint256 maxWithdrawals)
 239func (_Hermez *HermezSession) Buckets(arg0 *big.Int) (struct {
 240	CeilUSD             *big.Int
 241	BlockStamp          *big.Int
 242	Withdrawals         *big.Int
 243	BlockWithdrawalRate *big.Int
 244	MaxWithdrawals      *big.Int
 245}, error) {
 246	return _Hermez.Contract.Buckets(&_Hermez.CallOpts, arg0)
 247}
 248
 249// Buckets is a free data retrieval call binding the contract method 0x9b51fb0d.
 250//
 251// Solidity: function buckets(uint256 ) view returns(uint256 ceilUSD, uint256 blockStamp, uint256 withdrawals, uint256 blockWithdrawalRate, uint256 maxWithdrawals)
 252func (_Hermez *HermezCallerSession) Buckets(arg0 *big.Int) (struct {
 253	CeilUSD             *big.Int
 254	BlockStamp          *big.Int
 255	Withdrawals         *big.Int
 256	BlockWithdrawalRate *big.Int
 257	MaxWithdrawals      *big.Int
 258}, error) {
 259	return _Hermez.Contract.Buckets(&_Hermez.CallOpts, arg0)
 260}
 261
 262// ExitNullifierMap is a free data retrieval call binding the contract method 0xf84f92ee.
 263//
 264// Solidity: function exitNullifierMap(uint32 , uint48 ) view returns(bool)
 265func (_Hermez *HermezCaller) ExitNullifierMap(opts *bind.CallOpts, arg0 uint32, arg1 *big.Int) (bool, error) {
 266	var out []interface{}
 267	err := _Hermez.contract.Call(opts, &out, "exitNullifierMap", arg0, arg1)
 268
 269	if err != nil {
 270		return *new(bool), err
 271	}
 272
 273	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 274
 275	return out0, err
 276
 277}
 278
 279// ExitNullifierMap is a free data retrieval call binding the contract method 0xf84f92ee.
 280//
 281// Solidity: function exitNullifierMap(uint32 , uint48 ) view returns(bool)
 282func (_Hermez *HermezSession) ExitNullifierMap(arg0 uint32, arg1 *big.Int) (bool, error) {
 283	return _Hermez.Contract.ExitNullifierMap(&_Hermez.CallOpts, arg0, arg1)
 284}
 285
 286// ExitNullifierMap is a free data retrieval call binding the contract method 0xf84f92ee.
 287//
 288// Solidity: function exitNullifierMap(uint32 , uint48 ) view returns(bool)
 289func (_Hermez *HermezCallerSession) ExitNullifierMap(arg0 uint32, arg1 *big.Int) (bool, error) {
 290	return _Hermez.Contract.ExitNullifierMap(&_Hermez.CallOpts, arg0, arg1)
 291}
 292
 293// ExitRootsMap is a free data retrieval call binding the contract method 0x3ee641ea.
 294//
 295// Solidity: function exitRootsMap(uint32 ) view returns(uint256)
 296func (_Hermez *HermezCaller) ExitRootsMap(opts *bind.CallOpts, arg0 uint32) (*big.Int, error) {
 297	var out []interface{}
 298	err := _Hermez.contract.Call(opts, &out, "exitRootsMap", arg0)
 299
 300	if err != nil {
 301		return *new(*big.Int), err
 302	}
 303
 304	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 305
 306	return out0, err
 307
 308}
 309
 310// ExitRootsMap is a free data retrieval call binding the contract method 0x3ee641ea.
 311//
 312// Solidity: function exitRootsMap(uint32 ) view returns(uint256)
 313func (_Hermez *HermezSession) ExitRootsMap(arg0 uint32) (*big.Int, error) {
 314	return _Hermez.Contract.ExitRootsMap(&_Hermez.CallOpts, arg0)
 315}
 316
 317// ExitRootsMap is a free data retrieval call binding the contract method 0x3ee641ea.
 318//
 319// Solidity: function exitRootsMap(uint32 ) view returns(uint256)
 320func (_Hermez *HermezCallerSession) ExitRootsMap(arg0 uint32) (*big.Int, error) {
 321	return _Hermez.Contract.ExitRootsMap(&_Hermez.CallOpts, arg0)
 322}
 323
 324// FeeAddToken is a free data retrieval call binding the contract method 0xbded9bb8.
 325//
 326// Solidity: function feeAddToken() view returns(uint256)
 327func (_Hermez *HermezCaller) FeeAddToken(opts *bind.CallOpts) (*big.Int, error) {
 328	var out []interface{}
 329	err := _Hermez.contract.Call(opts, &out, "feeAddToken")
 330
 331	if err != nil {
 332		return *new(*big.Int), err
 333	}
 334
 335	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 336
 337	return out0, err
 338
 339}
 340
 341// FeeAddToken is a free data retrieval call binding the contract method 0xbded9bb8.
 342//
 343// Solidity: function feeAddToken() view returns(uint256)
 344func (_Hermez *HermezSession) FeeAddToken() (*big.Int, error) {
 345	return _Hermez.Contract.FeeAddToken(&_Hermez.CallOpts)
 346}
 347
 348// FeeAddToken is a free data retrieval call binding the contract method 0xbded9bb8.
 349//
 350// Solidity: function feeAddToken() view returns(uint256)
 351func (_Hermez *HermezCallerSession) FeeAddToken() (*big.Int, error) {
 352	return _Hermez.Contract.FeeAddToken(&_Hermez.CallOpts)
 353}
 354
 355// ForgeL1L2BatchTimeout is a free data retrieval call binding the contract method 0xa3275838.
 356//
 357// Solidity: function forgeL1L2BatchTimeout() view returns(uint8)
 358func (_Hermez *HermezCaller) ForgeL1L2BatchTimeout(opts *bind.CallOpts) (uint8, error) {
 359	var out []interface{}
 360	err := _Hermez.contract.Call(opts, &out, "forgeL1L2BatchTimeout")
 361
 362	if err != nil {
 363		return *new(uint8), err
 364	}
 365
 366	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
 367
 368	return out0, err
 369
 370}
 371
 372// ForgeL1L2BatchTimeout is a free data retrieval call binding the contract method 0xa3275838.
 373//
 374// Solidity: function forgeL1L2BatchTimeout() view returns(uint8)
 375func (_Hermez *HermezSession) ForgeL1L2BatchTimeout() (uint8, error) {
 376	return _Hermez.Contract.ForgeL1L2BatchTimeout(&_Hermez.CallOpts)
 377}
 378
 379// ForgeL1L2BatchTimeout is a free data retrieval call binding the contract method 0xa3275838.
 380//
 381// Solidity: function forgeL1L2BatchTimeout() view returns(uint8)
 382func (_Hermez *HermezCallerSession) ForgeL1L2BatchTimeout() (uint8, error) {
 383	return _Hermez.Contract.ForgeL1L2BatchTimeout(&_Hermez.CallOpts)
 384}
 385
 386// HermezAuctionContract is a free data retrieval call binding the contract method 0x2bd83626.
 387//
 388// Solidity: function hermezAuctionContract() view returns(address)
 389func (_Hermez *HermezCaller) HermezAuctionContract(opts *bind.CallOpts) (common.Address, error) {
 390	var out []interface{}
 391	err := _Hermez.contract.Call(opts, &out, "hermezAuctionContract")
 392
 393	if err != nil {
 394		return *new(common.Address), err
 395	}
 396
 397	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 398
 399	return out0, err
 400
 401}
 402
 403// HermezAuctionContract is a free data retrieval call binding the contract method 0x2bd83626.
 404//
 405// Solidity: function hermezAuctionContract() view returns(address)
 406func (_Hermez *HermezSession) HermezAuctionContract() (common.Address, error) {
 407	return _Hermez.Contract.HermezAuctionContract(&_Hermez.CallOpts)
 408}
 409
 410// HermezAuctionContract is a free data retrieval call binding the contract method 0x2bd83626.
 411//
 412// Solidity: function hermezAuctionContract() view returns(address)
 413func (_Hermez *HermezCallerSession) HermezAuctionContract() (common.Address, error) {
 414	return _Hermez.Contract.HermezAuctionContract(&_Hermez.CallOpts)
 415}
 416
 417// HermezGovernanceAddress is a free data retrieval call binding the contract method 0x013f7852.
 418//
 419// Solidity: function hermezGovernanceAddress() view returns(address)
 420func (_Hermez *HermezCaller) HermezGovernanceAddress(opts *bind.CallOpts) (common.Address, error) {
 421	var out []interface{}
 422	err := _Hermez.contract.Call(opts, &out, "hermezGovernanceAddress")
 423
 424	if err != nil {
 425		return *new(common.Address), err
 426	}
 427
 428	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 429
 430	return out0, err
 431
 432}
 433
 434// HermezGovernanceAddress is a free data retrieval call binding the contract method 0x013f7852.
 435//
 436// Solidity: function hermezGovernanceAddress() view returns(address)
 437func (_Hermez *HermezSession) HermezGovernanceAddress() (common.Address, error) {
 438	return _Hermez.Contract.HermezGovernanceAddress(&_Hermez.CallOpts)
 439}
 440
 441// HermezGovernanceAddress is a free data retrieval call binding the contract method 0x013f7852.
 442//
 443// Solidity: function hermezGovernanceAddress() view returns(address)
 444func (_Hermez *HermezCallerSession) HermezGovernanceAddress() (common.Address, error) {
 445	return _Hermez.Contract.HermezGovernanceAddress(&_Hermez.CallOpts)
 446}
 447
 448// InstantWithdrawalViewer is a free data retrieval call binding the contract method 0x375110aa.
 449//
 450// Solidity: function instantWithdrawalViewer(address tokenAddress, uint192 amount) view returns(bool)
 451func (_Hermez *HermezCaller) InstantWithdrawalViewer(opts *bind.CallOpts, tokenAddress common.Address, amount *big.Int) (bool, error) {
 452	var out []interface{}
 453	err := _Hermez.contract.Call(opts, &out, "instantWithdrawalViewer", tokenAddress, amount)
 454
 455	if err != nil {
 456		return *new(bool), err
 457	}
 458
 459	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
 460
 461	return out0, err
 462
 463}
 464
 465// InstantWithdrawalViewer is a free data retrieval call binding the contract method 0x375110aa.
 466//
 467// Solidity: function instantWithdrawalViewer(address tokenAddress, uint192 amount) view returns(bool)
 468func (_Hermez *HermezSession) InstantWithdrawalViewer(tokenAddress common.Address, amount *big.Int) (bool, error) {
 469	return _Hermez.Contract.InstantWithdrawalViewer(&_Hermez.CallOpts, tokenAddress, amount)
 470}
 471
 472// InstantWithdrawalViewer is a free data retrieval call binding the contract method 0x375110aa.
 473//
 474// Solidity: function instantWithdrawalViewer(address tokenAddress, uint192 amount) view returns(bool)
 475func (_Hermez *HermezCallerSession) InstantWithdrawalViewer(tokenAddress common.Address, amount *big.Int) (bool, error) {
 476	return _Hermez.Contract.InstantWithdrawalViewer(&_Hermez.CallOpts, tokenAddress, amount)
 477}
 478
 479// L1L2TxsDataHashMap is a free data retrieval call binding the contract method 0xce5ec65a.
 480//
 481// Solidity: function l1L2TxsDataHashMap(uint32 ) view returns(bytes32)
 482func (_Hermez *HermezCaller) L1L2TxsDataHashMap(opts *bind.CallOpts, arg0 uint32) ([32]byte, error) {
 483	var out []interface{}
 484	err := _Hermez.contract.Call(opts, &out, "l1L2TxsDataHashMap", arg0)
 485
 486	if err != nil {
 487		return *new([32]byte), err
 488	}
 489
 490	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
 491
 492	return out0, err
 493
 494}
 495
 496// L1L2TxsDataHashMap is a free data retrieval call binding the contract method 0xce5ec65a.
 497//
 498// Solidity: function l1L2TxsDataHashMap(uint32 ) view returns(bytes32)
 499func (_Hermez *HermezSession) L1L2TxsDataHashMap(arg0 uint32) ([32]byte, error) {
 500	return _Hermez.Contract.L1L2TxsDataHashMap(&_Hermez.CallOpts, arg0)
 501}
 502
 503// L1L2TxsDataHashMap is a free data retrieval call binding the contract method 0xce5ec65a.
 504//
 505// Solidity: function l1L2TxsDataHashMap(uint32 ) view returns(bytes32)
 506func (_Hermez *HermezCallerSession) L1L2TxsDataHashMap(arg0 uint32) ([32]byte, error) {
 507	return _Hermez.Contract.L1L2TxsDataHashMap(&_Hermez.CallOpts, arg0)
 508}
 509
 510// LastForgedBatch is a free data retrieval call binding the contract method 0x44e0b2ce.
 511//
 512// Solidity: function lastForgedBatch() view returns(uint32)
 513func (_Hermez *HermezCaller) LastForgedBatch(opts *bind.CallOpts) (uint32, error) {
 514	var out []interface{}
 515	err := _Hermez.contract.Call(opts, &out, "lastForgedBatch")
 516
 517	if err != nil {
 518		return *new(uint32), err
 519	}
 520
 521	out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32)
 522
 523	return out0, err
 524
 525}
 526
 527// LastForgedBatch is a free data retrieval call binding the contract method 0x44e0b2ce.
 528//
 529// Solidity: function lastForgedBatch() view returns(uint32)
 530func (_Hermez *HermezSession) LastForgedBatch() (uint32, error) {
 531	return _Hermez.Contract.LastForgedBatch(&_Hermez.CallOpts)
 532}
 533
 534// LastForgedBatch is a free data retrieval call binding the contract method 0x44e0b2ce.
 535//
 536// Solidity: function lastForgedBatch() view returns(uint32)
 537func (_Hermez *HermezCallerSession) LastForgedBatch() (uint32, error) {
 538	return _Hermez.Contract.LastForgedBatch(&_Hermez.CallOpts)
 539}
 540
 541// LastIdx is a free data retrieval call binding the contract method 0xd486645c.
 542//
 543// Solidity: function lastIdx() view returns(uint48)
 544func (_Hermez *HermezCaller) LastIdx(opts *bind.CallOpts) (*big.Int, error) {
 545	var out []interface{}
 546	err := _Hermez.contract.Call(opts, &out, "lastIdx")
 547
 548	if err != nil {
 549		return *new(*big.Int), err
 550	}
 551
 552	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 553
 554	return out0, err
 555
 556}
 557
 558// LastIdx is a free data retrieval call binding the contract method 0xd486645c.
 559//
 560// Solidity: function lastIdx() view returns(uint48)
 561func (_Hermez *HermezSession) LastIdx() (*big.Int, error) {
 562	return _Hermez.Contract.LastIdx(&_Hermez.CallOpts)
 563}
 564
 565// LastIdx is a free data retrieval call binding the contract method 0xd486645c.
 566//
 567// Solidity: function lastIdx() view returns(uint48)
 568func (_Hermez *HermezCallerSession) LastIdx() (*big.Int, error) {
 569	return _Hermez.Contract.LastIdx(&_Hermez.CallOpts)
 570}
 571
 572// LastL1L2Batch is a free data retrieval call binding the contract method 0x84ef9ed4.
 573//
 574// Solidity: function lastL1L2Batch() view returns(uint64)
 575func (_Hermez *HermezCaller) LastL1L2Batch(opts *bind.CallOpts) (uint64, error) {
 576	var out []interface{}
 577	err := _Hermez.contract.Call(opts, &out, "lastL1L2Batch")
 578
 579	if err != nil {
 580		return *new(uint64), err
 581	}
 582
 583	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 584
 585	return out0, err
 586
 587}
 588
 589// LastL1L2Batch is a free data retrieval call binding the contract method 0x84ef9ed4.
 590//
 591// Solidity: function lastL1L2Batch() view returns(uint64)
 592func (_Hermez *HermezSession) LastL1L2Batch() (uint64, error) {
 593	return _Hermez.Contract.LastL1L2Batch(&_Hermez.CallOpts)
 594}
 595
 596// LastL1L2Batch is a free data retrieval call binding the contract method 0x84ef9ed4.
 597//
 598// Solidity: function lastL1L2Batch() view returns(uint64)
 599func (_Hermez *HermezCallerSession) LastL1L2Batch() (uint64, error) {
 600	return _Hermez.Contract.LastL1L2Batch(&_Hermez.CallOpts)
 601}
 602
 603// MapL1TxQueue is a free data retrieval call binding the contract method 0xdc3e718e.
 604//
 605// Solidity: function mapL1TxQueue(uint32 ) view returns(bytes)
 606func (_Hermez *HermezCaller) MapL1TxQueue(opts *bind.CallOpts, arg0 uint32) ([]byte, error) {
 607	var out []interface{}
 608	err := _Hermez.contract.Call(opts, &out, "mapL1TxQueue", arg0)
 609
 610	if err != nil {
 611		return *new([]byte), err
 612	}
 613
 614	out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte)
 615
 616	return out0, err
 617
 618}
 619
 620// MapL1TxQueue is a free data retrieval call binding the contract method 0xdc3e718e.
 621//
 622// Solidity: function mapL1TxQueue(uint32 ) view returns(bytes)
 623func (_Hermez *HermezSession) MapL1TxQueue(arg0 uint32) ([]byte, error) {
 624	return _Hermez.Contract.MapL1TxQueue(&_Hermez.CallOpts, arg0)
 625}
 626
 627// MapL1TxQueue is a free data retrieval call binding the contract method 0xdc3e718e.
 628//
 629// Solidity: function mapL1TxQueue(uint32 ) view returns(bytes)
 630func (_Hermez *HermezCallerSession) MapL1TxQueue(arg0 uint32) ([]byte, error) {
 631	return _Hermez.Contract.MapL1TxQueue(&_Hermez.CallOpts, arg0)
 632}
 633
 634// NextL1FillingQueue is a free data retrieval call binding the contract method 0x0ee8e52b.
 635//
 636// Solidity: function nextL1FillingQueue() view returns(uint32)
 637func (_Hermez *HermezCaller) NextL1FillingQueue(opts *bind.CallOpts) (uint32, error) {
 638	var out []interface{}
 639	err := _Hermez.contract.Call(opts, &out, "nextL1FillingQueue")
 640
 641	if err != nil {
 642		return *new(uint32), err
 643	}
 644
 645	out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32)
 646
 647	return out0, err
 648
 649}
 650
 651// NextL1FillingQueue is a free data retrieval call binding the contract method 0x0ee8e52b.
 652//
 653// Solidity: function nextL1FillingQueue() view returns(uint32)
 654func (_Hermez *HermezSession) NextL1FillingQueue() (uint32, error) {
 655	return _Hermez.Contract.NextL1FillingQueue(&_Hermez.CallOpts)
 656}
 657
 658// NextL1FillingQueue is a free data retrieval call binding the contract method 0x0ee8e52b.
 659//
 660// Solidity: function nextL1FillingQueue() view returns(uint32)
 661func (_Hermez *HermezCallerSession) NextL1FillingQueue() (uint32, error) {
 662	return _Hermez.Contract.NextL1FillingQueue(&_Hermez.CallOpts)
 663}
 664
 665// NextL1ToForgeQueue is a free data retrieval call binding the contract method 0xd0f32e67.
 666//
 667// Solidity: function nextL1ToForgeQueue() view returns(uint32)
 668func (_Hermez *HermezCaller) NextL1ToForgeQueue(opts *bind.CallOpts) (uint32, error) {
 669	var out []interface{}
 670	err := _Hermez.contract.Call(opts, &out, "nextL1ToForgeQueue")
 671
 672	if err != nil {
 673		return *new(uint32), err
 674	}
 675
 676	out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32)
 677
 678	return out0, err
 679
 680}
 681
 682// NextL1ToForgeQueue is a free data retrieval call binding the contract method 0xd0f32e67.
 683//
 684// Solidity: function nextL1ToForgeQueue() view returns(uint32)
 685func (_Hermez *HermezSession) NextL1ToForgeQueue() (uint32, error) {
 686	return _Hermez.Contract.NextL1ToForgeQueue(&_Hermez.CallOpts)
 687}
 688
 689// NextL1ToForgeQueue is a free data retrieval call binding the contract method 0xd0f32e67.
 690//
 691// Solidity: function nextL1ToForgeQueue() view returns(uint32)
 692func (_Hermez *HermezCallerSession) NextL1ToForgeQueue() (uint32, error) {
 693	return _Hermez.Contract.NextL1ToForgeQueue(&_Hermez.CallOpts)
 694}
 695
 696// RegisterTokensCount is a free data retrieval call binding the contract method 0x9f34e9a3.
 697//
 698// Solidity: function registerTokensCount() view returns(uint256)
 699func (_Hermez *HermezCaller) RegisterTokensCount(opts *bind.CallOpts) (*big.Int, error) {
 700	var out []interface{}
 701	err := _Hermez.contract.Call(opts, &out, "registerTokensCount")
 702
 703	if err != nil {
 704		return *new(*big.Int), err
 705	}
 706
 707	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 708
 709	return out0, err
 710
 711}
 712
 713// RegisterTokensCount is a free data retrieval call binding the contract method 0x9f34e9a3.
 714//
 715// Solidity: function registerTokensCount() view returns(uint256)
 716func (_Hermez *HermezSession) RegisterTokensCount() (*big.Int, error) {
 717	return _Hermez.Contract.RegisterTokensCount(&_Hermez.CallOpts)
 718}
 719
 720// RegisterTokensCount is a free data retrieval call binding the contract method 0x9f34e9a3.
 721//
 722// Solidity: function registerTokensCount() view returns(uint256)
 723func (_Hermez *HermezCallerSession) RegisterTokensCount() (*big.Int, error) {
 724	return _Hermez.Contract.RegisterTokensCount(&_Hermez.CallOpts)
 725}
 726
 727// RollupVerifiers is a free data retrieval call binding the contract method 0x38330200.
 728//
 729// Solidity: function rollupVerifiers(uint256 ) view returns(address verifierInterface, uint256 maxTx, uint256 nLevels)
 730func (_Hermez *HermezCaller) RollupVerifiers(opts *bind.CallOpts, arg0 *big.Int) (struct {
 731	VerifierInterface common.Address
 732	MaxTx             *big.Int
 733	NLevels           *big.Int
 734}, error) {
 735	var out []interface{}
 736	err := _Hermez.contract.Call(opts, &out, "rollupVerifiers", arg0)
 737
 738	outstruct := new(struct {
 739		VerifierInterface common.Address
 740		MaxTx             *big.Int
 741		NLevels           *big.Int
 742	})
 743
 744	outstruct.VerifierInterface = out[0].(common.Address)
 745	outstruct.MaxTx = out[1].(*big.Int)
 746	outstruct.NLevels = out[2].(*big.Int)
 747
 748	return *outstruct, err
 749
 750}
 751
 752// RollupVerifiers is a free data retrieval call binding the contract method 0x38330200.
 753//
 754// Solidity: function rollupVerifiers(uint256 ) view returns(address verifierInterface, uint256 maxTx, uint256 nLevels)
 755func (_Hermez *HermezSession) RollupVerifiers(arg0 *big.Int) (struct {
 756	VerifierInterface common.Address
 757	MaxTx             *big.Int
 758	NLevels           *big.Int
 759}, error) {
 760	return _Hermez.Contract.RollupVerifiers(&_Hermez.CallOpts, arg0)
 761}
 762
 763// RollupVerifiers is a free data retrieval call binding the contract method 0x38330200.
 764//
 765// Solidity: function rollupVerifiers(uint256 ) view returns(address verifierInterface, uint256 maxTx, uint256 nLevels)
 766func (_Hermez *HermezCallerSession) RollupVerifiers(arg0 *big.Int) (struct {
 767	VerifierInterface common.Address
 768	MaxTx             *big.Int
 769	NLevels           *big.Int
 770}, error) {
 771	return _Hermez.Contract.RollupVerifiers(&_Hermez.CallOpts, arg0)
 772}
 773
 774// RollupVerifiersLength is a free data retrieval call binding the contract method 0x7ba3a5e0.
 775//
 776// Solidity: function rollupVerifiersLength() view returns(uint256)
 777func (_Hermez *HermezCaller) RollupVerifiersLength(opts *bind.CallOpts) (*big.Int, error) {
 778	var out []interface{}
 779	err := _Hermez.contract.Call(opts, &out, "rollupVerifiersLength")
 780
 781	if err != nil {
 782		return *new(*big.Int), err
 783	}
 784
 785	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 786
 787	return out0, err
 788
 789}
 790
 791// RollupVerifiersLength is a free data retrieval call binding the contract method 0x7ba3a5e0.
 792//
 793// Solidity: function rollupVerifiersLength() view returns(uint256)
 794func (_Hermez *HermezSession) RollupVerifiersLength() (*big.Int, error) {
 795	return _Hermez.Contract.RollupVerifiersLength(&_Hermez.CallOpts)
 796}
 797
 798// RollupVerifiersLength is a free data retrieval call binding the contract method 0x7ba3a5e0.
 799//
 800// Solidity: function rollupVerifiersLength() view returns(uint256)
 801func (_Hermez *HermezCallerSession) RollupVerifiersLength() (*big.Int, error) {
 802	return _Hermez.Contract.RollupVerifiersLength(&_Hermez.CallOpts)
 803}
 804
 805// StateRootMap is a free data retrieval call binding the contract method 0x9e00d7ea.
 806//
 807// Solidity: function stateRootMap(uint32 ) view returns(uint256)
 808func (_Hermez *HermezCaller) StateRootMap(opts *bind.CallOpts, arg0 uint32) (*big.Int, error) {
 809	var out []interface{}
 810	err := _Hermez.contract.Call(opts, &out, "stateRootMap", arg0)
 811
 812	if err != nil {
 813		return *new(*big.Int), err
 814	}
 815
 816	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 817
 818	return out0, err
 819
 820}
 821
 822// StateRootMap is a free data retrieval call binding the contract method 0x9e00d7ea.
 823//
 824// Solidity: function stateRootMap(uint32 ) view returns(uint256)
 825func (_Hermez *HermezSession) StateRootMap(arg0 uint32) (*big.Int, error) {
 826	return _Hermez.Contract.StateRootMap(&_Hermez.CallOpts, arg0)
 827}
 828
 829// StateRootMap is a free data retrieval call binding the contract method 0x9e00d7ea.
 830//
 831// Solidity: function stateRootMap(uint32 ) view returns(uint256)
 832func (_Hermez *HermezCallerSession) StateRootMap(arg0 uint32) (*big.Int, error) {
 833	return _Hermez.Contract.StateRootMap(&_Hermez.CallOpts, arg0)
 834}
 835
 836// TokenExchange is a free data retrieval call binding the contract method 0x0dd94b96.
 837//
 838// Solidity: function tokenExchange(address ) view returns(uint64)
 839func (_Hermez *HermezCaller) TokenExchange(opts *bind.CallOpts, arg0 common.Address) (uint64, error) {
 840	var out []interface{}
 841	err := _Hermez.contract.Call(opts, &out, "tokenExchange", arg0)
 842
 843	if err != nil {
 844		return *new(uint64), err
 845	}
 846
 847	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
 848
 849	return out0, err
 850
 851}
 852
 853// TokenExchange is a free data retrieval call binding the contract method 0x0dd94b96.
 854//
 855// Solidity: function tokenExchange(address ) view returns(uint64)
 856func (_Hermez *HermezSession) TokenExchange(arg0 common.Address) (uint64, error) {
 857	return _Hermez.Contract.TokenExchange(&_Hermez.CallOpts, arg0)
 858}
 859
 860// TokenExchange is a free data retrieval call binding the contract method 0x0dd94b96.
 861//
 862// Solidity: function tokenExchange(address ) view returns(uint64)
 863func (_Hermez *HermezCallerSession) TokenExchange(arg0 common.Address) (uint64, error) {
 864	return _Hermez.Contract.TokenExchange(&_Hermez.CallOpts, arg0)
 865}
 866
 867// TokenHEZ is a free data retrieval call binding the contract method 0x79a135e3.
 868//
 869// Solidity: function tokenHEZ() view returns(address)
 870func (_Hermez *HermezCaller) TokenHEZ(opts *bind.CallOpts) (common.Address, error) {
 871	var out []interface{}
 872	err := _Hermez.contract.Call(opts, &out, "tokenHEZ")
 873
 874	if err != nil {
 875		return *new(common.Address), err
 876	}
 877
 878	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 879
 880	return out0, err
 881
 882}
 883
 884// TokenHEZ is a free data retrieval call binding the contract method 0x79a135e3.
 885//
 886// Solidity: function tokenHEZ() view returns(address)
 887func (_Hermez *HermezSession) TokenHEZ() (common.Address, error) {
 888	return _Hermez.Contract.TokenHEZ(&_Hermez.CallOpts)
 889}
 890
 891// TokenHEZ is a free data retrieval call binding the contract method 0x79a135e3.
 892//
 893// Solidity: function tokenHEZ() view returns(address)
 894func (_Hermez *HermezCallerSession) TokenHEZ() (common.Address, error) {
 895	return _Hermez.Contract.TokenHEZ(&_Hermez.CallOpts)
 896}
 897
 898// TokenList is a free data retrieval call binding the contract method 0x9ead7222.
 899//
 900// Solidity: function tokenList(uint256 ) view returns(address)
 901func (_Hermez *HermezCaller) TokenList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 902	var out []interface{}
 903	err := _Hermez.contract.Call(opts, &out, "tokenList", arg0)
 904
 905	if err != nil {
 906		return *new(common.Address), err
 907	}
 908
 909	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 910
 911	return out0, err
 912
 913}
 914
 915// TokenList is a free data retrieval call binding the contract method 0x9ead7222.
 916//
 917// Solidity: function tokenList(uint256 ) view returns(address)
 918func (_Hermez *HermezSession) TokenList(arg0 *big.Int) (common.Address, error) {
 919	return _Hermez.Contract.TokenList(&_Hermez.CallOpts, arg0)
 920}
 921
 922// TokenList is a free data retrieval call binding the contract method 0x9ead7222.
 923//
 924// Solidity: function tokenList(uint256 ) view returns(address)
 925func (_Hermez *HermezCallerSession) TokenList(arg0 *big.Int) (common.Address, error) {
 926	return _Hermez.Contract.TokenList(&_Hermez.CallOpts, arg0)
 927}
 928
 929// TokenMap is a free data retrieval call binding the contract method 0x004aca6e.
 930//
 931// Solidity: function tokenMap(address ) view returns(uint256)
 932func (_Hermez *HermezCaller) TokenMap(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
 933	var out []interface{}
 934	err := _Hermez.contract.Call(opts, &out, "tokenMap", arg0)
 935
 936	if err != nil {
 937		return *new(*big.Int), err
 938	}
 939
 940	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
 941
 942	return out0, err
 943
 944}
 945
 946// TokenMap is a free data retrieval call binding the contract method 0x004aca6e.
 947//
 948// Solidity: function tokenMap(address ) view returns(uint256)
 949func (_Hermez *HermezSession) TokenMap(arg0 common.Address) (*big.Int, error) {
 950	return _Hermez.Contract.TokenMap(&_Hermez.CallOpts, arg0)
 951}
 952
 953// TokenMap is a free data retrieval call binding the contract method 0x004aca6e.
 954//
 955// Solidity: function tokenMap(address ) view returns(uint256)
 956func (_Hermez *HermezCallerSession) TokenMap(arg0 common.Address) (*big.Int, error) {
 957	return _Hermez.Contract.TokenMap(&_Hermez.CallOpts, arg0)
 958}
 959
 960// WithdrawDelayerContract is a free data retrieval call binding the contract method 0x1b0a8223.
 961//
 962// Solidity: function withdrawDelayerContract() view returns(address)
 963func (_Hermez *HermezCaller) WithdrawDelayerContract(opts *bind.CallOpts) (common.Address, error) {
 964	var out []interface{}
 965	err := _Hermez.contract.Call(opts, &out, "withdrawDelayerContract")
 966
 967	if err != nil {
 968		return *new(common.Address), err
 969	}
 970
 971	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
 972
 973	return out0, err
 974
 975}
 976
 977// WithdrawDelayerContract is a free data retrieval call binding the contract method 0x1b0a8223.
 978//
 979// Solidity: function withdrawDelayerContract() view returns(address)
 980func (_Hermez *HermezSession) WithdrawDelayerContract() (common.Address, error) {
 981	return _Hermez.Contract.WithdrawDelayerContract(&_Hermez.CallOpts)
 982}
 983
 984// WithdrawDelayerContract is a free data retrieval call binding the contract method 0x1b0a8223.
 985//
 986// Solidity: function withdrawDelayerContract() view returns(address)
 987func (_Hermez *HermezCallerSession) WithdrawDelayerContract() (common.Address, error) {
 988	return _Hermez.Contract.WithdrawDelayerContract(&_Hermez.CallOpts)
 989}
 990
 991// WithdrawVerifier is a free data retrieval call binding the contract method 0x864eb164.
 992//
 993// Solidity: function withdrawVerifier() view returns(address)
 994func (_Hermez *HermezCaller) WithdrawVerifier(opts *bind.CallOpts) (common.Address, error) {
 995	var out []interface{}
 996	err := _Hermez.contract.Call(opts, &out, "withdrawVerifier")
 997
 998	if err != nil {
 999		return *new(common.Address), err
1000	}
1001
1002	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
1003
1004	return out0, err
1005
1006}
1007
1008// WithdrawVerifier is a free data retrieval call binding the contract method 0x864eb164.
1009//
1010// Solidity: function withdrawVerifier() view returns(address)
1011func (_Hermez *HermezSession) WithdrawVerifier() (common.Address, error) {
1012	return _Hermez.Contract.WithdrawVerifier(&_Hermez.CallOpts)
1013}
1014
1015// WithdrawVerifier is a free data retrieval call binding the contract method 0x864eb164.
1016//
1017// Solidity: function withdrawVerifier() view returns(address)
1018func (_Hermez *HermezCallerSession) WithdrawVerifier() (common.Address, error) {
1019	return _Hermez.Contract.WithdrawVerifier(&_Hermez.CallOpts)
1020}
1021
1022// WithdrawalDelay is a free data retrieval call binding the contract method 0xa7ab6961.
1023//
1024// Solidity: function withdrawalDelay() view returns(uint64)
1025func (_Hermez *HermezCaller) WithdrawalDelay(opts *bind.CallOpts) (uint64, error) {
1026	var out []interface{}
1027	err := _Hermez.contract.Call(opts, &out, "withdrawalDelay")
1028
1029	if err != nil {
1030		return *new(uint64), err
1031	}
1032
1033	out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64)
1034
1035	return out0, err
1036
1037}
1038
1039// WithdrawalDelay is a free data retrieval call binding the contract method 0xa7ab6961.
1040//
1041// Solidity: function withdrawalDelay() view returns(uint64)
1042func (_Hermez *HermezSession) WithdrawalDelay() (uint64, error) {
1043	return _Hermez.Contract.WithdrawalDelay(&_Hermez.CallOpts)
1044}
1045
1046// WithdrawalDelay is a free data retrieval call binding the contract method 0xa7ab6961.
1047//
1048// Solidity: function withdrawalDelay() view returns(uint64)
1049func (_Hermez *HermezCallerSession) WithdrawalDelay() (uint64, error) {
1050	return _Hermez.Contract.WithdrawalDelay(&_Hermez.CallOpts)
1051}
1052
1053// AddL1Transaction is a paid mutator transaction binding the contract method 0x886df587.
1054//
1055// Solidity: function addL1Transaction(uint256 babyPubKey, uint48 fromIdx, uint16 loadAmountF, uint16 amountF, uint32 tokenID, uint48 toIdx, bytes permit) payable returns()
1056func (_Hermez *HermezTransactor) AddL1Transaction(opts *bind.TransactOpts, babyPubKey *big.Int, fromIdx *big.Int, loadAmountF uint16, amountF uint16, tokenID uint32, toIdx *big.Int, permit []byte) (*types.Transaction, error) {
1057	return _Hermez.contract.Transact(opts, "addL1Transaction", babyPubKey, fromIdx, loadAmountF, amountF, tokenID, toIdx, permit)
1058}
1059
1060// AddL1Transaction is a paid mutator transaction binding the contract method 0x886df587.
1061//
1062// Solidity: function addL1Transaction(uint256 babyPubKey, uint48 fromIdx, uint16 loadAmountF, uint16 amountF, uint32 tokenID, uint48 toIdx, bytes permit) payable returns()
1063func (_Hermez *HermezSession) AddL1Transaction(babyPubKey *big.Int, fromIdx *big.Int, loadAmountF uint16, amountF uint16, tokenID uint32, toIdx *big.Int, permit []byte) (*types.Transaction, error) {
1064	return _Hermez.Contract.AddL1Transaction(&_Hermez.TransactOpts, babyPubKey, fromIdx, loadAmountF, amountF, tokenID, toIdx, permit)
1065}
1066
1067// AddL1Transaction is a paid mutator transaction binding the contract method 0x886df587.
1068//
1069// Solidity: function addL1Transaction(uint256 babyPubKey, uint48 fromIdx, uint16 loadAmountF, uint16 amountF, uint32 tokenID, uint48 toIdx, bytes permit) payable returns()
1070func (_Hermez *HermezTransactorSession) AddL1Transaction(babyPubKey *big.Int, fromIdx *big.Int, loadAmountF uint16, amountF uint16, tokenID uint32, toIdx *big.Int, permit []byte) (*types.Transaction, error) {
1071	return _Hermez.Contract.AddL1Transaction(&_Hermez.TransactOpts, babyPubKey, fromIdx, loadAmountF, amountF, tokenID, toIdx, permit)
1072}
1073
1074// AddToken is a paid mutator transaction binding the contract method 0x70c2f1c0.
1075//
1076// Solidity: function addToken(address tokenAddress, bytes permit) returns()
1077func (_Hermez *HermezTransactor) AddToken(opts *bind.TransactOpts, tokenAddress common.Address, permit []byte) (*types.Transaction, error) {
1078	return _Hermez.contract.Transact(opts, "addToken", tokenAddress, permit)
1079}
1080
1081// AddToken is a paid mutator transaction binding the contract method 0x70c2f1c0.
1082//
1083// Solidity: function addToken(address tokenAddress, bytes permit) returns()
1084func (_Hermez *HermezSession) AddToken(tokenAddress common.Address, permit []byte) (*types.Transaction, error) {
1085	return _Hermez.Contract.AddToken(&_Hermez.TransactOpts, tokenAddress, permit)
1086}
1087
1088// AddToken is a paid mutator transaction binding the contract method 0x70c2f1c0.
1089//
1090// Solidity: function addToken(address tokenAddress, bytes permit) returns()
1091func (_Hermez *HermezTransactorSession) AddToken(tokenAddress common.Address, permit []byte) (*types.Transaction, error) {
1092	return _Hermez.Contract.AddToken(&_Hermez.TransactOpts, tokenAddress, permit)
1093}
1094
1095// ForgeBatch is a paid mutator transaction binding the contract method 0x6e7e1365.
1096//
1097// Solidity: function forgeBatch(uint48 newLastIdx, uint256 newStRoot, uint256 newExitRoot, bytes encodedL1CoordinatorTx, bytes l1L2TxsData, bytes feeIdxCoordinator, uint8 verifierIdx, bool l1Batch, uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC) returns()
1098func (_Hermez *HermezTransactor) ForgeBatch(opts *bind.TransactOpts, newLastIdx *big.Int, newStRoot *big.Int, newExitRoot *big.Int, encodedL1CoordinatorTx []byte, l1L2TxsData []byte, feeIdxCoordinator []byte, verifierIdx uint8, l1Batch bool, proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int) (*types.Transaction, error) {
1099	return _Hermez.contract.Transact(opts, "forgeBatch", newLastIdx, newStRoot, newExitRoot, encodedL1CoordinatorTx, l1L2TxsData, feeIdxCoordinator, verifierIdx, l1Batch, proofA, proofB, proofC)
1100}
1101
1102// ForgeBatch is a paid mutator transaction binding the contract method 0x6e7e1365.
1103//
1104// Solidity: function forgeBatch(uint48 newLastIdx, uint256 newStRoot, uint256 newExitRoot, bytes encodedL1CoordinatorTx, bytes l1L2TxsData, bytes feeIdxCoordinator, uint8 verifierIdx, bool l1Batch, uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC) returns()
1105func (_Hermez *HermezSession) ForgeBatch(newLastIdx *big.Int, newStRoot *big.Int, newExitRoot *big.Int, encodedL1CoordinatorTx []byte, l1L2TxsData []byte, feeIdxCoordinator []byte, verifierIdx uint8, l1Batch bool, proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int) (*types.Transaction, error) {
1106	return _Hermez.Contract.ForgeBatch(&_Hermez.TransactOpts, newLastIdx, newStRoot, newExitRoot, encodedL1CoordinatorTx, l1L2TxsData, feeIdxCoordinator, verifierIdx, l1Batch, proofA, proofB, proofC)
1107}
1108
1109// ForgeBatch is a paid mutator transaction binding the contract method 0x6e7e1365.
1110//
1111// Solidity: function forgeBatch(uint48 newLastIdx, uint256 newStRoot, uint256 newExitRoot, bytes encodedL1CoordinatorTx, bytes l1L2TxsData, bytes feeIdxCoordinator, uint8 verifierIdx, bool l1Batch, uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC) returns()
1112func (_Hermez *HermezTransactorSession) ForgeBatch(newLastIdx *big.Int, newStRoot *big.Int, newExitRoot *big.Int, encodedL1CoordinatorTx []byte, l1L2TxsData []byte, feeIdxCoordinator []byte, verifierIdx uint8, l1Batch bool, proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int) (*types.Transaction, error) {
1113	return _Hermez.Contract.ForgeBatch(&_Hermez.TransactOpts, newLastIdx, newStRoot, newExitRoot, encodedL1CoordinatorTx, l1L2TxsData, feeIdxCoordinator, verifierIdx, l1Batch, proofA, proofB, proofC)
1114}
1115
1116// InitializeHermez is a paid mutator transaction binding the contract method 0x599897e3.
1117//
1118// Solidity: function initializeHermez(address[] _verifiers, uint256[] _verifiersParams, address _withdrawVerifier, address _hermezAuctionContract, address _tokenHEZ, uint8 _forgeL1L2BatchTimeout, uint256 _feeAddToken, address _poseidon2Elements, address _poseidon3Elements, address _poseidon4Elements, address _hermezGovernanceAddress, uint64 _withdrawalDelay, address _withdrawDelayerContract) returns()
1119func (_Hermez *HermezTransactor) InitializeHermez(opts *bind.TransactOpts, _verifiers []common.Address, _verifiersParams []*big.Int, _withdrawVerifier common.Address, _hermezAuctionContract common.Address, _tokenHEZ common.Address, _forgeL1L2BatchTimeout uint8, _feeAddToken *big.Int, _poseidon2Elements common.Address, _poseidon3Elements common.Address, _poseidon4Elements common.Address, _hermezGovernanceAddress common.Address, _withdrawalDelay uint64, _withdrawDelayerContract common.Address) (*types.Transaction, error) {
1120	return _Hermez.contract.Transact(opts, "initializeHermez", _verifiers, _verifiersParams, _withdrawVerifier, _hermezAuctionContract, _tokenHEZ, _forgeL1L2BatchTimeout, _feeAddToken, _poseidon2Elements, _poseidon3Elements, _poseidon4Elements, _hermezGovernanceAddress, _withdrawalDelay, _withdrawDelayerContract)
1121}
1122
1123// InitializeHermez is a paid mutator transaction binding the contract method 0x599897e3.
1124//
1125// Solidity: function initializeHermez(address[] _verifiers, uint256[] _verifiersParams, address _withdrawVerifier, address _hermezAuctionContract, address _tokenHEZ, uint8 _forgeL1L2BatchTimeout, uint256 _feeAddToken, address _poseidon2Elements, address _poseidon3Elements, address _poseidon4Elements, address _hermezGovernanceAddress, uint64 _withdrawalDelay, address _withdrawDelayerContract) returns()
1126func (_Hermez *HermezSession) InitializeHermez(_verifiers []common.Address, _verifiersParams []*big.Int, _withdrawVerifier common.Address, _hermezAuctionContract common.Address, _tokenHEZ common.Address, _forgeL1L2BatchTimeout uint8, _feeAddToken *big.Int, _poseidon2Elements common.Address, _poseidon3Elements common.Address, _poseidon4Elements common.Address, _hermezGovernanceAddress common.Address, _withdrawalDelay uint64, _withdrawDelayerContract common.Address) (*types.Transaction, error) {
1127	return _Hermez.Contract.InitializeHermez(&_Hermez.TransactOpts, _verifiers, _verifiersParams, _withdrawVerifier, _hermezAuctionContract, _tokenHEZ, _forgeL1L2BatchTimeout, _feeAddToken, _poseidon2Elements, _poseidon3Elements, _poseidon4Elements, _hermezGovernanceAddress, _withdrawalDelay, _withdrawDelayerContract)
1128}
1129
1130// InitializeHermez is a paid mutator transaction binding the contract method 0x599897e3.
1131//
1132// Solidity: function initializeHermez(address[] _verifiers, uint256[] _verifiersParams, address _withdrawVerifier, address _hermezAuctionContract, address _tokenHEZ, uint8 _forgeL1L2BatchTimeout, uint256 _feeAddToken, address _poseidon2Elements, address _poseidon3Elements, address _poseidon4Elements, address _hermezGovernanceAddress, uint64 _withdrawalDelay, address _withdrawDelayerContract) returns()
1133func (_Hermez *HermezTransactorSession) InitializeHermez(_verifiers []common.Address, _verifiersParams []*big.Int, _withdrawVerifier common.Address, _hermezAuctionContract common.Address, _tokenHEZ common.Address, _forgeL1L2BatchTimeout uint8, _feeAddToken *big.Int, _poseidon2Elements common.Address, _poseidon3Elements common.Address, _poseidon4Elements common.Address, _hermezGovernanceAddress common.Address, _withdrawalDelay uint64, _withdrawDelayerContract common.Address) (*types.Transaction, error) {
1134	return _Hermez.Contract.InitializeHermez(&_Hermez.TransactOpts, _verifiers, _verifiersParams, _withdrawVerifier, _hermezAuctionContract, _tokenHEZ, _forgeL1L2BatchTimeout, _feeAddToken, _poseidon2Elements, _poseidon3Elements, _poseidon4Elements, _hermezGovernanceAddress, _withdrawalDelay, _withdrawDelayerContract)
1135}
1136
1137// SafeMode is a paid mutator transaction binding the contract method 0xabe3219c.
1138//
1139// Solidity: function safeMode() returns()
1140func (_Hermez *HermezTransactor) SafeMode(opts *bind.TransactOpts) (*types.Transaction, error) {
1141	return _Hermez.contract.Transact(opts, "safeMode")
1142}
1143
1144// SafeMode is a paid mutator transaction binding the contract method 0xabe3219c.
1145//
1146// Solidity: function safeMode() returns()
1147func (_Hermez *HermezSession) SafeMode() (*types.Transaction, error) {
1148	return _Hermez.Contract.SafeMode(&_Hermez.TransactOpts)
1149}
1150
1151// SafeMode is a paid mutator transaction binding the contract method 0xabe3219c.
1152//
1153// Solidity: function safeMode() returns()
1154func (_Hermez *HermezTransactorSession) SafeMode() (*types.Transaction, error) {
1155	return _Hermez.Contract.SafeMode(&_Hermez.TransactOpts)
1156}
1157
1158// UpdateBucketsParameters is a paid mutator transaction binding the contract method 0x68e95e53.
1159//
1160// Solidity: function updateBucketsParameters(uint256[4][5] arrayBuckets) returns()
1161func (_Hermez *HermezTransactor) UpdateBucketsParameters(opts *bind.TransactOpts, arrayBuckets [5][4]*big.Int) (*types.Transaction, error) {
1162	return _Hermez.contract.Transact(opts, "updateBucketsParameters", arrayBuckets)
1163}
1164
1165// UpdateBucketsParameters is a paid mutator transaction binding the contract method 0x68e95e53.
1166//
1167// Solidity: function updateBucketsParameters(uint256[4][5] arrayBuckets) returns()
1168func (_Hermez *HermezSession) UpdateBucketsParameters(arrayBuckets [5][4]*big.Int) (*types.Transaction, error) {
1169	return _Hermez.Contract.UpdateBucketsParameters(&_Hermez.TransactOpts, arrayBuckets)
1170}
1171
1172// UpdateBucketsParameters is a paid mutator transaction binding the contract method 0x68e95e53.
1173//
1174// Solidity: function updateBucketsParameters(uint256[4][5] arrayBuckets) returns()
1175func (_Hermez *HermezTransactorSession) UpdateBucketsParameters(arrayBuckets [5][4]*big.Int) (*types.Transaction, error) {
1176	return _Hermez.Contract.UpdateBucketsParameters(&_Hermez.TransactOpts, arrayBuckets)
1177}
1178
1179// UpdateFeeAddToken is a paid mutator transaction binding the contract method 0x314e5eda.
1180//
1181// Solidity: function updateFeeAddToken(uint256 newFeeAddToken) returns()
1182func (_Hermez *HermezTransactor) UpdateFeeAddToken(opts *bind.TransactOpts, newFeeAddToken *big.Int) (*types.Transaction, error) {
1183	return _Hermez.contract.Transact(opts, "updateFeeAddToken", newFeeAddToken)
1184}
1185
1186// UpdateFeeAddToken is a paid mutator transaction binding the contract method 0x314e5eda.
1187//
1188// Solidity: function updateFeeAddToken(uint256 newFeeAddToken) returns()
1189func (_Hermez *HermezSession) UpdateFeeAddToken(newFeeAddToken *big.Int) (*types.Transaction, error) {
1190	return _Hermez.Contract.UpdateFeeAddToken(&_Hermez.TransactOpts, newFeeAddToken)
1191}
1192
1193// UpdateFeeAddToken is a paid mutator transaction binding the contract method 0x314e5eda.
1194//
1195// Solidity: function updateFeeAddToken(uint256 newFeeAddToken) returns()
1196func (_Hermez *HermezTransactorSession) UpdateFeeAddToken(newFeeAddToken *big.Int) (*types.Transaction, error) {
1197	return _Hermez.Contract.UpdateFeeAddToken(&_Hermez.TransactOpts, newFeeAddToken)
1198}
1199
1200// UpdateForgeL1L2BatchTimeout is a paid mutator transaction binding the contract method 0xcbd7b5fb.
1201//
1202// Solidity: function updateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout) returns()
1203func (_Hermez *HermezTransactor) UpdateForgeL1L2BatchTimeout(opts *bind.TransactOpts, newForgeL1L2BatchTimeout uint8) (*types.Transaction, error) {
1204	return _Hermez.contract.Transact(opts, "updateForgeL1L2BatchTimeout", newForgeL1L2BatchTimeout)
1205}
1206
1207// UpdateForgeL1L2BatchTimeout is a paid mutator transaction binding the contract method 0xcbd7b5fb.
1208//
1209// Solidity: function updateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout) returns()
1210func (_Hermez *HermezSession) UpdateForgeL1L2BatchTimeout(newForgeL1L2BatchTimeout uint8) (*types.Transaction, error) {
1211	return _Hermez.Contract.UpdateForgeL1L2BatchTimeout(&_Hermez.TransactOpts, newForgeL1L2BatchTimeout)
1212}
1213
1214// UpdateForgeL1L2BatchTimeout is a paid mutator transaction binding the contract method 0xcbd7b5fb.
1215//
1216// Solidity: function updateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout) returns()
1217func (_Hermez *HermezTransactorSession) UpdateForgeL1L2BatchTimeout(newForgeL1L2BatchTimeout uint8) (*types.Transaction, error) {
1218	return _Hermez.Contract.UpdateForgeL1L2BatchTimeout(&_Hermez.TransactOpts, newForgeL1L2BatchTimeout)
1219}
1220
1221// UpdateTokenExchange is a paid mutator transaction binding the contract method 0x1a748c2d.
1222//
1223// Solidity: function updateTokenExchange(address[] addressArray, uint64[] valueArray) returns()
1224func (_Hermez *HermezTransactor) UpdateTokenExchange(opts *bind.TransactOpts, addressArray []common.Address, valueArray []uint64) (*types.Transaction, error) {
1225	return _Hermez.contract.Transact(opts, "updateTokenExchange", addressArray, valueArray)
1226}
1227
1228// UpdateTokenExchange is a paid mutator transaction binding the contract method 0x1a748c2d.
1229//
1230// Solidity: function updateTokenExchange(address[] addressArray, uint64[] valueArray) returns()
1231func (_Hermez *HermezSession) UpdateTokenExchange(addressArray []common.Address, valueArray []uint64) (*types.Transaction, error) {
1232	return _Hermez.Contract.UpdateTokenExchange(&_Hermez.TransactOpts, addressArray, valueArray)
1233}
1234
1235// UpdateTokenExchange is a paid mutator transaction binding the contract method 0x1a748c2d.
1236//
1237// Solidity: function updateTokenExchange(address[] addressArray, uint64[] valueArray) returns()
1238func (_Hermez *HermezTransactorSession) UpdateTokenExchange(addressArray []common.Address, valueArray []uint64) (*types.Transaction, error) {
1239	return _Hermez.Contract.UpdateTokenExchange(&_Hermez.TransactOpts, addressArray, valueArray)
1240}
1241
1242// UpdateWithdrawalDelay is a paid mutator transaction binding the contract method 0xef4a5c4a.
1243//
1244// Solidity: function updateWithdrawalDelay(uint64 newWithdrawalDelay) returns()
1245func (_Hermez *HermezTransactor) UpdateWithdrawalDelay(opts *bind.TransactOpts, newWithdrawalDelay uint64) (*types.Transaction, error) {
1246	return _Hermez.contract.Transact(opts, "updateWithdrawalDelay", newWithdrawalDelay)
1247}
1248
1249// UpdateWithdrawalDelay is a paid mutator transaction binding the contract method 0xef4a5c4a.
1250//
1251// Solidity: function updateWithdrawalDelay(uint64 newWithdrawalDelay) returns()
1252func (_Hermez *HermezSession) UpdateWithdrawalDelay(newWithdrawalDelay uint64) (*types.Transaction, error) {
1253	return _Hermez.Contract.UpdateWithdrawalDelay(&_Hermez.TransactOpts, newWithdrawalDelay)
1254}
1255
1256// UpdateWithdrawalDelay is a paid mutator transaction binding the contract method 0xef4a5c4a.
1257//
1258// Solidity: function updateWithdrawalDelay(uint64 newWithdrawalDelay) returns()
1259func (_Hermez *HermezTransactorSession) UpdateWithdrawalDelay(newWithdrawalDelay uint64) (*types.Transaction, error) {
1260	return _Hermez.Contract.UpdateWithdrawalDelay(&_Hermez.TransactOpts, newWithdrawalDelay)
1261}
1262
1263// WithdrawCircuit is a paid mutator transaction binding the contract method 0x9ce2ad42.
1264//
1265// Solidity: function withdrawCircuit(uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC, uint32 tokenID, uint192 amount, uint32 numExitRoot, uint48 idx, bool instantWithdraw) returns()
1266func (_Hermez *HermezTransactor) WithdrawCircuit(opts *bind.TransactOpts, proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int, tokenID uint32, amount *big.Int, numExitRoot uint32, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
1267	return _Hermez.contract.Transact(opts, "withdrawCircuit", proofA, proofB, proofC, tokenID, amount, numExitRoot, idx, instantWithdraw)
1268}
1269
1270// WithdrawCircuit is a paid mutator transaction binding the contract method 0x9ce2ad42.
1271//
1272// Solidity: function withdrawCircuit(uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC, uint32 tokenID, uint192 amount, uint32 numExitRoot, uint48 idx, bool instantWithdraw) returns()
1273func (_Hermez *HermezSession) WithdrawCircuit(proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int, tokenID uint32, amount *big.Int, numExitRoot uint32, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
1274	return _Hermez.Contract.WithdrawCircuit(&_Hermez.TransactOpts, proofA, proofB, proofC, tokenID, amount, numExitRoot, idx, instantWithdraw)
1275}
1276
1277// WithdrawCircuit is a paid mutator transaction binding the contract method 0x9ce2ad42.
1278//
1279// Solidity: function withdrawCircuit(uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC, uint32 tokenID, uint192 amount, uint32 numExitRoot, uint48 idx, bool instantWithdraw) returns()
1280func (_Hermez *HermezTransactorSession) WithdrawCircuit(proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int, tokenID uint32, amount *big.Int, numExitRoot uint32, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
1281	return _Hermez.Contract.WithdrawCircuit(&_Hermez.TransactOpts, proofA, proofB, proofC, tokenID, amount, numExitRoot, idx, instantWithdraw)
1282}
1283
1284// WithdrawMerkleProof is a paid mutator transaction binding the contract method 0xd9d4ca44.
1285//
1286// Solidity: function withdrawMerkleProof(uint32 tokenID, uint192 amount, uint256 babyPubKey, uint32 numExitRoot, uint256[] siblings, uint48 idx, bool instantWithdraw) returns()
1287func (_Hermez *HermezTransactor) WithdrawMerkleProof(opts *bind.TransactOpts, tokenID uint32, amount *big.Int, babyPubKey *big.Int, numExitRoot uint32, siblings []*big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
1288	return _Hermez.contract.Transact(opts, "withdrawMerkleProof", tokenID, amount, babyPubKey, numExitRoot, siblings, idx, instantWithdraw)
1289}
1290
1291// WithdrawMerkleProof is a paid mutator transaction binding the contract method 0xd9d4ca44.
1292//
1293// Solidity: function withdrawMerkleProof(uint32 tokenID, uint192 amount, uint256 babyPubKey, uint32 numExitRoot, uint256[] siblings, uint48 idx, bool instantWithdraw) returns()
1294func (_Hermez *HermezSession) WithdrawMerkleProof(tokenID uint32, amount *big.Int, babyPubKey *big.Int, numExitRoot uint32, siblings []*big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
1295	return _Hermez.Contract.WithdrawMerkleProof(&_Hermez.TransactOpts, tokenID, amount, babyPubKey, numExitRoot, siblings, idx, instantWithdraw)
1296}
1297
1298// WithdrawMerkleProof is a paid mutator transaction binding the contract method 0xd9d4ca44.
1299//
1300// Solidity: function withdrawMerkleProof(uint32 tokenID, uint192 amount, uint256 babyPubKey, uint32 numExitRoot, uint256[] siblings, uint48 idx, bool instantWithdraw) returns()
1301func (_Hermez *HermezTransactorSession) WithdrawMerkleProof(tokenID uint32, amount *big.Int, babyPubKey *big.Int, numExitRoot uint32, siblings []*big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
1302	return _Hermez.Contract.WithdrawMerkleProof(&_Hermez.TransactOpts, tokenID, amount, babyPubKey, numExitRoot, siblings, idx, instantWithdraw)
1303}
1304
1305// HermezAddTokenIterator is returned from FilterAddToken and is used to iterate over the raw logs and unpacked data for AddToken events raised by the Hermez contract.
1306type HermezAddTokenIterator struct {
1307	Event *HermezAddToken // Event containing the contract specifics and raw log
1308
1309	contract *bind.BoundContract // Generic contract to use for unpacking event data
1310	event    string              // Event name to use for unpacking event data
1311
1312	logs chan types.Log        // Log channel receiving the found contract events
1313	sub  ethereum.Subscription // Subscription for errors, completion and termination
1314	done bool                  // Whether the subscription completed delivering logs
1315	fail error                 // Occurred error to stop iteration
1316}
1317
1318// Next advances the iterator to the subsequent event, returning whether there
1319// are any more events found. In case of a retrieval or parsing error, false is
1320// returned and Error() can be queried for the exact failure.
1321func (it *HermezAddTokenIterator) Next() bool {
1322	// If the iterator failed, stop iterating
1323	if it.fail != nil {
1324		return false
1325	}
1326	// If the iterator completed, deliver directly whatever's available
1327	if it.done {
1328		select {
1329		case log := <-it.logs:
1330			it.Event = new(HermezAddToken)
1331			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1332				it.fail = err
1333				return false
1334			}
1335			it.Event.Raw = log
1336			return true
1337
1338		default:
1339			return false
1340		}
1341	}
1342	// Iterator still in progress, wait for either a data or an error event
1343	select {
1344	case log := <-it.logs:
1345		it.Event = new(HermezAddToken)
1346		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1347			it.fail = err
1348			return false
1349		}
1350		it.Event.Raw = log
1351		return true
1352
1353	case err := <-it.sub.Err():
1354		it.done = true
1355		it.fail = err
1356		return it.Next()
1357	}
1358}
1359
1360// Error returns any retrieval or parsing error occurred during filtering.
1361func (it *HermezAddTokenIterator) Error() error {
1362	return it.fail
1363}
1364
1365// Close terminates the iteration process, releasing any pending underlying
1366// resources.
1367func (it *HermezAddTokenIterator) Close() error {
1368	it.sub.Unsubscribe()
1369	return nil
1370}
1371
1372// HermezAddToken represents a AddToken event raised by the Hermez contract.
1373type HermezAddToken struct {
1374	TokenAddress common.Address
1375	TokenID      uint32
1376	Raw          types.Log // Blockchain specific contextual infos
1377}
1378
1379// FilterAddToken is a free log retrieval operation binding the contract event 0xcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde.
1380//
1381// Solidity: event AddToken(address indexed tokenAddress, uint32 tokenID)
1382func (_Hermez *HermezFilterer) FilterAddToken(opts *bind.FilterOpts, tokenAddress []common.Address) (*HermezAddTokenIterator, error) {
1383
1384	var tokenAddressRule []interface{}
1385	for _, tokenAddressItem := range tokenAddress {
1386		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
1387	}
1388
1389	logs, sub, err := _Hermez.contract.FilterLogs(opts, "AddToken", tokenAddressRule)
1390	if err != nil {
1391		return nil, err
1392	}
1393	return &HermezAddTokenIterator{contract: _Hermez.contract, event: "AddToken", logs: logs, sub: sub}, nil
1394}
1395
1396// WatchAddToken is a free log subscription operation binding the contract event 0xcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde.
1397//
1398// Solidity: event AddToken(address indexed tokenAddress, uint32 tokenID)
1399func (_Hermez *HermezFilterer) WatchAddToken(opts *bind.WatchOpts, sink chan<- *HermezAddToken, tokenAddress []common.Address) (event.Subscription, error) {
1400
1401	var tokenAddressRule []interface{}
1402	for _, tokenAddressItem := range tokenAddress {
1403		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
1404	}
1405
1406	logs, sub, err := _Hermez.contract.WatchLogs(opts, "AddToken", tokenAddressRule)
1407	if err != nil {
1408		return nil, err
1409	}
1410	return event.NewSubscription(func(quit <-chan struct{}) error {
1411		defer sub.Unsubscribe()
1412		for {
1413			select {
1414			case log := <-logs:
1415				// New log arrived, parse the event and forward to the user
1416				event := new(HermezAddToken)
1417				if err := _Hermez.contract.UnpackLog(event, "AddToken", log); err != nil {
1418					return err
1419				}
1420				event.Raw = log
1421
1422				select {
1423				case sink <- event:
1424				case err := <-sub.Err():
1425					return err
1426				case <-quit:
1427					return nil
1428				}
1429			case err := <-sub.Err():
1430				return err
1431			case <-quit:
1432				return nil
1433			}
1434		}
1435	}), nil
1436}
1437
1438// ParseAddToken is a log parse operation binding the contract event 0xcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde.
1439//
1440// Solidity: event AddToken(address indexed tokenAddress, uint32 tokenID)
1441func (_Hermez *HermezFilterer) ParseAddToken(log types.Log) (*HermezAddToken, error) {
1442	event := new(HermezAddToken)
1443	if err := _Hermez.contract.UnpackLog(event, "AddToken", log); err != nil {
1444		return nil, err
1445	}
1446	event.Raw = log
1447	return event, nil
1448}
1449
1450// HermezForgeBatchIterator is returned from FilterForgeBatch and is used to iterate over the raw logs and unpacked data for ForgeBatch events raised by the Hermez contract.
1451type HermezForgeBatchIterator struct {
1452	Event *HermezForgeBatch // Event containing the contract specifics and raw log
1453
1454	contract *bind.BoundContract // Generic contract to use for unpacking event data
1455	event    string              // Event name to use for unpacking event data
1456
1457	logs chan types.Log        // Log channel receiving the found contract events
1458	sub  ethereum.Subscription // Subscription for errors, completion and termination
1459	done bool                  // Whether the subscription completed delivering logs
1460	fail error                 // Occurred error to stop iteration
1461}
1462
1463// Next advances the iterator to the subsequent event, returning whether there
1464// are any more events found. In case of a retrieval or parsing error, false is
1465// returned and Error() can be queried for the exact failure.
1466func (it *HermezForgeBatchIterator) Next() bool {
1467	// If the iterator failed, stop iterating
1468	if it.fail != nil {
1469		return false
1470	}
1471	// If the iterator completed, deliver directly whatever's available
1472	if it.done {
1473		select {
1474		case log := <-it.logs:
1475			it.Event = new(HermezForgeBatch)
1476			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1477				it.fail = err
1478				return false
1479			}
1480			it.Event.Raw = log
1481			return true
1482
1483		default:
1484			return false
1485		}
1486	}
1487	// Iterator still in progress, wait for either a data or an error event
1488	select {
1489	case log := <-it.logs:
1490		it.Event = new(HermezForgeBatch)
1491		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1492			it.fail = err
1493			return false
1494		}
1495		it.Event.Raw = log
1496		return true
1497
1498	case err := <-it.sub.Err():
1499		it.done = true
1500		it.fail = err
1501		return it.Next()
1502	}
1503}
1504
1505// Error returns any retrieval or parsing error occurred during filtering.
1506func (it *HermezForgeBatchIterator) Error() error {
1507	return it.fail
1508}
1509
1510// Close terminates the iteration process, releasing any pending underlying
1511// resources.
1512func (it *HermezForgeBatchIterator) Close() error {
1513	it.sub.Unsubscribe()
1514	return nil
1515}
1516
1517// HermezForgeBatch represents a ForgeBatch event raised by the Hermez contract.
1518type HermezForgeBatch struct {
1519	BatchNum     uint32
1520	L1UserTxsLen uint16
1521	Raw          types.Log // Blockchain specific contextual infos
1522}
1523
1524// FilterForgeBatch is a free log retrieval operation binding the contract event 0xe00040c8a3b0bf905636c26924e90520eafc5003324138236fddee2d34588618.
1525//
1526// Solidity: event ForgeBatch(uint32 indexed batchNum, uint16 l1UserTxsLen)
1527func (_Hermez *HermezFilterer) FilterForgeBatch(opts *bind.FilterOpts, batchNum []uint32) (*HermezForgeBatchIterator, error) {
1528
1529	var batchNumRule []interface{}
1530	for _, batchNumItem := range batchNum {
1531		batchNumRule = append(batchNumRule, batchNumItem)
1532	}
1533
1534	logs, sub, err := _Hermez.contract.FilterLogs(opts, "ForgeBatch", batchNumRule)
1535	if err != nil {
1536		return nil, err
1537	}
1538	return &HermezForgeBatchIterator{contract: _Hermez.contract, event: "ForgeBatch", logs: logs, sub: sub}, nil
1539}
1540
1541// WatchForgeBatch is a free log subscription operation binding the contract event 0xe00040c8a3b0bf905636c26924e90520eafc5003324138236fddee2d34588618.
1542//
1543// Solidity: event ForgeBatch(uint32 indexed batchNum, uint16 l1UserTxsLen)
1544func (_Hermez *HermezFilterer) WatchForgeBatch(opts *bind.WatchOpts, sink chan<- *HermezForgeBatch, batchNum []uint32) (event.Subscription, error) {
1545
1546	var batchNumRule []interface{}
1547	for _, batchNumItem := range batchNum {
1548		batchNumRule = append(batchNumRule, batchNumItem)
1549	}
1550
1551	logs, sub, err := _Hermez.contract.WatchLogs(opts, "ForgeBatch", batchNumRule)
1552	if err != nil {
1553		return nil, err
1554	}
1555	return event.NewSubscription(func(quit <-chan struct{}) error {
1556		defer sub.Unsubscribe()
1557		for {
1558			select {
1559			case log := <-logs:
1560				// New log arrived, parse the event and forward to the user
1561				event := new(HermezForgeBatch)
1562				if err := _Hermez.contract.UnpackLog(event, "ForgeBatch", log); err != nil {
1563					return err
1564				}
1565				event.Raw = log
1566
1567				select {
1568				case sink <- event:
1569				case err := <-sub.Err():
1570					return err
1571				case <-quit:
1572					return nil
1573				}
1574			case err := <-sub.Err():
1575				return err
1576			case <-quit:
1577				return nil
1578			}
1579		}
1580	}), nil
1581}
1582
1583// ParseForgeBatch is a log parse operation binding the contract event 0xe00040c8a3b0bf905636c26924e90520eafc5003324138236fddee2d34588618.
1584//
1585// Solidity: event ForgeBatch(uint32 indexed batchNum, uint16 l1UserTxsLen)
1586func (_Hermez *HermezFilterer) ParseForgeBatch(log types.Log) (*HermezForgeBatch, error) {
1587	event := new(HermezForgeBatch)
1588	if err := _Hermez.contract.UnpackLog(event, "ForgeBatch", log); err != nil {
1589		return nil, err
1590	}
1591	event.Raw = log
1592	return event, nil
1593}
1594
1595// HermezInitializeHermezEventIterator is returned from FilterInitializeHermezEvent and is used to iterate over the raw logs and unpacked data for InitializeHermezEvent events raised by the Hermez contract.
1596type HermezInitializeHermezEventIterator struct {
1597	Event *HermezInitializeHermezEvent // Event containing the contract specifics and raw log
1598
1599	contract *bind.BoundContract // Generic contract to use for unpacking event data
1600	event    string              // Event name to use for unpacking event data
1601
1602	logs chan types.Log        // Log channel receiving the found contract events
1603	sub  ethereum.Subscription // Subscription for errors, completion and termination
1604	done bool                  // Whether the subscription completed delivering logs
1605	fail error                 // Occurred error to stop iteration
1606}
1607
1608// Next advances the iterator to the subsequent event, returning whether there
1609// are any more events found. In case of a retrieval or parsing error, false is
1610// returned and Error() can be queried for the exact failure.
1611func (it *HermezInitializeHermezEventIterator) Next() bool {
1612	// If the iterator failed, stop iterating
1613	if it.fail != nil {
1614		return false
1615	}
1616	// If the iterator completed, deliver directly whatever's available
1617	if it.done {
1618		select {
1619		case log := <-it.logs:
1620			it.Event = new(HermezInitializeHermezEvent)
1621			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1622				it.fail = err
1623				return false
1624			}
1625			it.Event.Raw = log
1626			return true
1627
1628		default:
1629			return false
1630		}
1631	}
1632	// Iterator still in progress, wait for either a data or an error event
1633	select {
1634	case log := <-it.logs:
1635		it.Event = new(HermezInitializeHermezEvent)
1636		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1637			it.fail = err
1638			return false
1639		}
1640		it.Event.Raw = log
1641		return true
1642
1643	case err := <-it.sub.Err():
1644		it.done = true
1645		it.fail = err
1646		return it.Next()
1647	}
1648}
1649
1650// Error returns any retrieval or parsing error occurred during filtering.
1651func (it *HermezInitializeHermezEventIterator) Error() error {
1652	return it.fail
1653}
1654
1655// Close terminates the iteration process, releasing any pending underlying
1656// resources.
1657func (it *HermezInitializeHermezEventIterator) Close() error {
1658	it.sub.Unsubscribe()
1659	return nil
1660}
1661
1662// HermezInitializeHermezEvent represents a InitializeHermezEvent event raised by the Hermez contract.
1663type HermezInitializeHermezEvent struct {
1664	ForgeL1L2BatchTimeout uint8
1665	FeeAddToken           *big.Int
1666	WithdrawalDelay       uint64
1667	Raw                   types.Log // Blockchain specific contextual infos
1668}
1669
1670// FilterInitializeHermezEvent is a free log retrieval operation binding the contract event 0xc5272ad4c8d9f2e9af2f9555c11ead049be22b6e45c16975adc82371b7cd1040.
1671//
1672// Solidity: event InitializeHermezEvent(uint8 forgeL1L2BatchTimeout, uint256 feeAddToken, uint64 withdrawalDelay)
1673func (_Hermez *HermezFilterer) FilterInitializeHermezEvent(opts *bind.FilterOpts) (*HermezInitializeHermezEventIterator, error) {
1674
1675	logs, sub, err := _Hermez.contract.FilterLogs(opts, "InitializeHermezEvent")
1676	if err != nil {
1677		return nil, err
1678	}
1679	return &HermezInitializeHermezEventIterator{contract: _Hermez.contract, event: "InitializeHermezEvent", logs: logs, sub: sub}, nil
1680}
1681
1682// WatchInitializeHermezEvent is a free log subscription operation binding the contract event 0xc5272ad4c8d9f2e9af2f9555c11ead049be22b6e45c16975adc82371b7cd1040.
1683//
1684// Solidity: event InitializeHermezEvent(uint8 forgeL1L2BatchTimeout, uint256 feeAddToken, uint64 withdrawalDelay)
1685func (_Hermez *HermezFilterer) WatchInitializeHermezEvent(opts *bind.WatchOpts, sink chan<- *HermezInitializeHermezEvent) (event.Subscription, error) {
1686
1687	logs, sub, err := _Hermez.contract.WatchLogs(opts, "InitializeHermezEvent")
1688	if err != nil {
1689		return nil, err
1690	}
1691	return event.NewSubscription(func(quit <-chan struct{}) error {
1692		defer sub.Unsubscribe()
1693		for {
1694			select {
1695			case log := <-logs:
1696				// New log arrived, parse the event and forward to the user
1697				event := new(HermezInitializeHermezEvent)
1698				if err := _Hermez.contract.UnpackLog(event, "InitializeHermezEvent", log); err != nil {
1699					return err
1700				}
1701				event.Raw = log
1702
1703				select {
1704				case sink <- event:
1705				case err := <-sub.Err():
1706					return err
1707				case <-quit:
1708					return nil
1709				}
1710			case err := <-sub.Err():
1711				return err
1712			case <-quit:
1713				return nil
1714			}
1715		}
1716	}), nil
1717}
1718
1719// ParseInitializeHermezEvent is a log parse operation binding the contract event 0xc5272ad4c8d9f2e9af2f9555c11ead049be22b6e45c16975adc82371b7cd1040.
1720//
1721// Solidity: event InitializeHermezEvent(uint8 forgeL1L2BatchTimeout, uint256 feeAddToken, uint64 withdrawalDelay)
1722func (_Hermez *HermezFilterer) ParseInitializeHermezEvent(log types.Log) (*HermezInitializeHermezEvent, error) {
1723	event := new(HermezInitializeHermezEvent)
1724	if err := _Hermez.contract.UnpackLog(event, "InitializeHermezEvent", log); err != nil {
1725		return nil, err
1726	}
1727	event.Raw = log
1728	return event, nil
1729}
1730
1731// HermezL1UserTxEventIterator is returned from FilterL1UserTxEvent and is used to iterate over the raw logs and unpacked data for L1UserTxEvent events raised by the Hermez contract.
1732type HermezL1UserTxEventIterator struct {
1733	Event *HermezL1UserTxEvent // Event containing the contract specifics and raw log
1734
1735	contract *bind.BoundContract // Generic contract to use for unpacking event data
1736	event    string              // Event name to use for unpacking event data
1737
1738	logs chan types.Log        // Log channel receiving the found contract events
1739	sub  ethereum.Subscription // Subscription for errors, completion and termination
1740	done bool                  // Whether the subscription completed delivering logs
1741	fail error                 // Occurred error to stop iteration
1742}
1743
1744// Next advances the iterator to the subsequent event, returning whether there
1745// are any more events found. In case of a retrieval or parsing error, false is
1746// returned and Error() can be queried for the exact failure.
1747func (it *HermezL1UserTxEventIterator) Next() bool {
1748	// If the iterator failed, stop iterating
1749	if it.fail != nil {
1750		return false
1751	}
1752	// If the iterator completed, deliver directly whatever's available
1753	if it.done {
1754		select {
1755		case log := <-it.logs:
1756			it.Event = new(HermezL1UserTxEvent)
1757			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1758				it.fail = err
1759				return false
1760			}
1761			it.Event.Raw = log
1762			return true
1763
1764		default:
1765			return false
1766		}
1767	}
1768	// Iterator still in progress, wait for either a data or an error event
1769	select {
1770	case log := <-it.logs:
1771		it.Event = new(HermezL1UserTxEvent)
1772		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1773			it.fail = err
1774			return false
1775		}
1776		it.Event.Raw = log
1777		return true
1778
1779	case err := <-it.sub.Err():
1780		it.done = true
1781		it.fail = err
1782		return it.Next()
1783	}
1784}
1785
1786// Error returns any retrieval or parsing error occurred during filtering.
1787func (it *HermezL1UserTxEventIterator) Error() error {
1788	return it.fail
1789}
1790
1791// Close terminates the iteration process, releasing any pending underlying
1792// resources.
1793func (it *HermezL1UserTxEventIterator) Close() error {
1794	it.sub.Unsubscribe()
1795	return nil
1796}
1797
1798// HermezL1UserTxEvent represents a L1UserTxEvent event raised by the Hermez contract.
1799type HermezL1UserTxEvent struct {
1800	QueueIndex uint32
1801	Position   uint8
1802	L1UserTx   []byte
1803	Raw        types.Log // Blockchain specific contextual infos
1804}
1805
1806// FilterL1UserTxEvent is a free log retrieval operation binding the contract event 0xdd5c7c5ea02d3c5d1621513faa6de53d474ee6f111eda6352a63e3dfe8c40119.
1807//
1808// Solidity: event L1UserTxEvent(uint32 indexed queueIndex, uint8 indexed position, bytes l1UserTx)
1809func (_Hermez *HermezFilterer) FilterL1UserTxEvent(opts *bind.FilterOpts, queueIndex []uint32, position []uint8) (*HermezL1UserTxEventIterator, error) {
1810
1811	var queueIndexRule []interface{}
1812	for _, queueIndexItem := range queueIndex {
1813		queueIndexRule = append(queueIndexRule, queueIndexItem)
1814	}
1815	var positionRule []interface{}
1816	for _, positionItem := range position {
1817		positionRule = append(positionRule, positionItem)
1818	}
1819
1820	logs, sub, err := _Hermez.contract.FilterLogs(opts, "L1UserTxEvent", queueIndexRule, positionRule)
1821	if err != nil {
1822		return nil, err
1823	}
1824	return &HermezL1UserTxEventIterator{contract: _Hermez.contract, event: "L1UserTxEvent", logs: logs, sub: sub}, nil
1825}
1826
1827// WatchL1UserTxEvent is a free log subscription operation binding the contract event 0xdd5c7c5ea02d3c5d1621513faa6de53d474ee6f111eda6352a63e3dfe8c40119.
1828//
1829// Solidity: event L1UserTxEvent(uint32 indexed queueIndex, uint8 indexed position, bytes l1UserTx)
1830func (_Hermez *HermezFilterer) WatchL1UserTxEvent(opts *bind.WatchOpts, sink chan<- *HermezL1UserTxEvent, queueIndex []uint32, position []uint8) (event.Subscription, error) {
1831
1832	var queueIndexRule []interface{}
1833	for _, queueIndexItem := range queueIndex {
1834		queueIndexRule = append(queueIndexRule, queueIndexItem)
1835	}
1836	var positionRule []interface{}
1837	for _, positionItem := range position {
1838		positionRule = append(positionRule, positionItem)
1839	}
1840
1841	logs, sub, err := _Hermez.contract.WatchLogs(opts, "L1UserTxEvent", queueIndexRule, positionRule)
1842	if err != nil {
1843		return nil, err
1844	}
1845	return event.NewSubscription(func(quit <-chan struct{}) error {
1846		defer sub.Unsubscribe()
1847		for {
1848			select {
1849			case log := <-logs:
1850				// New log arrived, parse the event and forward to the user
1851				event := new(HermezL1UserTxEvent)
1852				if err := _Hermez.contract.UnpackLog(event, "L1UserTxEvent", log); err != nil {
1853					return err
1854				}
1855				event.Raw = log
1856
1857				select {
1858				case sink <- event:
1859				case err := <-sub.Err():
1860					return err
1861				case <-quit:
1862					return nil
1863				}
1864			case err := <-sub.Err():
1865				return err
1866			case <-quit:
1867				return nil
1868			}
1869		}
1870	}), nil
1871}
1872
1873// ParseL1UserTxEvent is a log parse operation binding the contract event 0xdd5c7c5ea02d3c5d1621513faa6de53d474ee6f111eda6352a63e3dfe8c40119.
1874//
1875// Solidity: event L1UserTxEvent(uint32 indexed queueIndex, uint8 indexed position, bytes l1UserTx)
1876func (_Hermez *HermezFilterer) ParseL1UserTxEvent(log types.Log) (*HermezL1UserTxEvent, error) {
1877	event := new(HermezL1UserTxEvent)
1878	if err := _Hermez.contract.UnpackLog(event, "L1UserTxEvent", log); err != nil {
1879		return nil, err
1880	}
1881	event.Raw = log
1882	return event, nil
1883}
1884
1885// HermezSafeModeIterator is returned from FilterSafeMode and is used to iterate over the raw logs and unpacked data for SafeMode events raised by the Hermez contract.
1886type HermezSafeModeIterator struct {
1887	Event *HermezSafeMode // Event containing the contract specifics and raw log
1888
1889	contract *bind.BoundContract // Generic contract to use for unpacking event data
1890	event    string              // Event name to use for unpacking event data
1891
1892	logs chan types.Log        // Log channel receiving the found contract events
1893	sub  ethereum.Subscription // Subscription for errors, completion and termination
1894	done bool                  // Whether the subscription completed delivering logs
1895	fail error                 // Occurred error to stop iteration
1896}
1897
1898// Next advances the iterator to the subsequent event, returning whether there
1899// are any more events found. In case of a retrieval or parsing error, false is
1900// returned and Error() can be queried for the exact failure.
1901func (it *HermezSafeModeIterator) Next() bool {
1902	// If the iterator failed, stop iterating
1903	if it.fail != nil {
1904		return false
1905	}
1906	// If the iterator completed, deliver directly whatever's available
1907	if it.done {
1908		select {
1909		case log := <-it.logs:
1910			it.Event = new(HermezSafeMode)
1911			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1912				it.fail = err
1913				return false
1914			}
1915			it.Event.Raw = log
1916			return true
1917
1918		default:
1919			return false
1920		}
1921	}
1922	// Iterator still in progress, wait for either a data or an error event
1923	select {
1924	case log := <-it.logs:
1925		it.Event = new(HermezSafeMode)
1926		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1927			it.fail = err
1928			return false
1929		}
1930		it.Event.Raw = log
1931		return true
1932
1933	case err := <-it.sub.Err():
1934		it.done = true
1935		it.fail = err
1936		return it.Next()
1937	}
1938}
1939
1940// Error returns any retrieval or parsing error occurred during filtering.
1941func (it *HermezSafeModeIterator) Error() error {
1942	return it.fail
1943}
1944
1945// Close terminates the iteration process, releasing any pending underlying
1946// resources.
1947func (it *HermezSafeModeIterator) Close() error {
1948	it.sub.Unsubscribe()
1949	return nil
1950}
1951
1952// HermezSafeMode represents a SafeMode event raised by the Hermez contract.
1953type HermezSafeMode struct {
1954	Raw types.Log // Blockchain specific contextual infos
1955}
1956
1957// FilterSafeMode is a free log retrieval operation binding the contract event 0x0410e6ef2bd89ecf5b2dc2f62157f9863e09e89cb7c7f1abb7d4ec43a6019d1e.
1958//
1959// Solidity: event SafeMode()
1960func (_Hermez *HermezFilterer) FilterSafeMode(opts *bind.FilterOpts) (*HermezSafeModeIterator, error) {
1961
1962	logs, sub, err := _Hermez.contract.FilterLogs(opts, "SafeMode")
1963	if err != nil {
1964		return nil, err
1965	}
1966	return &HermezSafeModeIterator{contract: _Hermez.contract, event: "SafeMode", logs: logs, sub: sub}, nil
1967}
1968
1969// WatchSafeMode is a free log subscription operation binding the contract event 0x0410e6ef2bd89ecf5b2dc2f62157f9863e09e89cb7c7f1abb7d4ec43a6019d1e.
1970//
1971// Solidity: event SafeMode()
1972func (_Hermez *HermezFilterer) WatchSafeMode(opts *bind.WatchOpts, sink chan<- *HermezSafeMode) (event.Subscription, error) {
1973
1974	logs, sub, err := _Hermez.contract.WatchLogs(opts, "SafeMode")
1975	if err != nil {
1976		return nil, err
1977	}
1978	return event.NewSubscription(func(quit <-chan struct{}) error {
1979		defer sub.Unsubscribe()
1980		for {
1981			select {
1982			case log := <-logs:
1983				// New log arrived, parse the event and forward to the user
1984				event := new(HermezSafeMode)
1985				if err := _Hermez.contract.UnpackLog(event, "SafeMode", log); err != nil {
1986					return err
1987				}
1988				event.Raw = log
1989
1990				select {
1991				case sink <- event:
1992				case err := <-sub.Err():
1993					return err
1994				case <-quit:
1995					return nil
1996				}
1997			case err := <-sub.Err():
1998				return err
1999			case <-quit:
2000				return nil
2001			}
2002		}
2003	}), nil
2004}
2005
2006// ParseSafeMode is a log parse operation binding the contract event 0x0410e6ef2bd89ecf5b2dc2f62157f9863e09e89cb7c7f1abb7d4ec43a6019d1e.
2007//
2008// Solidity: event SafeMode()
2009func (_Hermez *HermezFilterer) ParseSafeMode(log types.Log) (*HermezSafeMode, error) {
2010	event := new(HermezSafeMode)
2011	if err := _Hermez.contract.UnpackLog(event, "SafeMode", log); err != nil {
2012		return nil, err
2013	}
2014	event.Raw = log
2015	return event, nil
2016}
2017
2018// HermezUpdateBucketWithdrawIterator is returned from FilterUpdateBucketWithdraw and is used to iterate over the raw logs and unpacked data for UpdateBucketWithdraw events raised by the Hermez contract.
2019type HermezUpdateBucketWithdrawIterator struct {
2020	Event *HermezUpdateBucketWithdraw // Event containing the contract specifics and raw log
2021
2022	contract *bind.BoundContract // Generic contract to use for unpacking event data
2023	event    string              // Event name to use for unpacking event data
2024
2025	logs chan types.Log        // Log channel receiving the found contract events
2026	sub  ethereum.Subscription // Subscription for errors, completion and termination
2027	done bool                  // Whether the subscription completed delivering logs
2028	fail error                 // Occurred error to stop iteration
2029}
2030
2031// Next advances the iterator to the subsequent event, returning whether there
2032// are any more events found. In case of a retrieval or parsing error, false is
2033// returned and Error() can be queried for the exact failure.
2034func (it *HermezUpdateBucketWithdrawIterator) Next() bool {
2035	// If the iterator failed, stop iterating
2036	if it.fail != nil {
2037		return false
2038	}
2039	// If the iterator completed, deliver directly whatever's available
2040	if it.done {
2041		select {
2042		case log := <-it.logs:
2043			it.Event = new(HermezUpdateBucketWithdraw)
2044			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2045				it.fail = err
2046				return false
2047			}
2048			it.Event.Raw = log
2049			return true
2050
2051		default:
2052			return false
2053		}
2054	}
2055	// Iterator still in progress, wait for either a data or an error event
2056	select {
2057	case log := <-it.logs:
2058		it.Event = new(HermezUpdateBucketWithdraw)
2059		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2060			it.fail = err
2061			return false
2062		}
2063		it.Event.Raw = log
2064		return true
2065
2066	case err := <-it.sub.Err():
2067		it.done = true
2068		it.fail = err
2069		return it.Next()
2070	}
2071}
2072
2073// Error returns any retrieval or parsing error occurred during filtering.
2074func (it *HermezUpdateBucketWithdrawIterator) Error() error {
2075	return it.fail
2076}
2077
2078// Close terminates the iteration process, releasing any pending underlying
2079// resources.
2080func (it *HermezUpdateBucketWithdrawIterator) Close() error {
2081	it.sub.Unsubscribe()
2082	return nil
2083}
2084
2085// HermezUpdateBucketWithdraw represents a UpdateBucketWithdraw event raised by the Hermez contract.
2086type HermezUpdateBucketWithdraw struct {
2087	NumBucket   uint8
2088	BlockStamp  *big.Int
2089	Withdrawals *big.Int
2090	Raw         types.Log // Blockchain specific contextual infos
2091}
2092
2093// FilterUpdateBucketWithdraw is a free log retrieval operation binding the contract event 0xa35fe9a9e21cdbbc4774aa8a56e7b97ea9c06afc09ffb06af593d26951e350aa.
2094//
2095// Solidity: event UpdateBucketWithdraw(uint8 indexed numBucket, uint256 indexed blockStamp, uint256 withdrawals)
2096func (_Hermez *HermezFilterer) FilterUpdateBucketWithdraw(opts *bind.FilterOpts, numBucket []uint8, blockStamp []*big.Int) (*HermezUpdateBucketWithdrawIterator, error) {
2097
2098	var numBucketRule []interface{}
2099	for _, numBucketItem := range numBucket {
2100		numBucketRule = append(numBucketRule, numBucketItem)
2101	}
2102	var blockStampRule []interface{}
2103	for _, blockStampItem := range blockStamp {
2104		blockStampRule = append(blockStampRule, blockStampItem)
2105	}
2106
2107	logs, sub, err := _Hermez.contract.FilterLogs(opts, "UpdateBucketWithdraw", numBucketRule, blockStampRule)
2108	if err != nil {
2109		return nil, err
2110	}
2111	return &HermezUpdateBucketWithdrawIterator{contract: _Hermez.contract, event: "UpdateBucketWithdraw", logs: logs, sub: sub}, nil
2112}
2113
2114// WatchUpdateBucketWithdraw is a free log subscription operation binding the contract event 0xa35fe9a9e21cdbbc4774aa8a56e7b97ea9c06afc09ffb06af593d26951e350aa.
2115//
2116// Solidity: event UpdateBucketWithdraw(uint8 indexed numBucket, uint256 indexed blockStamp, uint256 withdrawals)
2117func (_Hermez *HermezFilterer) WatchUpdateBucketWithdraw(opts *bind.WatchOpts, sink chan<- *HermezUpdateBucketWithdraw, numBucket []uint8, blockStamp []*big.Int) (event.Subscription, error) {
2118
2119	var numBucketRule []interface{}
2120	for _, numBucketItem := range numBucket {
2121		numBucketRule = append(numBucketRule, numBucketItem)
2122	}
2123	var blockStampRule []interface{}
2124	for _, blockStampItem := range blockStamp {
2125		blockStampRule = append(blockStampRule, blockStampItem)
2126	}
2127
2128	logs, sub, err := _Hermez.contract.WatchLogs(opts, "UpdateBucketWithdraw", numBucketRule, blockStampRule)
2129	if err != nil {
2130		return nil, err
2131	}
2132	return event.NewSubscription(func(quit <-chan struct{}) error {
2133		defer sub.Unsubscribe()
2134		for {
2135			select {
2136			case log := <-logs:
2137				// New log arrived, parse the event and forward to the user
2138				event := new(HermezUpdateBucketWithdraw)
2139				if err := _Hermez.contract.UnpackLog(event, "UpdateBucketWithdraw", log); err != nil {
2140					return err
2141				}
2142				event.Raw = log
2143
2144				select {
2145				case sink <- event:
2146				case err := <-sub.Err():
2147					return err
2148				case <-quit:
2149					return nil
2150				}
2151			case err := <-sub.Err():
2152				return err
2153			case <-quit:
2154				return nil
2155			}
2156		}
2157	}), nil
2158}
2159
2160// ParseUpdateBucketWithdraw is a log parse operation binding the contract event 0xa35fe9a9e21cdbbc4774aa8a56e7b97ea9c06afc09ffb06af593d26951e350aa.
2161//
2162// Solidity: event UpdateBucketWithdraw(uint8 indexed numBucket, uint256 indexed blockStamp, uint256 withdrawals)
2163func (_Hermez *HermezFilterer) ParseUpdateBucketWithdraw(log types.Log) (*HermezUpdateBucketWithdraw, error) {
2164	event := new(HermezUpdateBucketWithdraw)
2165	if err := _Hermez.contract.UnpackLog(event, "UpdateBucketWithdraw", log); err != nil {
2166		return nil, err
2167	}
2168	event.Raw = log
2169	return event, nil
2170}
2171
2172// HermezUpdateBucketsParametersIterator is returned from FilterUpdateBucketsParameters and is used to iterate over the raw logs and unpacked data for UpdateBucketsParameters events raised by the Hermez contract.
2173type HermezUpdateBucketsParametersIterator struct {
2174	Event *HermezUpdateBucketsParameters // Event containing the contract specifics and raw log
2175
2176	contract *bind.BoundContract // Generic contract to use for unpacking event data
2177	event    string              // Event name to use for unpacking event data
2178
2179	logs chan types.Log        // Log channel receiving the found contract events
2180	sub  ethereum.Subscription // Subscription for errors, completion and termination
2181	done bool                  // Whether the subscription completed delivering logs
2182	fail error                 // Occurred error to stop iteration
2183}
2184
2185// Next advances the iterator to the subsequent event, returning whether there
2186// are any more events found. In case of a retrieval or parsing error, false is
2187// returned and Error() can be queried for the exact failure.
2188func (it *HermezUpdateBucketsParametersIterator) Next() bool {
2189	// If the iterator failed, stop iterating
2190	if it.fail != nil {
2191		return false
2192	}
2193	// If the iterator completed, deliver directly whatever's available
2194	if it.done {
2195		select {
2196		case log := <-it.logs:
2197			it.Event = new(HermezUpdateBucketsParameters)
2198			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2199				it.fail = err
2200				return false
2201			}
2202			it.Event.Raw = log
2203			return true
2204
2205		default:
2206			return false
2207		}
2208	}
2209	// Iterator still in progress, wait for either a data or an error event
2210	select {
2211	case log := <-it.logs:
2212		it.Event = new(HermezUpdateBucketsParameters)
2213		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2214			it.fail = err
2215			return false
2216		}
2217		it.Event.Raw = log
2218		return true
2219
2220	case err := <-it.sub.Err():
2221		it.done = true
2222		it.fail = err
2223		return it.Next()
2224	}
2225}
2226
2227// Error returns any retrieval or parsing error occurred during filtering.
2228func (it *HermezUpdateBucketsParametersIterator) Error() error {
2229	return it.fail
2230}
2231
2232// Close terminates the iteration process, releasing any pending underlying
2233// resources.
2234func (it *HermezUpdateBucketsParametersIterator) Close() error {
2235	it.sub.Unsubscribe()
2236	return nil
2237}
2238
2239// HermezUpdateBucketsParameters represents a UpdateBucketsParameters event raised by the Hermez contract.
2240type HermezUpdateBucketsParameters struct {
2241	ArrayBuckets [5][4]*big.Int
2242	Raw          types.Log // Blockchain specific contextual infos
2243}
2244
2245// FilterUpdateBucketsParameters is a free log retrieval operation binding the contract event 0x3c39a1e91c69d4cfeacb11190befc2b1c983746e6b21ab2441a3051de88d4480.
2246//
2247// Solidity: event UpdateBucketsParameters(uint256[4][5] arrayBuckets)
2248func (_Hermez *HermezFilterer) FilterUpdateBucketsParameters(opts *bind.FilterOpts) (*HermezUpdateBucketsParametersIterator, error) {
2249
2250	logs, sub, err := _Hermez.contract.FilterLogs(opts, "UpdateBucketsParameters")
2251	if err != nil {
2252		return nil, err
2253	}
2254	return &HermezUpdateBucketsParametersIterator{contract: _Hermez.contract, event: "UpdateBucketsParameters", logs: logs, sub: sub}, nil
2255}
2256
2257// WatchUpdateBucketsParameters is a free log subscription operation binding the contract event 0x3c39a1e91c69d4cfeacb11190befc2b1c983746e6b21ab2441a3051de88d4480.
2258//
2259// Solidity: event UpdateBucketsParameters(uint256[4][5] arrayBuckets)
2260func (_Hermez *HermezFilterer) WatchUpdateBucketsParameters(opts *bind.WatchOpts, sink chan<- *HermezUpdateBucketsParameters) (event.Subscription, error) {
2261
2262	logs, sub, err := _Hermez.contract.WatchLogs(opts, "UpdateBucketsParameters")
2263	if err != nil {
2264		return nil, err
2265	}
2266	return event.NewSubscription(func(quit <-chan struct{}) error {
2267		defer sub.Unsubscribe()
2268		for {
2269			select {
2270			case log := <-logs:
2271				// New log arrived, parse the event and forward to the user
2272				event := new(HermezUpdateBucketsParameters)
2273				if err := _Hermez.contract.UnpackLog(event, "UpdateBucketsParameters", log); err != nil {
2274					return err
2275				}
2276				event.Raw = log
2277
2278				select {
2279				case sink <- event:
2280				case err := <-sub.Err():
2281					return err
2282				case <-quit:
2283					return nil
2284				}
2285			case err := <-sub.Err():
2286				return err
2287			case <-quit:
2288				return nil
2289			}
2290		}
2291	}), nil
2292}
2293
2294// ParseUpdateBucketsParameters is a log parse operation binding the contract event 0x3c39a1e91c69d4cfeacb11190befc2b1c983746e6b21ab2441a3051de88d4480.
2295//
2296// Solidity: event UpdateBucketsParameters(uint256[4][5] arrayBuckets)
2297func (_Hermez *HermezFilterer) ParseUpdateBucketsParameters(log types.Log) (*HermezUpdateBucketsParameters, error) {
2298	event := new(HermezUpdateBucketsParameters)
2299	if err := _Hermez.contract.UnpackLog(event, "UpdateBucketsParameters", log); err != nil {
2300		return nil, err
2301	}
2302	event.Raw = log
2303	return event, nil
2304}
2305
2306// HermezUpdateFeeAddTokenIterator is returned from FilterUpdateFeeAddToken and is used to iterate over the raw logs and unpacked data for UpdateFeeAddToken events raised by the Hermez contract.
2307type HermezUpdateFeeAddTokenIterator struct {
2308	Event *HermezUpdateFeeAddToken // Event containing the contract specifics and raw log
2309
2310	contract *bind.BoundContract // Generic contract to use for unpacking event data
2311	event    string              // Event name to use for unpacking event data
2312
2313	logs chan types.Log        // Log channel receiving the found contract events
2314	sub  ethereum.Subscription // Subscription for errors, completion and termination
2315	done bool                  // Whether the subscription completed delivering logs
2316	fail error                 // Occurred error to stop iteration
2317}
2318
2319// Next advances the iterator to the subsequent event, returning whether there
2320// are any more events found. In case of a retrieval or parsing error, false is
2321// returned and Error() can be queried for the exact failure.
2322func (it *HermezUpdateFeeAddTokenIterator) Next() bool {
2323	// If the iterator failed, stop iterating
2324	if it.fail != nil {
2325		return false
2326	}
2327	// If the iterator completed, deliver directly whatever's available
2328	if it.done {
2329		select {
2330		case log := <-it.logs:
2331			it.Event = new(HermezUpdateFeeAddToken)
2332			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2333				it.fail = err
2334				return false
2335			}
2336			it.Event.Raw = log
2337			return true
2338
2339		default:
2340			return false
2341		}
2342	}
2343	// Iterator still in progress, wait for either a data or an error event
2344	select {
2345	case log := <-it.logs:
2346		it.Event = new(HermezUpdateFeeAddToken)
2347		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2348			it.fail = err
2349			return false
2350		}
2351		it.Event.Raw = log
2352		return true
2353
2354	case err := <-it.sub.Err():
2355		it.done = true
2356		it.fail = err
2357		return it.Next()
2358	}
2359}
2360
2361// Error returns any retrieval or parsing error occurred during filtering.
2362func (it *HermezUpdateFeeAddTokenIterator) Error() error {
2363	return it.fail
2364}
2365
2366// Close terminates the iteration process, releasing any pending underlying
2367// resources.
2368func (it *HermezUpdateFeeAddTokenIterator) Close() error {
2369	it.sub.Unsubscribe()
2370	return nil
2371}
2372
2373// HermezUpdateFeeAddToken represents a UpdateFeeAddToken event raised by the Hermez contract.
2374type HermezUpdateFeeAddToken struct {
2375	NewFeeAddToken *big.Int
2376	Raw            types.Log // Blockchain specific contextual infos
2377}
2378
2379// FilterUpdateFeeAddToken is a free log retrieval operation binding the contract event 0xd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c1.
2380//
2381// Solidity: event UpdateFeeAddToken(uint256 newFeeAddToken)
2382func (_Hermez *HermezFilterer) FilterUpdateFeeAddToken(opts *bind.FilterOpts) (*HermezUpdateFeeAddTokenIterator, error) {
2383
2384	logs, sub, err := _Hermez.contract.FilterLogs(opts, "UpdateFeeAddToken")
2385	if err != nil {
2386		return nil, err
2387	}
2388	return &HermezUpdateFeeAddTokenIterator{contract: _Hermez.contract, event: "UpdateFeeAddToken", logs: logs, sub: sub}, nil
2389}
2390
2391// WatchUpdateFeeAddToken is a free log subscription operation binding the contract event 0xd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c1.
2392//
2393// Solidity: event UpdateFeeAddToken(uint256 newFeeAddToken)
2394func (_Hermez *HermezFilterer) WatchUpdateFeeAddToken(opts *bind.WatchOpts, sink chan<- *HermezUpdateFeeAddToken) (event.Subscription, error) {
2395
2396	logs, sub, err := _Hermez.contract.WatchLogs(opts, "UpdateFeeAddToken")
2397	if err != nil {
2398		return nil, err
2399	}
2400	return event.NewSubscription(func(quit <-chan struct{}) error {
2401		defer sub.Unsubscribe()
2402		for {
2403			select {
2404			case log := <-logs:
2405				// New log arrived, parse the event and forward to the user
2406				event := new(HermezUpdateFeeAddToken)
2407				if err := _Hermez.contract.UnpackLog(event, "UpdateFeeAddToken", log); err != nil {
2408					return err
2409				}
2410				event.Raw = log
2411
2412				select {
2413				case sink <- event:
2414				case err := <-sub.Err():
2415					return err
2416				case <-quit:
2417					return nil
2418				}
2419			case err := <-sub.Err():
2420				return err
2421			case <-quit:
2422				return nil
2423			}
2424		}
2425	}), nil
2426}
2427
2428// ParseUpdateFeeAddToken is a log parse operation binding the contract event 0xd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c1.
2429//
2430// Solidity: event UpdateFeeAddToken(uint256 newFeeAddToken)
2431func (_Hermez *HermezFilterer) ParseUpdateFeeAddToken(log types.Log) (*HermezUpdateFeeAddToken, error) {
2432	event := new(HermezUpdateFeeAddToken)
2433	if err := _Hermez.contract.UnpackLog(event, "UpdateFeeAddToken", log); err != nil {
2434		return nil, err
2435	}
2436	event.Raw = log
2437	return event, nil
2438}
2439
2440// HermezUpdateForgeL1L2BatchTimeoutIterator is returned from FilterUpdateForgeL1L2BatchTimeout and is used to iterate over the raw logs and unpacked data for UpdateForgeL1L2BatchTimeout events raised by the Hermez contract.
2441type HermezUpdateForgeL1L2BatchTimeoutIterator struct {
2442	Event *HermezUpdateForgeL1L2BatchTimeout // Event containing the contract specifics and raw log
2443
2444	contract *bind.BoundContract // Generic contract to use for unpacking event data
2445	event    string              // Event name to use for unpacking event data
2446
2447	logs chan types.Log        // Log channel receiving the found contract events
2448	sub  ethereum.Subscription // Subscription for errors, completion and termination
2449	done bool                  // Whether the subscription completed delivering logs
2450	fail error                 // Occurred error to stop iteration
2451}
2452
2453// Next advances the iterator to the subsequent event, returning whether there
2454// are any more events found. In case of a retrieval or parsing error, false is
2455// returned and Error() can be queried for the exact failure.
2456func (it *HermezUpdateForgeL1L2BatchTimeoutIterator) Next() bool {
2457	// If the iterator failed, stop iterating
2458	if it.fail != nil {
2459		return false
2460	}
2461	// If the iterator completed, deliver directly whatever's available
2462	if it.done {
2463		select {
2464		case log := <-it.logs:
2465			it.Event = new(HermezUpdateForgeL1L2BatchTimeout)
2466			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2467				it.fail = err
2468				return false
2469			}
2470			it.Event.Raw = log
2471			return true
2472
2473		default:
2474			return false
2475		}
2476	}
2477	// Iterator still in progress, wait for either a data or an error event
2478	select {
2479	case log := <-it.logs:
2480		it.Event = new(HermezUpdateForgeL1L2BatchTimeout)
2481		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2482			it.fail = err
2483			return false
2484		}
2485		it.Event.Raw = log
2486		return true
2487
2488	case err := <-it.sub.Err():
2489		it.done = true
2490		it.fail = err
2491		return it.Next()
2492	}
2493}
2494
2495// Error returns any retrieval or parsing error occurred during filtering.
2496func (it *HermezUpdateForgeL1L2BatchTimeoutIterator) Error() error {
2497	return it.fail
2498}
2499
2500// Close terminates the iteration process, releasing any pending underlying
2501// resources.
2502func (it *HermezUpdateForgeL1L2BatchTimeoutIterator) Close() error {
2503	it.sub.Unsubscribe()
2504	return nil
2505}
2506
2507// HermezUpdateForgeL1L2BatchTimeout represents a UpdateForgeL1L2BatchTimeout event raised by the Hermez contract.
2508type HermezUpdateForgeL1L2BatchTimeout struct {
2509	NewForgeL1L2BatchTimeout uint8
2510	Raw                      types.Log // Blockchain specific contextual infos
2511}
2512
2513// FilterUpdateForgeL1L2BatchTimeout is a free log retrieval operation binding the contract event 0xff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac974431.
2514//
2515// Solidity: event UpdateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout)
2516func (_Hermez *HermezFilterer) FilterUpdateForgeL1L2BatchTimeout(opts *bind.FilterOpts) (*HermezUpdateForgeL1L2BatchTimeoutIterator, error) {
2517
2518	logs, sub, err := _Hermez.contract.FilterLogs(opts, "UpdateForgeL1L2BatchTimeout")
2519	if err != nil {
2520		return nil, err
2521	}
2522	return &HermezUpdateForgeL1L2BatchTimeoutIterator{contract: _Hermez.contract, event: "UpdateForgeL1L2BatchTimeout", logs: logs, sub: sub}, nil
2523}
2524
2525// WatchUpdateForgeL1L2BatchTimeout is a free log subscription operation binding the contract event 0xff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac974431.
2526//
2527// Solidity: event UpdateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout)
2528func (_Hermez *HermezFilterer) WatchUpdateForgeL1L2BatchTimeout(opts *bind.WatchOpts, sink chan<- *HermezUpdateForgeL1L2BatchTimeout) (event.Subscription, error) {
2529
2530	logs, sub, err := _Hermez.contract.WatchLogs(opts, "UpdateForgeL1L2BatchTimeout")
2531	if err != nil {
2532		return nil, err
2533	}
2534	return event.NewSubscription(func(quit <-chan struct{}) error {
2535		defer sub.Unsubscribe()
2536		for {
2537			select {
2538			case log := <-logs:
2539				// New log arrived, parse the event and forward to the user
2540				event := new(HermezUpdateForgeL1L2BatchTimeout)
2541				if err := _Hermez.contract.UnpackLog(event, "UpdateForgeL1L2BatchTimeout", log); err != nil {
2542					return err
2543				}
2544				event.Raw = log
2545
2546				select {
2547				case sink <- event:
2548				case err := <-sub.Err():
2549					return err
2550				case <-quit:
2551					return nil
2552				}
2553			case err := <-sub.Err():
2554				return err
2555			case <-quit:
2556				return nil
2557			}
2558		}
2559	}), nil
2560}
2561
2562// ParseUpdateForgeL1L2BatchTimeout is a log parse operation binding the contract event 0xff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac974431.
2563//
2564// Solidity: event UpdateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout)
2565func (_Hermez *HermezFilterer) ParseUpdateForgeL1L2BatchTimeout(log types.Log) (*HermezUpdateForgeL1L2BatchTimeout, error) {
2566	event := new(HermezUpdateForgeL1L2BatchTimeout)
2567	if err := _Hermez.contract.UnpackLog(event, "UpdateForgeL1L2BatchTimeout", log); err != nil {
2568		return nil, err
2569	}
2570	event.Raw = log
2571	return event, nil
2572}
2573
2574// HermezUpdateTokenExchangeIterator is returned from FilterUpdateTokenExchange and is used to iterate over the raw logs and unpacked data for UpdateTokenExchange events raised by the Hermez contract.
2575type HermezUpdateTokenExchangeIterator struct {
2576	Event *HermezUpdateTokenExchange // Event containing the contract specifics and raw log
2577
2578	contract *bind.BoundContract // Generic contract to use for unpacking event data
2579	event    string              // Event name to use for unpacking event data
2580
2581	logs chan types.Log        // Log channel receiving the found contract events
2582	sub  ethereum.Subscription // Subscription for errors, completion and termination
2583	done bool                  // Whether the subscription completed delivering logs
2584	fail error                 // Occurred error to stop iteration
2585}
2586
2587// Next advances the iterator to the subsequent event, returning whether there
2588// are any more events found. In case of a retrieval or parsing error, false is
2589// returned and Error() can be queried for the exact failure.
2590func (it *HermezUpdateTokenExchangeIterator) Next() bool {
2591	// If the iterator failed, stop iterating
2592	if it.fail != nil {
2593		return false
2594	}
2595	// If the iterator completed, deliver directly whatever's available
2596	if it.done {
2597		select {
2598		case log := <-it.logs:
2599			it.Event = new(HermezUpdateTokenExchange)
2600			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2601				it.fail = err
2602				return false
2603			}
2604			it.Event.Raw = log
2605			return true
2606
2607		default:
2608			return false
2609		}
2610	}
2611	// Iterator still in progress, wait for either a data or an error event
2612	select {
2613	case log := <-it.logs:
2614		it.Event = new(HermezUpdateTokenExchange)
2615		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2616			it.fail = err
2617			return false
2618		}
2619		it.Event.Raw = log
2620		return true
2621
2622	case err := <-it.sub.Err():
2623		it.done = true
2624		it.fail = err
2625		return it.Next()
2626	}
2627}
2628
2629// Error returns any retrieval or parsing error occurred during filtering.
2630func (it *HermezUpdateTokenExchangeIterator) Error() error {
2631	return it.fail
2632}
2633
2634// Close terminates the iteration process, releasing any pending underlying
2635// resources.
2636func (it *HermezUpdateTokenExchangeIterator) Close() error {
2637	it.sub.Unsubscribe()
2638	return nil
2639}
2640
2641// HermezUpdateTokenExchange represents a UpdateTokenExchange event raised by the Hermez contract.
2642type HermezUpdateTokenExchange struct {
2643	AddressArray []common.Address
2644	ValueArray   []uint64
2645	Raw          types.Log // Blockchain specific contextual infos
2646}
2647
2648// FilterUpdateTokenExchange is a free log retrieval operation binding the contract event 0x10ff643ebeca3e33002e61b76fa85e7e10091e30afa39295f91af9838b3033b3.
2649//
2650// Solidity: event UpdateTokenExchange(address[] addressArray, uint64[] valueArray)
2651func (_Hermez *HermezFilterer) FilterUpdateTokenExchange(opts *bind.FilterOpts) (*HermezUpdateTokenExchangeIterator, error) {
2652
2653	logs, sub, err := _Hermez.contract.FilterLogs(opts, "UpdateTokenExchange")
2654	if err != nil {
2655		return nil, err
2656	}
2657	return &HermezUpdateTokenExchangeIterator{contract: _Hermez.contract, event: "UpdateTokenExchange", logs: logs, sub: sub}, nil
2658}
2659
2660// WatchUpdateTokenExchange is a free log subscription operation binding the contract event 0x10ff643ebeca3e33002e61b76fa85e7e10091e30afa39295f91af9838b3033b3.
2661//
2662// Solidity: event UpdateTokenExchange(address[] addressArray, uint64[] valueArray)
2663func (_Hermez *HermezFilterer) WatchUpdateTokenExchange(opts *bind.WatchOpts, sink chan<- *HermezUpdateTokenExchange) (event.Subscription, error) {
2664
2665	logs, sub, err := _Hermez.contract.WatchLogs(opts, "UpdateTokenExchange")
2666	if err != nil {
2667		return nil, err
2668	}
2669	return event.NewSubscription(func(quit <-chan struct{}) error {
2670		defer sub.Unsubscribe()
2671		for {
2672			select {
2673			case log := <-logs:
2674				// New log arrived, parse the event and forward to the user
2675				event := new(HermezUpdateTokenExchange)
2676				if err := _Hermez.contract.UnpackLog(event, "UpdateTokenExchange", log); err != nil {
2677					return err
2678				}
2679				event.Raw = log
2680
2681				select {
2682				case sink <- event:
2683				case err := <-sub.Err():
2684					return err
2685				case <-quit:
2686					return nil
2687				}
2688			case err := <-sub.Err():
2689				return err
2690			case <-quit:
2691				return nil
2692			}
2693		}
2694	}), nil
2695}
2696
2697// ParseUpdateTokenExchange is a log parse operation binding the contract event 0x10ff643ebeca3e33002e61b76fa85e7e10091e30afa39295f91af9838b3033b3.
2698//
2699// Solidity: event UpdateTokenExchange(address[] addressArray, uint64[] valueArray)
2700func (_Hermez *HermezFilterer) ParseUpdateTokenExchange(log types.Log) (*HermezUpdateTokenExchange, error) {
2701	event := new(HermezUpdateTokenExchange)
2702	if err := _Hermez.contract.UnpackLog(event, "UpdateTokenExchange", log); err != nil {
2703		return nil, err
2704	}
2705	event.Raw = log
2706	return event, nil
2707}
2708
2709// HermezUpdateWithdrawalDelayIterator is returned from FilterUpdateWithdrawalDelay and is used to iterate over the raw logs and unpacked data for UpdateWithdrawalDelay events raised by the Hermez contract.
2710type HermezUpdateWithdrawalDelayIterator struct {
2711	Event *HermezUpdateWithdrawalDelay // Event containing the contract specifics and raw log
2712
2713	contract *bind.BoundContract // Generic contract to use for unpacking event data
2714	event    string              // Event name to use for unpacking event data
2715
2716	logs chan types.Log        // Log channel receiving the found contract events
2717	sub  ethereum.Subscription // Subscription for errors, completion and termination
2718	done bool                  // Whether the subscription completed delivering logs
2719	fail error                 // Occurred error to stop iteration
2720}
2721
2722// Next advances the iterator to the subsequent event, returning whether there
2723// are any more events found. In case of a retrieval or parsing error, false is
2724// returned and Error() can be queried for the exact failure.
2725func (it *HermezUpdateWithdrawalDelayIterator) Next() bool {
2726	// If the iterator failed, stop iterating
2727	if it.fail != nil {
2728		return false
2729	}
2730	// If the iterator completed, deliver directly whatever's available
2731	if it.done {
2732		select {
2733		case log := <-it.logs:
2734			it.Event = new(HermezUpdateWithdrawalDelay)
2735			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2736				it.fail = err
2737				return false
2738			}
2739			it.Event.Raw = log
2740			return true
2741
2742		default:
2743			return false
2744		}
2745	}
2746	// Iterator still in progress, wait for either a data or an error event
2747	select {
2748	case log := <-it.logs:
2749		it.Event = new(HermezUpdateWithdrawalDelay)
2750		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2751			it.fail = err
2752			return false
2753		}
2754		it.Event.Raw = log
2755		return true
2756
2757	case err := <-it.sub.Err():
2758		it.done = true
2759		it.fail = err
2760		return it.Next()
2761	}
2762}
2763
2764// Error returns any retrieval or parsing error occurred during filtering.
2765func (it *HermezUpdateWithdrawalDelayIterator) Error() error {
2766	return it.fail
2767}
2768
2769// Close terminates the iteration process, releasing any pending underlying
2770// resources.
2771func (it *HermezUpdateWithdrawalDelayIterator) Close() error {
2772	it.sub.Unsubscribe()
2773	return nil
2774}
2775
2776// HermezUpdateWithdrawalDelay represents a UpdateWithdrawalDelay event raised by the Hermez contract.
2777type HermezUpdateWithdrawalDelay struct {
2778	NewWithdrawalDelay uint64
2779	Raw                types.Log // Blockchain specific contextual infos
2780}
2781
2782// FilterUpdateWithdrawalDelay is a free log retrieval operation binding the contract event 0x9db302c4547a21fb20a3a794e5f63ee87eb6e4afc3325ebdadba2d1fb4a90737.
2783//
2784// Solidity: event UpdateWithdrawalDelay(uint64 newWithdrawalDelay)
2785func (_Hermez *HermezFilterer) FilterUpdateWithdrawalDelay(opts *bind.FilterOpts) (*HermezUpdateWithdrawalDelayIterator, error) {
2786
2787	logs, sub, err := _Hermez.contract.FilterLogs(opts, "UpdateWithdrawalDelay")
2788	if err != nil {
2789		return nil, err
2790	}
2791	return &HermezUpdateWithdrawalDelayIterator{contract: _Hermez.contract, event: "UpdateWithdrawalDelay", logs: logs, sub: sub}, nil
2792}
2793
2794// WatchUpdateWithdrawalDelay is a free log subscription operation binding the contract event 0x9db302c4547a21fb20a3a794e5f63ee87eb6e4afc3325ebdadba2d1fb4a90737.
2795//
2796// Solidity: event UpdateWithdrawalDelay(uint64 newWithdrawalDelay)
2797func (_Hermez *HermezFilterer) WatchUpdateWithdrawalDelay(opts *bind.WatchOpts, sink chan<- *HermezUpdateWithdrawalDelay) (event.Subscription, error) {
2798
2799	logs, sub, err := _Hermez.contract.WatchLogs(opts, "UpdateWithdrawalDelay")
2800	if err != nil {
2801		return nil, err
2802	}
2803	return event.NewSubscription(func(quit <-chan struct{}) error {
2804		defer sub.Unsubscribe()
2805		for {
2806			select {
2807			case log := <-logs:
2808				// New log arrived, parse the event and forward to the user
2809				event := new(HermezUpdateWithdrawalDelay)
2810				if err := _Hermez.contract.UnpackLog(event, "UpdateWithdrawalDelay", log); err != nil {
2811					return err
2812				}
2813				event.Raw = log
2814
2815				select {
2816				case sink <- event:
2817				case err := <-sub.Err():
2818					return err
2819				case <-quit:
2820					return nil
2821				}
2822			case err := <-sub.Err():
2823				return err
2824			case <-quit:
2825				return nil
2826			}
2827		}
2828	}), nil
2829}
2830
2831// ParseUpdateWithdrawalDelay is a log parse operation binding the contract event 0x9db302c4547a21fb20a3a794e5f63ee87eb6e4afc3325ebdadba2d1fb4a90737.
2832//
2833// Solidity: event UpdateWithdrawalDelay(uint64 newWithdrawalDelay)
2834func (_Hermez *HermezFilterer) ParseUpdateWithdrawalDelay(log types.Log) (*HermezUpdateWithdrawalDelay, error) {
2835	event := new(HermezUpdateWithdrawalDelay)
2836	if err := _Hermez.contract.UnpackLog(event, "UpdateWithdrawalDelay", log); err != nil {
2837		return nil, err
2838	}
2839	event.Raw = log
2840	return event, nil
2841}
2842
2843// HermezWithdrawEventIterator is returned from FilterWithdrawEvent and is used to iterate over the raw logs and unpacked data for WithdrawEvent events raised by the Hermez contract.
2844type HermezWithdrawEventIterator struct {
2845	Event *HermezWithdrawEvent // Event containing the contract specifics and raw log
2846
2847	contract *bind.BoundContract // Generic contract to use for unpacking event data
2848	event    string              // Event name to use for unpacking event data
2849
2850	logs chan types.Log        // Log channel receiving the found contract events
2851	sub  ethereum.Subscription // Subscription for errors, completion and termination
2852	done bool                  // Whether the subscription completed delivering logs
2853	fail error                 // Occurred error to stop iteration
2854}
2855
2856// Next advances the iterator to the subsequent event, returning whether there
2857// are any more events found. In case of a retrieval or parsing error, false is
2858// returned and Error() can be queried for the exact failure.
2859func (it *HermezWithdrawEventIterator) Next() bool {
2860	// If the iterator failed, stop iterating
2861	if it.fail != nil {
2862		return false
2863	}
2864	// If the iterator completed, deliver directly whatever's available
2865	if it.done {
2866		select {
2867		case log := <-it.logs:
2868			it.Event = new(HermezWithdrawEvent)
2869			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2870				it.fail = err
2871				return false
2872			}
2873			it.Event.Raw = log
2874			return true
2875
2876		default:
2877			return false
2878		}
2879	}
2880	// Iterator still in progress, wait for either a data or an error event
2881	select {
2882	case log := <-it.logs:
2883		it.Event = new(HermezWithdrawEvent)
2884		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2885			it.fail = err
2886			return false
2887		}
2888		it.Event.Raw = log
2889		return true
2890
2891	case err := <-it.sub.Err():
2892		it.done = true
2893		it.fail = err
2894		return it.Next()
2895	}
2896}
2897
2898// Error returns any retrieval or parsing error occurred during filtering.
2899func (it *HermezWithdrawEventIterator) Error() error {
2900	return it.fail
2901}
2902
2903// Close terminates the iteration process, releasing any pending underlying
2904// resources.
2905func (it *HermezWithdrawEventIterator) Close() error {
2906	it.sub.Unsubscribe()
2907	return nil
2908}
2909
2910// HermezWithdrawEvent represents a WithdrawEvent event raised by the Hermez contract.
2911type HermezWithdrawEvent struct {
2912	Idx             *big.Int
2913	NumExitRoot     uint32
2914	InstantWithdraw bool
2915	Raw             types.Log // Blockchain specific contextual infos
2916}
2917
2918// FilterWithdrawEvent is a free log retrieval operation binding the contract event 0x69177d798b38e27bcc4e0338307e4f1490e12d1006729d0e6e9cc82a8732f415.
2919//
2920// Solidity: event WithdrawEvent(uint48 indexed idx, uint32 indexed numExitRoot, bool indexed instantWithdraw)
2921func (_Hermez *HermezFilterer) FilterWithdrawEvent(opts *bind.FilterOpts, idx []*big.Int, numExitRoot []uint32, instantWithdraw []bool) (*HermezWithdrawEventIterator, error) {
2922
2923	var idxRule []interface{}
2924	for _, idxItem := range idx {
2925		idxRule = append(idxRule, idxItem)
2926	}
2927	var numExitRootRule []interface{}
2928	for _, numExitRootItem := range numExitRoot {
2929		numExitRootRule = append(numExitRootRule, numExitRootItem)
2930	}
2931	var instantWithdrawRule []interface{}
2932	for _, instantWithdrawItem := range instantWithdraw {
2933		instantWithdrawRule = append(instantWithdrawRule, instantWithdrawItem)
2934	}
2935
2936	logs, sub, err := _Hermez.contract.FilterLogs(opts, "WithdrawEvent", idxRule, numExitRootRule, instantWithdrawRule)
2937	if err != nil {
2938		return nil, err
2939	}
2940	return &HermezWithdrawEventIterator{contract: _Hermez.contract, event: "WithdrawEvent", logs: logs, sub: sub}, nil
2941}
2942
2943// WatchWithdrawEvent is a free log subscription operation binding the contract event 0x69177d798b38e27bcc4e0338307e4f1490e12d1006729d0e6e9cc82a8732f415.
2944//
2945// Solidity: event WithdrawEvent(uint48 indexed idx, uint32 indexed numExitRoot, bool indexed instantWithdraw)
2946func (_Hermez *HermezFilterer) WatchWithdrawEvent(opts *bind.WatchOpts, sink chan<- *HermezWithdrawEvent, idx []*big.Int, numExitRoot []uint32, instantWithdraw []bool) (event.Subscription, error) {
2947
2948	var idxRule []interface{}
2949	for _, idxItem := range idx {
2950		idxRule = append(idxRule, idxItem)
2951	}
2952	var numExitRootRule []interface{}
2953	for _, numExitRootItem := range numExitRoot {
2954		numExitRootRule = append(numExitRootRule, numExitRootItem)
2955	}
2956	var instantWithdrawRule []interface{}
2957	for _, instantWithdrawItem := range instantWithdraw {
2958		instantWithdrawRule = append(instantWithdrawRule, instantWithdrawItem)
2959	}
2960
2961	logs, sub, err := _Hermez.contract.WatchLogs(opts, "WithdrawEvent", idxRule, numExitRootRule, instantWithdrawRule)
2962	if err != nil {
2963		return nil, err
2964	}
2965	return event.NewSubscription(func(quit <-chan struct{}) error {
2966		defer sub.Unsubscribe()
2967		for {
2968			select {
2969			case log := <-logs:
2970				// New log arrived, parse the event and forward to the user
2971				event := new(HermezWithdrawEvent)
2972				if err := _Hermez.contract.UnpackLog(event, "WithdrawEvent", log); err != nil {
2973					return err
2974				}
2975				event.Raw = log
2976
2977				select {
2978				case sink <- event:
2979				case err := <-sub.Err():
2980					return err
2981				case <-quit:
2982					return nil
2983				}
2984			case err := <-sub.Err():
2985				return err
2986			case <-quit:
2987				return nil
2988			}
2989		}
2990	}), nil
2991}
2992
2993// ParseWithdrawEvent is a log parse operation binding the contract event 0x69177d798b38e27bcc4e0338307e4f1490e12d1006729d0e6e9cc82a8732f415.
2994//
2995// Solidity: event WithdrawEvent(uint48 indexed idx, uint32 indexed numExitRoot, bool indexed instantWithdraw)
2996func (_Hermez *HermezFilterer) ParseWithdrawEvent(log types.Log) (*HermezWithdrawEvent, error) {
2997	event := new(HermezWithdrawEvent)
2998	if err := _Hermez.contract.UnpackLog(event, "WithdrawEvent", log); err != nil {
2999		return nil, err
3000	}
3001	event.Raw = log
3002	return event, nil
3003}