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