arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
hermez-node/eth/contracts/hermez/Hermez.go
eth/contracts/hermez/Hermez.goRaw
   1// Code generated - DO NOT EDIT.
   2// This file is a generated binding and any manual changes will be lost.
   3
   4package Hermez
   5
   6import (
   7	"math/big"
   8	"strings"
   9
  10	ethereum "github.com/ethereum/go-ethereum"
  11	"github.com/ethereum/go-ethereum/accounts/abi"
  12	"github.com/ethereum/go-ethereum/accounts/abi/bind"
  13	"github.com/ethereum/go-ethereum/common"
  14	"github.com/ethereum/go-ethereum/core/types"
  15	"github.com/ethereum/go-ethereum/event"
  16)
  17
  18// Reference imports to suppress errors if they are not otherwise used.
  19var (
  20	_ = big.NewInt
  21	_ = strings.NewReader
  22	_ = ethereum.NotFound
  23	_ = bind.Bind
  24	_ = common.Big1
  25	_ = types.BloomLookup
  26	_ = event.NewSubscription
  27)
  28
  29// HermezABI is the input ABI used to generate the binding from.
  30const HermezABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"tokenID\",\"type\":\"uint32\"}],\"name\":\"AddToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"batchNum\",\"type\":\"uint64\"}],\"name\":\"ForgeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"queueIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"position\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"l1UserTx\",\"type\":\"bytes\"}],\"name\":\"L1UserTxEvent\",\"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\":true,\"internalType\":\"uint48\",\"name\":\"idx\",\"type\":\"uint48\"},{\"indexed\":true,\"internalType\":\"uint48\",\"name\":\"numExitRoot\",\"type\":\"uint48\"},{\"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\"}],\"name\":\"addL1Transaction\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"exitNullifierMap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"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\":\"l2TxsData\",\"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\":\"contractAuctionInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hermezGovernanceDAOAddress\",\"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\":\"_hermezGovernanceDAOAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_safetyAddress\",\"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\":[],\"name\":\"lastForgedBatch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"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\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"mapL1TxQueue\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextL1FillingQueue\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextL1ToForgeQueue\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"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\":[],\"name\":\"safetyAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"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\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"operatorData\",\"type\":\"bytes\"}],\"name\":\"tokensReceived\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"uint48\",\"name\":\"numExitRoot\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"idx\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"instantWithdraw\",\"type\":\"bool\"}],\"name\":\"withdrawCircuit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawDelayerContract\",\"outputs\":[{\"internalType\":\"contractWithdrawalDelayerInterface\",\"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\":\"uint48\",\"name\":\"numExitRoot\",\"type\":\"uint48\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint48\",\"name\":\"idx\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"instantWithdraw\",\"type\":\"bool\"}],\"name\":\"withdrawMerkleProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawVerifier\",\"outputs\":[{\"internalType\":\"contractVerifierWithdrawInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawalDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]"
  31
  32// HermezBin is the compiled bytecode used for deploying new contracts.
  33var HermezBin = "0x608060405234801561001057600080fd5b5061586680620000216000396000f3fe6080604052600436106102235760003560e01c806386c6acc111610123578063bded9bb8116100ab578063dd46bf841161006f578063dd46bf8414610d79578063e56e27ae14610d8e578063e796fcf314610da3578063e9b5269c14610e4b578063ef4a5c4a14610e8c57610223565b8063bded9bb814610c86578063c63cc3a014610c9b578063cbd7b5fb14610d07578063d0f32e6714610d34578063d486645c14610d4957610223565b80639f34e9a3116100f25780639f34e9a314610bdd578063a327583814610bf2578063a7ab696114610c07578063abe3219c14610c1c578063ac171d2814610c3157610223565b806386c6acc114610b0057806395a09f2a14610b335780639b51fb0d14610b5e5780639ead722214610bb357610223565b806338330200116101b157806368e95e531161017557806368e95e53146108de5780636e7e13651461096f57806379a135e314610ac157806384ef9ed414610ad6578063864eb16414610aeb57610223565b806338330200146105bc578063432dd51f1461060e57806344e0b2ce146106fa5780634ee51c261461070f578063506d5463146108ab57610223565b80631a748c2d116101f85780631a748c2d146103c65780631b0a8223146104f65780632bd8362614610527578063314e5eda1461053c578063375110aa1461056657610223565b806223de29146102285780624aca6e1461031d5780630dd94b96146103625780630ee8e52b146103b1575b600080fd5b34801561023457600080fd5b5061031b600480360360c081101561024b57600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b81111561028d57600080fd5b82018360208201111561029f57600080fd5b803590602001918460018302840111600160201b831117156102c057600080fd5b919390929091602081019035600160201b8111156102dd57600080fd5b8201836020820111156102ef57600080fd5b803590602001918460018302840111600160201b8311171561031057600080fd5b509092509050610ebf565b005b34801561032957600080fd5b506103506004803603602081101561034057600080fd5b50356001600160a01b0316611241565b60408051918252519081900360200190f35b34801561036e57600080fd5b506103956004803603602081101561038557600080fd5b50356001600160a01b0316611253565b604080516001600160401b039092168252519081900360200190f35b3480156103bd57600080fd5b5061039561126e565b3480156103d257600080fd5b5061031b600480360360408110156103e957600080fd5b810190602081018135600160201b81111561040357600080fd5b82018360208201111561041557600080fd5b803590602001918460208302840111600160201b8311171561043657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561048557600080fd5b82018360208201111561049757600080fd5b803590602001918460208302840111600160201b831117156104b857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611284945050505050565b34801561050257600080fd5b5061050b6113b1565b604080516001600160a01b039092168252519081900360200190f35b34801561053357600080fd5b5061050b6113c0565b34801561054857600080fd5b5061031b6004803603602081101561055f57600080fd5b50356113cf565b34801561057257600080fd5b506105a86004803603604081101561058957600080fd5b5080356001600160a01b031690602001356001600160c01b0316611462565b604080519115158252519081900360200190f35b3480156105c857600080fd5b506105e6600480360360208110156105df57600080fd5b50356114fe565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b34801561061a57600080fd5b5061031b600480360360e081101561063157600080fd5b63ffffffff823516916001600160c01b036020820135169160408201359165ffffffffffff6060820135169181019060a081016080820135600160201b81111561067a57600080fd5b82018360208201111561068c57600080fd5b803590602001918460208302840111600160201b831117156106ad57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505065ffffffffffff83351693505050602001351515611538565b34801561070657600080fd5b5061039561173d565b34801561071b57600080fd5b5061031b60048036036101c081101561073357600080fd5b810190602081018135600160201b81111561074d57600080fd5b82018360208201111561075f57600080fd5b803590602001918460208302840111600160201b8311171561078057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156107cf57600080fd5b8201836020820111156107e157600080fd5b803590602001918460208302840111600160201b8311171561080257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550505081356001600160a01b0390811693506020830135811692604081013582169250606081013560ff169160808201359160a081013582169160c082013581169160e08101358216916101008201358116916101208101358216916101408201356001600160401b03169161016001351661174c565b3480156108b757600080fd5b50610350600480360360208110156108ce57600080fd5b50356001600160401b0316611a00565b3480156108ea57600080fd5b5061031b600480360361028081101561090257600080fd5b6040805160a0810190915290820191906102808201908260056000835b82821015610960576040805160808181019092529080840286019060049083908390808284376000920191909152505050815260019091019060200161091f565b50929550611a12945050505050565b34801561097b57600080fd5b5061031b600480360361020081101561099357600080fd5b65ffffffffffff8235169160208101359160408201359190810190608081016060820135600160201b8111156109c857600080fd5b8201836020820111156109da57600080fd5b803590602001918460018302840111600160201b831117156109fb57600080fd5b919390929091602081019035600160201b811115610a1857600080fd5b820183602082011115610a2a57600080fd5b803590602001918460018302840111600160201b83111715610a4b57600080fd5b919390929091602081019035600160201b811115610a6857600080fd5b820183602082011115610a7a57600080fd5b803590602001918460018302840111600160201b83111715610a9b57600080fd5b919350915060ff8135169060208101351515906040810190608081019061010001611b9b565b348015610acd57600080fd5b5061050b61204a565b348015610ae257600080fd5b50610395612059565b348015610af757600080fd5b5061050b612068565b348015610b0c57600080fd5b5061035060048036036020811015610b2357600080fd5b50356001600160401b0316612077565b348015610b3f57600080fd5b50610b48612089565b6040805160ff9092168252519081900360200190f35b348015610b6a57600080fd5b50610b8860048036036020811015610b8157600080fd5b503561208e565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b348015610bbf57600080fd5b5061050b60048036036020811015610bd657600080fd5b50356120c0565b348015610be957600080fd5b506103506120e7565b348015610bfe57600080fd5b50610b486120ed565b348015610c1357600080fd5b506103956120fd565b348015610c2857600080fd5b5061031b612113565b61031b600480360360c0811015610c4757600080fd5b5080359065ffffffffffff602082013581169161ffff604082013581169260608301359091169163ffffffff6080820135169160a0909101351661228b565b348015610c9257600080fd5b50610350612401565b348015610ca757600080fd5b5061031b60048036036101a0811015610cbf57600080fd5b506040810160c0820163ffffffff610100840135166001600160c01b036101208501351665ffffffffffff610140860135811690610160870135166101808701351515612407565b348015610d1357600080fd5b5061031b60048036036020811015610d2a57600080fd5b503560ff16612802565b348015610d4057600080fd5b506103956128ff565b348015610d5557600080fd5b50610d5e612915565b6040805165ffffffffffff9092168252519081900360200190f35b348015610d8557600080fd5b5061050b61292a565b348015610d9a57600080fd5b5061050b612939565b348015610daf57600080fd5b50610dd660048036036020811015610dc657600080fd5b50356001600160401b0316612948565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610e10578181015183820152602001610df8565b50505050905090810190601f168015610e3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e5757600080fd5b506105a860048036036040811015610e6e57600080fd5b5080356001600160401b0316906020013565ffffffffffff166129e3565b348015610e9857600080fd5b5061031b60048036036020811015610eaf57600080fd5b50356001600160401b0316612a03565b82610f11576040805162461bcd60e51b815260206004820152601860248201527f53656e642045524337373720776974686f757420646174610000000000000000604482015290519081900360640190fd5b600084846020811015610f2357600080fd5b50356001600160e01b0319169050631582e3a560e31b8114156111105760008080808080610f548a6004818e61564f565b60c0811015610f6257600080fd5b50605980548235985065ffffffffffff60208401358116985061ffff604085013581169850606085013516965063ffffffff608085013516955060a0909301359092169250339184908110610fb357fe5b6000918252602090912001546001600160a01b03161461101a576040805162461bcd60e51b815260206004820152601760248201527f746f6b656e20494420646f6573206e6f74206d61746368000000000000000000604482015290519081900360640190fd5b600061102533612ae9565b905061ffff8516156110f557600061103c86612c3a565b9050600160801b8110611096576040805162461bcd60e51b815260206004820181905260248201527f6465706f73697420616d6f756e74206c6172676572207468616e206c696d6974604482015290519081900360640190fd5b818e8161109f57fe5b0481146110f3576040805162461bcd60e51b815260206004820152601a60248201527f6c6f6164416d6f756e7420213d20746f6b656e20616d6f756e74000000000000604482015290519081900360640190fd5b505b6111048f888888888888612c7e565b50505050505050611236565b6001600160e01b0319811663d48bfca760e01b14156111f457605f546001600160a01b0316331461117a576040805162461bcd60e51b815260206004820152600f60248201526e36bab9ba103830bc9034b7102422ad60891b604482015290519081900360640190fd5b605b5486146111c1576040805162461bcd60e51b815260206004820152600e60248201526d3737ba1032b737bab3b4102422ad60911b604482015290519081900360640190fd5b6111ef6111d1856004818961564f565b60208110156111df57600080fd5b50356001600160a01b0316612edd565b611236565b6040805162461bcd60e51b81526020600482015260126024820152714e6f742076616c69642063616c6c6461746160701b604482015290519081900360640190fd5b505050505050505050565b605a6020526000908152604090205481565b6052602052600090815260409020546001600160401b031681565b605e54600160801b90046001600160401b031681565b604f546001600160a01b031633146112dc576040805162461bcd60e51b81526020600482015260166024820152754f6e6c7920676f766572616e6365206164647265737360501b604482015290519081900360640190fd5b8051825114611332576040805162461bcd60e51b815260206004820152601760248201527f646966666572656e74206172726179206c656e67746820000000000000000000604482015290519081900360640190fd5b60005b82518110156113ac5781818151811061134a57fe5b60200260200101516052600085848151811061136257fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805467ffffffffffffffff19166001600160401b0392909216919091179055600101611335565b505050565b6051546001600160a01b031681565b605c546001600160a01b031681565b604f546001600160a01b03163314611427576040805162461bcd60e51b81526020600482015260166024820152754f6e6c7920676f766572616e6365206164647265737360501b604482015290519081900360640190fd5b605b8190556040805182815290517fd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c19181900360200190a150565b60008061146f8484613081565b9050806114805760019150506114f8565b600061148b82613357565b905060006036826005811061149c57fe5b6005020190506000816002015411156114bb57600193505050506114f8565b60006114d48260010154436133cd90919063ffffffff16565b905081600301548110156114ef5760009450505050506114f8565b60019450505050505b92915050565b6053818154811061150b57fe5b60009182526020909120600390910201805460018201546002909201546001600160a01b03909116925083565b80156115aa5761156f60598863ffffffff168154811061155457fe5b6000918252602090912001546001600160a01b031687613416565b6115aa5760405162461bcd60e51b815260040180806020018281038252602d815260200180615713602d913960400191505060405180910390fd5b60606115c3886000896001600160c01b03168933613560565b905060006115d08261366d565b65ffffffffffff80881660009081526057602090815260408083205460588352818420948a168452939091529020549192509060ff1615611658576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720686173206265656e20616c726561647920646f6e650000604482015290519081900360640190fd5b61166c81878765ffffffffffff1685613722565b15156001146116b6576040805162461bcd60e51b81526020600482015260116024820152701cdb5d081c1c9bdbd9881a5b9d985b1a59607a1b604482015290519081900360640190fd5b65ffffffffffff8088166000908152605860209081526040808320938916835292905220805460ff191660011790556116f0898b866137a9565b8315158765ffffffffffff168665ffffffffffff167f92dd99230eaf5e3f1238fbbd0d72b34e8c2ad759886075bfc9f426ebeeea34f060405160405180910390a450505050505050505050565b6055546001600160401b031681565b600054610100900460ff16806117655750611765613ca9565b80611773575060005460ff16155b6117ae5760405162461bcd60e51b815260040180806020018281038252602e815260200180615795602e913960400191505060405180910390fd5b600054610100900460ff161580156117d9576000805460ff1961ff0019909116610100171660011790555b6117e38f8f613caf565b8c605460006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b605c60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a605f60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555089605e60186101000a81548160ff021916908360ff16021790555088605b8190555060ff605460146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506001605e60106101000a8154816001600160401b0302191690836001600160401b03160217905550605960009080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b03160217905550731820a4b7618bde71dce8cdc73aab6c95905fad246001600160a01b03166329965a1d307fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b306040518463ffffffff1660e01b815260040180846001600160a01b03168152602001838152602001826001600160a01b031681526020019350505050600060405180830381600087803b1580156119ae57600080fd5b505af11580156119c2573d6000803e3d6000fd5b505050506119d1888888613d7b565b6119dd85858585613e5c565b80156119ef576000805461ff00191690555b505050505050505050505050505050565b60576020526000908152604090205481565b604f546001600160a01b03163314611a6a576040805162461bcd60e51b81526020600482015260166024820152754f6e6c7920676f766572616e6365206164647265737360501b604482015290519081900360640190fd5b60005b6005811015611b97576000828260058110611a8457fe5b60200201515190506000838360058110611a9a57fe5b60200201516001602002015190506000848460058110611ab657fe5b60200201516040015190506000858560058110611acf57fe5b602002015160600151905080831115611b195760405162461bcd60e51b815260040180806020018281038252602c8152602001806156a0602c913960400191505060405180910390fd5b6040518060a001604052808581526020014381526020018481526020018381526020018281525060368660058110611b4d57fe5b600502016000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050505050508080600101915050611a6d565b5050565b333214611bd95760405162461bcd60e51b81526004018080602001828103825260348152602001806157406034913960400191505060405180910390fd5b605c546040805163041d8fb560e51b815233600482015243602482015290516001600160a01b03909216916383b1f6a091604480820192602092909190829003018186803b158015611c2a57600080fd5b505afa158015611c3e573d6000803e3d6000fd5b505050506040513d6020811015611c5457600080fd5b50511515600114611cac576040805162461bcd60e51b815260206004820152601860248201527f61756374696f6e2064656e6965642074686520666f7267650000000000000000604482015290519081900360640190fd5b83611d1357605e54600160c01b810460ff166001600160401b0391821601164310611d13576040805162461bcd60e51b8152602060048201526012602482015271130c530c90985d18da081c995c5d5a5c995960721b604482015290519081900360640190fd5b6000611d228f8f8f888a613f5e565b905060538660ff1681548110611d3457fe5b60009182526020918290206003909102015460408051928301815283835280516343753b4d60e01b81526001600160a01b03909216926343753b4d9288928892889290916004909101908190869080828437600083820152601f01601f1916909101905084608080828437600083820152601f01601f1916909101905083604080828437600081840152601f19601f82011690508083019250505082600160200280838360005b83811015611df3578181015183820152602001611ddb565b5050505090500194505050505060206040518083038186803b158015611e1857600080fd5b505afa158015611e2c573d6000803e3d6000fd5b505050506040513d6020811015611e4257600080fd5b5051611e8c576040805162461bcd60e51b815260206004820152601460248201527334b73b30b634b2103937b6363ab810383937b7b360611b604482015290519081900360640190fd5b6055600081819054906101000a90046001600160401b03168092919060010191906101000a8154816001600160401b0302191690836001600160401b03160217905550508e605460146101000a81548165ffffffffffff021916908365ffffffffffff1602179055508d60566000605560009054906101000a90046001600160401b03166001600160401b03166001600160401b03168152602001908152602001600020819055508c60576000605560009054906101000a90046001600160401b03166001600160401b03166001600160401b03168152602001908152602001600020819055508415611f9d57605e805467ffffffffffffffff1916436001600160401b0316179055611f9d614228565b605c54604080516309cb4a2f60e31b815233600482015290516001600160a01b0390921691634e5a51789160248082019260009290919082900301818387803b158015611fe957600080fd5b505af1158015611ffd573d6000803e3d6000fd5b50506055546040516001600160401b0390911692507fd7ab70a9e6ed0d6985e74c5cb553d300a13a2217d58266922b275b72fe7869829150600090a2505050505050505050505050505050565b605f546001600160a01b031681565b605e546001600160401b031681565b6054546001600160a01b031681565b60566020526000908152604090205481565b60f081565b6036816005811061209b57fe5b6005020180546001820154600283015460038401546004909401549294509092909185565b605981815481106120cd57fe5b6000918252602090912001546001600160a01b0316905081565b60595490565b605e54600160c01b900460ff1681565b605054600160a01b90046001600160401b031681565b6050546001600160a01b03163314806121365750604f546001600160a01b031633145b612187576040805162461bcd60e51b815260206004820152601a60248201527f4f6e6c79207361666520626f74206f7220676f766572616e6365000000000000604482015290519081900360640190fd5b60005b6005811015612212576040518060a00160405280600081526020016000815260200160008152602001600081526020016000815250603682600581106121cc57fe5b600502016000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050808060010191505061218a565b5060515460505460408051630e670af560e01b8152600160a01b9092046001600160401b03166004830152516001600160a01b0390921691630e670af59160248082019260009290919082900301818387803b15801561227157600080fd5b505af1158015612285573d6000803e3d6000fd5b50505050565b60595463ffffffff8316106122e7576040805162461bcd60e51b815260206004820152601d60248201527f746f6b656e20686173206e6f74206265656e2072656769737465726564000000604482015290519081900360640190fd5b60006122f285612c3a565b9050600160801b811061234c576040805162461bcd60e51b815260206004820181905260248201527f6465706f73697420616d6f756e74206c6172676572207468616e206c696d6974604482015290519081900360640190fd5b80156123e95763ffffffff83166123b6573481146123b1576040805162461bcd60e51b815260206004820152601760248201527f6c6f6164416d6f756e7420213d206d73672e76616c7565000000000000000000604482015290519081900360640190fd5b6123e9565b6123e960598463ffffffff16815481106123cc57fe5b6000918252602090912001546001600160a01b03163330846142d6565b6123f833888888888888612c7e565b50505050505050565b605b5481565b80156124795761243e60598663ffffffff168154811061242357fe5b6000918252602090912001546001600160a01b031685613416565b6124795760405162461bcd60e51b815260040180806020018281038252602d815260200180615713602d913960400191505060405180910390fd5b65ffffffffffff80841660009081526058602090815260408083209386168352929052205460ff16156124f3576040805162461bcd60e51b815260206004820152601e60248201527f776974686472617720686173206265656e20616c726561647920646f6e650000604482015290519081900360640190fd5b65ffffffffffff831660009081526057602090815260408083205481518084018290523360601b818401526001600160e01b031960e08b901b16605482015267ffffffffffffffff1989841b1660588201526001600160d01b031960d088901b1660708201528251605681830301815260769091019283905280519194937f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000019360029390918291908401908083835b602083106125c15780518252601f1990920191602091820191016125a2565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa158015612600573d6000803e3d6000fd5b5050506040513d602081101561261557600080fd5b50518161261e57fe5b605454604080516020810182529390920680845282516343753b4d60e01b81529094506001600160a01b03909116926343753b4d928e928e928e929091600401908190869080828437600083820152601f01601f1916909101905084608080828437600083820152601f01601f1916909101905083604080828437600081840152601f19601f82011690508083019250505082600160200280838360005b838110156126d45781810151838201526020016126bc565b5050505090500194505050505060206040518083038186803b1580156126f957600080fd5b505afa15801561270d573d6000803e3d6000fd5b505050506040513d602081101561272357600080fd5b5051151560011461277b576040805162461bcd60e51b815260206004820152601b60248201527f7a6b2d736e61726b2070726f6f66206973206e6f742076616c69640000000000604482015290519081900360640190fd5b65ffffffffffff8086166000908152605860209081526040808320938816835292905220805460ff191660011790556127b58688856137a9565b8215158565ffffffffffff168565ffffffffffff167f92dd99230eaf5e3f1238fbbd0d72b34e8c2ad759886075bfc9f426ebeeea34f060405160405180910390a450505050505050505050565b604f546001600160a01b0316331461285a576040805162461bcd60e51b81526020600482015260166024820152754f6e6c7920676f766572616e6365206164647265737360501b604482015290519081900360640190fd5b60f060ff821611156128ab576040805162461bcd60e51b8152602060048201526015602482015274199bdc99d9481d1a5b595bdd5d08195e18d9591959605a1b604482015290519081900360640190fd5b605e805460ff8316600160c01b810260ff60c01b199092169190911790915560408051918252517fff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac9744319181900360200190a150565b605e54600160401b90046001600160401b031681565b605454600160a01b900465ffffffffffff1681565b604f546001600160a01b031681565b6050546001600160a01b031681565b605d6020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156129db5780601f106129b0576101008083540402835291602001916129db565b820191906000526020600020905b8154815290600101906020018083116129be57829003601f168201915b505050505081565b605860209081526000928352604080842090915290825290205460ff1681565b604f546001600160a01b03163314612a5b576040805162461bcd60e51b81526020600482015260166024820152754f6e6c7920676f766572616e6365206164647265737360501b604482015290519081900360640190fd5b62127500816001600160401b03161115612abc576040805162461bcd60e51b815260206004820152601c60248201527f45786365656473204d41585f5749544844524157414c5f44454c415900000000604482015290519081900360640190fd5b605080546001600160401b03909216600160a01b0267ffffffffffffffff60a01b19909216919091179055565b604080518082018252600d81526c6772616e756c6172697479282960981b60209182015281516004815260248101835290810180516001600160e01b031663556f0dc760e01b1781529151815160009384936060936001600160a01b03881693919290918291908083835b60208310612b735780518252601f199092019160209182019101612b54565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114612bd3576040519150601f19603f3d011682016040523d82523d6000602084013e612bd8565b606091505b509150915081612c195760405162461bcd60e51b81526004018080602001828103825260228152602001806156f16022913960400191505060405180910390fd5b808060200190516020811015612c2e57600080fd5b5051925050505b919050565b60006103ff8216601f600b84901c166001600a85811c8216919083900a908185029083148015612c6957508315155b15612c745760028204015b9695505050505050565b6000612c8984612c3a565b9050600160c01b8110612ce3576040805162461bcd60e51b815260206004820152601860248201527f616d6f756e74206c6172676572207468616e206c696d69740000000000000000604482015290519081900360640190fd5b65ffffffffffff8216612d48578015612d43576040805162461bcd60e51b815260206004820152601e60248201527f616d6f756e74206d757374206265203020696620746f49647820697320300000604482015290519081900360640190fd5b612dc9565b60ff65ffffffffffff8316118015612d75575060545465ffffffffffff600160a01b909104811690831611155b80612d88575065ffffffffffff82166001145b612dc9576040805162461bcd60e51b815260206004820152600d60248201526c0d2dcecc2d8d2c840e8de92c8f609b1b604482015290519081900360640190fd5b65ffffffffffff8616612e175786612e125760405162461bcd60e51b81526004018080602001828103825260288152602001806156786028913960400191505060405180910390fd5b612ec4565b60ff65ffffffffffff8716118015612e44575060545465ffffffffffff600160a01b909104811690871611155b612e87576040805162461bcd60e51b815260206004820152600f60248201526e0d2dcecc2d8d2c840cce4deda92c8f608b1b604482015290519081900360640190fd5b8615612ec45760405162461bcd60e51b815260040180806020018281038252602c8152602001806157c3602c913960400191505060405180910390fd5b612ed388888888888888614471565b5050505050505050565b605954600160201b8110612f2d576040805162461bcd60e51b81526020600482015260126024820152711d1bdad95b881b1a5cdd081a5cc8199d5b1b60721b604482015290519081900360640190fd5b6001600160a01b038216612f7d576040805162461bcd60e51b8152602060048201526012602482015271063616e2774206265206164647265737320360741b604482015290519081900360640190fd5b6001600160a01b0382166000908152605a602052604090205415612fe8576040805162461bcd60e51b815260206004820152601b60248201527f746f6b656e206164647265737320616c72656164792061646465640000000000604482015290519081900360640190fd5b60598054600181019091557fd73956b9e00d8f8bc5e44f7184df1387cdd652e7726b8ccda3db4859e02f31bf0180546001600160a01b0319166001600160a01b0384169081179091556000818152605a6020908152604091829020849055815163ffffffff8516815291517fcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde9281900390910190a25050565b6001600160a01b0382166000908152605260205260408120546001600160401b03166130af575060006114f8565b6001600160a01b038316600090815260526020526040812054655af3107a4000906001600160401b03166001600160c01b0385160204905060008060006001600160a01b0316731820a4b7618bde71dce8cdc73aab6c95905fad246001600160a01b031663aabbb8ca887fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561317e57600080fd5b505afa158015613192573d6000803e3d6000fd5b505050506040513d60208110156131a857600080fd5b50516001600160a01b031614156131c05760006131c3565b60015b905080156131d457601291506132e5565b604080518082018252600a815269646563696d616c73282960b01b60209182015281516004815260248101835290810180516001600160e01b031663313ce56760e01b178152915181516000936060936001600160a01b038c16939092909182918083835b602083106132585780518252601f199092019160209182019101613239565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146132b8576040519150601f19603f3d011682016040523d82523d6000602084013e6132bd565b606091505b509150915081156132e2578080602001905160208110156132dd57600080fd5b505193505b50505b604d8260ff161061333d576040805162461bcd60e51b815260206004820152601a60248201527f746f6b656e55534420646563696d616c73206f766572666c6f77000000000000604482015290519081900360640190fd5b8160ff16600a0a838161334c57fe5b049695505050505050565b6000805b600581101561338b576036816005811061337157fe5b60050201548311613383579050612c35565b60010161335b565b506040805162461bcd60e51b8152602060048201526011602482015270195e18d95959081b585e08185b5bdd5b9d607a1b604482015290519081900360640190fd5b600061340f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061464b565b9392505050565b6000806134238484613081565b9050806134345760019150506114f8565b600061343f82613357565b905060006036826005811061345057fe5b600502019050600061346f8260010154436133cd90919063ffffffff16565b905081600301548110156134c3576002820154156134b65781600401548260020154141561349e574360018301555b50600201805460001901905550600191506114f89050565b60009450505050506114f8565b60006134dc8360030154836146e290919063ffffffff16565b905082600401546134fa82856002015461472490919063ffffffff16565b1061351f57600483015461350f9060016133cd565b6002840155436001840155613552565b6002830180548201600019019055600383015461354c9061354190839061477e565b600185015490614724565b60018401555b6001955050505050506114f8565b60408051600480825260a08201909252606091829190602082016080803683370190505090508663ffffffff168160008151811061359a57fe5b60200260200101818152505060208665ffffffffffff16901b65ffffffffffff16816000815181106135c857fe5b602002602001018181511791508181525050604860ff85901c901b816000815181106135f057fe5b602002602001018181511791508181525050848160018151811061361057fe5b602090810291909101015280516001600160ff1b038516908290600290811061363557fe5b602002602001018181525050826001600160a01b03168160038151811061365857fe5b60209081029190910101529695505050505050565b60355460405163311083ed60e21b81526020600482018181528451602484015284516000946001600160a01b03169363c4420fb49387939283926044019180860191028083838b5b838110156136cd5781810151838201526020016136b5565b505050509050019250505060206040518083038186803b1580156136f057600080fd5b505afa158015613704573d6000803e3d6000fd5b505050506040513d602081101561371a57600080fd5b505192915050565b60008061372f84846147d7565b8551909150600090600019015b6000811261379c5786818151811061375057fe5b6020026020010151915060008187600082121561376957fe5b6001911c81161490508061378657613781848461485d565b613790565b613790838561485d565b9350506000190161373c565b5050909414949350505050565b80156137ef576137ea60598363ffffffff16815481106137c557fe5b6000918252602090912001546001600160a01b0316336001600160c01b0386166148c0565b6113ac565b63ffffffff821661387b576051546040805163cfc0b64160e01b81523360048201526000602482018190526001600160c01b0387166044830181905292516001600160a01b039094169363cfc0b6419392606480820193929182900301818588803b15801561385d57600080fd5b505af1158015613871573d6000803e3d6000fd5b50505050506113ac565b600060598363ffffffff168154811061389057fe5b60009182526020808320909101546040805163555ddc6560e11b81526001600160a01b03909216600483018190527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce2177054602484015290519094508392731820a4b7618bde71dce8cdc73aab6c95905fad249263aabbb8ca9260448083019392829003018186803b15801561392257600080fd5b505afa158015613936573d6000803e3d6000fd5b505050506040513d602081101561394c57600080fd5b50516001600160a01b03161415613964576000613967565b60015b90508015613c0a57600061397a83612ae9565b604080518082018252601b81527f73656e6428616464726573732c75696e743235362c6279746573290000000000602091820152605154825180840184528281527f6465706f73697428616464726573732c616464726573732c75696e7431393229908301528251336024808301919091526001600160a01b03808a1660448085018290526001600160c01b038f168902606480870182905289518088038201815260849788018b5298890180516001600160e01b031663cfc0b64160e01b1781529951979094169487018581529187018190526060938701938452875195870195909552865198995060009891977f9bd9bbc68c9d2d57236e56ab2cc196bd1614295e6e32ba6eba9004e8c27143b697949691939260a4909201918083838d5b83811015613ab3578181015183820152602001613a9b565b50505050905090810190601f168015613ae05780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990991698909817885251815191979096508695509350915081905083835b60208310613b465780518252601f199092019160209182019101613b27565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613ba8576040519150601f19603f3d011682016040523d82523d6000602084013e613bad565b606091505b5050905080613c03576040805162461bcd60e51b815260206004820152601f60248201527f7769746864726177616c2064656c61796572206465706f736974206661696c00604482015290519081900360640190fd5b5050613ca2565b605154613c2b9083906001600160a01b03166001600160c01b038816614e77565b6051546040805163cfc0b64160e01b81523360048201526001600160a01b0385811660248301526001600160c01b03891660448301529151919092169163cfc0b64191606480830192600092919082900301818387803b158015613c8e57600080fd5b505af1158015611236573d6000803e3d6000fd5b5050505050565b303b1590565b60005b82518110156113ac5760536040518060600160405280858481518110613cd457fe5b60200260200101516001600160a01b03168152602001600880868681518110613cf957fe5b6020026020010151901b901c815260200160f8858581518110613d1857fe5b60209081029190910181015190911c909152825460018082018555600094855293829020835160039092020180546001600160a01b0319166001600160a01b03909216919091178155908201518184015560409091015160029091015501613cb2565b600054610100900460ff1680613d945750613d94613ca9565b80613da2575060005460ff16155b613ddd5760405162461bcd60e51b815260040180806020018281038252602e815260200180615795602e913960400191505060405180910390fd5b600054610100900460ff16158015613e08576000805460ff1961ff0019909116610100171660011790555b603380546001600160a01b038087166001600160a01b0319928316179092556034805486841690831617905560358054928516929091169190911790558015612285576000805461ff001916905550505050565b600054610100900460ff1680613e755750613e75613ca9565b80613e83575060005460ff16155b613ebe5760405162461bcd60e51b815260040180806020018281038252602e815260200180615795602e913960400191505060405180910390fd5b600054610100900460ff16158015613ee9576000805460ff1961ff0019909116610100171660011790555b604f80546001600160a01b03199081166001600160a01b03888116919091179092556050805482168784161767ffffffffffffffff60a01b1916600160a01b6001600160401b03881602179055605180549091169184169190911790558015613ca2576000805461ff00191690555050505050565b6055546001600160401b031660009081526056602052604081205460545460538054600160a01b90920465ffffffffffff16918491829182919060ff8916908110613fa557fe5b906000526020600020906003020160010154600860538960ff1681548110613fc957fe5b90600052602060002090600302016002015481613fe257fe5b046002026003010290506000600860538960ff168154811061400057fe5b9060005260206000209060030201600201548161401957fe5b604080519290910481028481018084016148ae0190925261486e909101825260d087811b60208401528e901b6026830152602c8201889052604c82018d9052606c82018c90529150608c810161406f818c614ffb565b6148000161407d6004615249565b9096509450838511156140cd576040805162461bcd60e51b81526020600482015260136024820152726c322074782064617461206f766572666c6f7760681b604482015290519081900360640190fd5b8486823784016140df8186860361525d565b848403016140ed6005615249565b9096509450828514614146576040805162461bcd60e51b815260206004820181905260248201527f666565496478436f6f7264696e61746f72206c656e67746820696e76616c6964604482015290519081900360640190fd5b8486823784016141588186850361525d565b848303810190504660f01b81527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016002836040518082805190602001908083835b602083106141b85780518252601f199092019160209182019101614199565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa1580156141f7573d6000803e3d6000fd5b5050506040513d602081101561420c57600080fd5b50518161421557fe5b069e9d5050505050505050505050505050565b605e54600160401b90046001600160401b03166000908152605d60205260408120614252916155ef565b605e805460016001600160401b03600160401b808404821692909201811682026fffffffffffffffff000000000000000019909316929092179283905582048116600160801b9092041614156142d457605e805460016001600160401b03600160801b808404821692909201160267ffffffffffffffff60801b199091161790555b565b60006060856001600160a01b03166040518060600160405280602581526020016156cc602591398051602091820120604080516001600160a01b03808b166024830152891660448201526064808201899052825180830390910181526084909101825292830180516001600160e01b03166001600160e01b0319909316929092178252518251909182918083835b602083106143835780518252601f199092019160209182019101614364565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146143e5576040519150601f19603f3d011682016040523d82523d6000602084013e6143ea565b606091505b5091509150818015614418575080511580614418575080806020019051602081101561441557600080fd5b50515b614469576040805162461bcd60e51b815260206004820152601960248201527f73616665207472616e736665722066726f6d206661696c656400000000000000604482015290519081900360640190fd5b505050505050565b604080516bffffffffffffffffffffffff1960608a901b16602080830191909152603482018990526001600160d01b031960d089811b821660548501526001600160f01b031960f08a811b8216605a87015289901b16605c8501526001600160e01b031960e088901b16605e808601919091529086901b90911660628401528351604881850301815260689093018452546001600160401b03600160801b909104166000908152605d9091529190912061452b9082615276565b605e54600160801b90046001600160401b03166000818152605d602090815260408083205481518381528651818501528651604860026101006001861615026000190190941693909304929092049560ff87169590947f7f40be4e420c002c02fa9cad961f6a7620769d32d272f3f8c15e3ff59de9310e9489948493918401928601918190849084905b838110156145cd5781810151838201526020016145b5565b50505050905090810190601f1680156145fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390a36080811061123657605e805460016001600160401b03600160801b808404821692909201160267ffffffffffffffff60801b19909116179055505050505050505050565b600081848411156146da5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561469f578181015183820152602001614687565b50505050905090810190601f1680156146cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600061340f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506153c0565b60008282018381101561340f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261478d575060006114f8565b8282028284828161479a57fe5b041461340f5760405162461bcd60e51b81526004018080602001828103825260218152602001806157746021913960400191505060405180910390fd5b6040805160038082526080820190925260009160609190602082018380368337019050509050838160008151811061480b57fe5b602002602001018181525050828160018151811061482557fe5b60200260200101818152505060018160028151811061484057fe5b60200260200101818152505061485581615425565b949350505050565b6040805160028082526060808301845260009390929190602083019080368337019050509050838160008151811061489157fe5b60200260200101818152505082816001815181106148ab57fe5b60200260200101818152505061485581615482565b6001600160a01b0383166149ca5760408051600080825260208201909252339083906040518082805190602001908083835b602083106149115780518252601f1990920191602091820191016148f2565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614973576040519150601f19603f3d011682016040523d82523d6000602084013e614978565b606091505b50509050806149c4576040805162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b506113ac565b6040805163555ddc6560e11b81526001600160a01b03851660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce2177054602482015290516000918291731820a4b7618bde71dce8cdc73aab6c95905fad249163aabbb8ca916044808301926020929190829003018186803b158015614a4f57600080fd5b505afa158015614a63573d6000803e3d6000fd5b505050506040513d6020811015614a7957600080fd5b50516001600160a01b03161415614a91576000614a94565b60015b90508015614cec576000614aa785612ae9565b604080518082018252601b81527f73656e6428616464726573732c75696e743235362c6279746573290000000000602091820152815160008082529181019092529192506060906001600160a01b038816907f9bd9bbc68c9d2d57236e56ab2cc196bd1614295e6e32ba6eba9004e8c27143b69088908887029060405160240180846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614b76578181015183820152602001614b5e565b50505050905090810190601f168015614ba35780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990991698909817885251815191979096508695509350915081905083835b60208310614c095780518252601f199092019160209182019101614bea565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614c6b576040519150601f19603f3d011682016040523d82523d6000602084013e614c70565b606091505b5091509150818015614c9e575080511580614c9e5750808060200190516020811015614c9b57600080fd5b50515b614ce4576040805162461bcd60e51b8152602060048201526012602482015271115490cdcdcdc81cd95b990819985a5b195960721b604482015290519081900360640190fd5b505050612285565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0386811660248301526044808301879052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b178152925181516000946060948a169392918291908083835b60208310614d995780518252601f199092019160209182019101614d7a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614dfb576040519150601f19603f3d011682016040523d82523d6000602084013e614e00565b606091505b5091509150818015614e2e575080511580614e2e5750808060200190516020811015614e2b57600080fd5b50515b614469576040805162461bcd60e51b8152602060048201526015602482015274115490cc8c081d1c985b9cd9995c8819985a5b1959605a1b604482015290519081900360640190fd5b604080518082018252601881527f617070726f766528616464726573732c75696e7432353629000000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663095ea7b360e01b1781529251815160009460609489169392918291908083835b60208310614f245780518252601f199092019160209182019101614f05565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614f86576040519150601f19603f3d011682016040523d82523d6000602084013e614f8b565b606091505b5091509150818015614fb9575080511580614fb95750808060200190516020811015614fb657600080fd5b50515b613ca2576040805162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b604482015290519081900360640190fd5b6000806150086003615249565b9092509050606581046000606085156150db57605e54600160401b90046001600160401b03166000908152605d60209081526040918290208054835160026101006001841615026000190190921691909104601f81018490048402820184019094528381529290918301828280156150c15780601f10615096576101008083540402835291602001916150c1565b820191906000526020600020905b8154815290600101906020018083116150a457829003601f168201915b5050505050905060488151816150d357fe5b0491506150e0565b600091505b610100838301111561512a576040805162461bcd60e51b815260206004820152600e60248201526d4c31205458206f766572666c6f7760901b604482015290519081900360640190fd5b8115615158576048820287019660208201905b8881101561515557815181526020918201910161513d565b50505b60005b83811015615235576059546065870196803560001a916001820135916021810135916041820135916061013560e01c9081106151de576040805162461bcd60e51b815260206004820152601d60248201527f746f6b656e20686173206e6f74206265656e2072656769737465726564000000604482015290519081900360640190fd5b6001600160a01b0360ff8616156151fe576151fb838587896154df565b90505b60601b8d5260148d0191909152600060348d0181905260e09190911b603e8d015260428c015250506048909801975060010161515b565b506123f8876048858561010003030261525d565b602002600490810135602481019291013590565b808201915b828110156113ac5760008152602001615262565b8154600260018083161561010002038216048251808201602081106020841001600281146153205760018114615345578660005260208404602060002001600160028402018855602085068060200390508088018589016001836101000a0392508282511684540184556001840193506020820191505b8082101561530a57815184556001840193506020820191506152ed565b815191036101000a9081900402909155506123f8565b60028302826020036101000a846020036101000a6020890151040201850187556123f8565b8660005260208404602060002001600160028402018855846020038088018589016001836101000a0392508282511660ff198a160184556020820191506001840193505b808210156153a65781518455600184019350602082019150615389565b815191036101000a90819004029091555050505050505050565b6000818361540f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561469f578181015183820152602001614687565b50600083858161541b57fe5b0495945050505050565b60345460405163311083ed60e21b81526020600482018181528451602484015284516000946001600160a01b03169363c4420fb49387939283926044019185810191028083838b83156136cd5781810151838201526020016136b5565b60335460405163311083ed60e21b81526020600482018181528451602484015284516000946001600160a01b03169363c4420fb49387939283926044019185810191028083838b83156136cd5781810151838201526020016136b5565b6000808560405160200180807f19457468657265756d205369676e6564204d6573736167653a0a393800000000815250601c01806157ef60429139604201828152602001915050604051602081830303815290604052805190602001209050600060018285888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561559a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612c74576040805162461bcd60e51b815260206004820152600a6024820152690657265636f7665722d360b41b604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f106156155750615633565b601f0160209004906000526020600020908101906156339190615636565b50565b5b8082111561564b5760008155600101615637565b5090565b6000808585111561565e578182fd5b8386111561566a578182fd5b505082019391909203915056fe63616e277420637265617465206163636f756e74207769746820626162795075624b6579203d20307769746864726177616c73206d757374206265206c657373207468616e206d61785769746864726177616c737472616e7366657246726f6d28616464726573732c616464726573732c75696e743235362945524337373720646f6e277420696d706c656d656e74206772616e756c6172697479696e7374616e74207769746864726177616c732077617374656420666f722074686973205553442072616e6765666f72676542617463682063616e27742062652063616c6c6564206173206120696e7465726e616c207472616e73616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564626162795075624b6579206d757374206265203020696620757365206578697374696e67206163636f756e744920617574686f72697a65207468697320626162796a75626a7562206b657920666f72206865726d657a20726f6c6c7570206163636f756e74206372656174696f6ea264697066735822122077a11aa776267abae219dc837550f3496a4d51cfa531362d18028a33eb9415d364736f6c634300060c0033"
  34
  35// DeployHermez deploys a new Ethereum contract, binding an instance of Hermez to it.
  36func DeployHermez(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Hermez, error) {
  37	parsed, err := abi.JSON(strings.NewReader(HermezABI))
  38	if err != nil {
  39		return common.Address{}, nil, nil, err
  40	}
  41
  42	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(HermezBin), backend)
  43	if err != nil {
  44		return common.Address{}, nil, nil, err
  45	}
  46	return address, tx, &Hermez{HermezCaller: HermezCaller{contract: contract}, HermezTransactor: HermezTransactor{contract: contract}, HermezFilterer: HermezFilterer{contract: contract}}, nil
  47}
  48
  49// Hermez is an auto generated Go binding around an Ethereum contract.
  50type Hermez struct {
  51	HermezCaller     // Read-only binding to the contract
  52	HermezTransactor // Write-only binding to the contract
  53	HermezFilterer   // Log filterer for contract events
  54}
  55
  56// HermezCaller is an auto generated read-only Go binding around an Ethereum contract.
  57type HermezCaller struct {
  58	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  59}
  60
  61// HermezTransactor is an auto generated write-only Go binding around an Ethereum contract.
  62type HermezTransactor struct {
  63	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  64}
  65
  66// HermezFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
  67type HermezFilterer struct {
  68	contract *bind.BoundContract // Generic contract wrapper for the low level calls
  69}
  70
  71// HermezSession is an auto generated Go binding around an Ethereum contract,
  72// with pre-set call and transact options.
  73type HermezSession struct {
  74	Contract     *Hermez           // Generic contract binding to set the session for
  75	CallOpts     bind.CallOpts     // Call options to use throughout this session
  76	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  77}
  78
  79// HermezCallerSession is an auto generated read-only Go binding around an Ethereum contract,
  80// with pre-set call options.
  81type HermezCallerSession struct {
  82	Contract *HermezCaller // Generic contract caller binding to set the session for
  83	CallOpts bind.CallOpts // Call options to use throughout this session
  84}
  85
  86// HermezTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
  87// with pre-set transact options.
  88type HermezTransactorSession struct {
  89	Contract     *HermezTransactor // Generic contract transactor binding to set the session for
  90	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
  91}
  92
  93// HermezRaw is an auto generated low-level Go binding around an Ethereum contract.
  94type HermezRaw struct {
  95	Contract *Hermez // Generic contract binding to access the raw methods on
  96}
  97
  98// HermezCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
  99type HermezCallerRaw struct {
 100	Contract *HermezCaller // Generic read-only contract binding to access the raw methods on
 101}
 102
 103// HermezTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
 104type HermezTransactorRaw struct {
 105	Contract *HermezTransactor // Generic write-only contract binding to access the raw methods on
 106}
 107
 108// NewHermez creates a new instance of Hermez, bound to a specific deployed contract.
 109func NewHermez(address common.Address, backend bind.ContractBackend) (*Hermez, error) {
 110	contract, err := bindHermez(address, backend, backend, backend)
 111	if err != nil {
 112		return nil, err
 113	}
 114	return &Hermez{HermezCaller: HermezCaller{contract: contract}, HermezTransactor: HermezTransactor{contract: contract}, HermezFilterer: HermezFilterer{contract: contract}}, nil
 115}
 116
 117// NewHermezCaller creates a new read-only instance of Hermez, bound to a specific deployed contract.
 118func NewHermezCaller(address common.Address, caller bind.ContractCaller) (*HermezCaller, error) {
 119	contract, err := bindHermez(address, caller, nil, nil)
 120	if err != nil {
 121		return nil, err
 122	}
 123	return &HermezCaller{contract: contract}, nil
 124}
 125
 126// NewHermezTransactor creates a new write-only instance of Hermez, bound to a specific deployed contract.
 127func NewHermezTransactor(address common.Address, transactor bind.ContractTransactor) (*HermezTransactor, error) {
 128	contract, err := bindHermez(address, nil, transactor, nil)
 129	if err != nil {
 130		return nil, err
 131	}
 132	return &HermezTransactor{contract: contract}, nil
 133}
 134
 135// NewHermezFilterer creates a new log filterer instance of Hermez, bound to a specific deployed contract.
 136func NewHermezFilterer(address common.Address, filterer bind.ContractFilterer) (*HermezFilterer, error) {
 137	contract, err := bindHermez(address, nil, nil, filterer)
 138	if err != nil {
 139		return nil, err
 140	}
 141	return &HermezFilterer{contract: contract}, nil
 142}
 143
 144// bindHermez binds a generic wrapper to an already deployed contract.
 145func bindHermez(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
 146	parsed, err := abi.JSON(strings.NewReader(HermezABI))
 147	if err != nil {
 148		return nil, err
 149	}
 150	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
 151}
 152
 153// Call invokes the (constant) contract method with params as input values and
 154// sets the output to result. The result type might be a single field for simple
 155// returns, a slice of interfaces for anonymous returns and a struct for named
 156// returns.
 157func (_Hermez *HermezRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 158	return _Hermez.Contract.HermezCaller.contract.Call(opts, result, method, params...)
 159}
 160
 161// Transfer initiates a plain transaction to move funds to the contract, calling
 162// its default method if one is available.
 163func (_Hermez *HermezRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 164	return _Hermez.Contract.HermezTransactor.contract.Transfer(opts)
 165}
 166
 167// Transact invokes the (paid) contract method with params as input values.
 168func (_Hermez *HermezRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 169	return _Hermez.Contract.HermezTransactor.contract.Transact(opts, method, params...)
 170}
 171
 172// Call invokes the (constant) contract method with params as input values and
 173// sets the output to result. The result type might be a single field for simple
 174// returns, a slice of interfaces for anonymous returns and a struct for named
 175// returns.
 176func (_Hermez *HermezCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
 177	return _Hermez.Contract.contract.Call(opts, result, method, params...)
 178}
 179
 180// Transfer initiates a plain transaction to move funds to the contract, calling
 181// its default method if one is available.
 182func (_Hermez *HermezTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
 183	return _Hermez.Contract.contract.Transfer(opts)
 184}
 185
 186// Transact invokes the (paid) contract method with params as input values.
 187func (_Hermez *HermezTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
 188	return _Hermez.Contract.contract.Transact(opts, method, params...)
 189}
 190
 191// ABSOLUTEMAXL1L2BATCHTIMEOUT is a free data retrieval call binding the contract method 0x95a09f2a.
 192//
 193// Solidity: function ABSOLUTE_MAX_L1L2BATCHTIMEOUT() view returns(uint8)
 194func (_Hermez *HermezCaller) ABSOLUTEMAXL1L2BATCHTIMEOUT(opts *bind.CallOpts) (uint8, error) {
 195	var (
 196		ret0 = new(uint8)
 197	)
 198	out := ret0
 199	err := _Hermez.contract.Call(opts, out, "ABSOLUTE_MAX_L1L2BATCHTIMEOUT")
 200	return *ret0, err
 201}
 202
 203// ABSOLUTEMAXL1L2BATCHTIMEOUT is a free data retrieval call binding the contract method 0x95a09f2a.
 204//
 205// Solidity: function ABSOLUTE_MAX_L1L2BATCHTIMEOUT() view returns(uint8)
 206func (_Hermez *HermezSession) ABSOLUTEMAXL1L2BATCHTIMEOUT() (uint8, error) {
 207	return _Hermez.Contract.ABSOLUTEMAXL1L2BATCHTIMEOUT(&_Hermez.CallOpts)
 208}
 209
 210// ABSOLUTEMAXL1L2BATCHTIMEOUT is a free data retrieval call binding the contract method 0x95a09f2a.
 211//
 212// Solidity: function ABSOLUTE_MAX_L1L2BATCHTIMEOUT() view returns(uint8)
 213func (_Hermez *HermezCallerSession) ABSOLUTEMAXL1L2BATCHTIMEOUT() (uint8, error) {
 214	return _Hermez.Contract.ABSOLUTEMAXL1L2BATCHTIMEOUT(&_Hermez.CallOpts)
 215}
 216
 217// Buckets is a free data retrieval call binding the contract method 0x9b51fb0d.
 218//
 219// Solidity: function buckets(uint256 ) view returns(uint256 ceilUSD, uint256 blockStamp, uint256 withdrawals, uint256 blockWithdrawalRate, uint256 maxWithdrawals)
 220func (_Hermez *HermezCaller) Buckets(opts *bind.CallOpts, arg0 *big.Int) (struct {
 221	CeilUSD             *big.Int
 222	BlockStamp          *big.Int
 223	Withdrawals         *big.Int
 224	BlockWithdrawalRate *big.Int
 225	MaxWithdrawals      *big.Int
 226}, error) {
 227	ret := new(struct {
 228		CeilUSD             *big.Int
 229		BlockStamp          *big.Int
 230		Withdrawals         *big.Int
 231		BlockWithdrawalRate *big.Int
 232		MaxWithdrawals      *big.Int
 233	})
 234	out := ret
 235	err := _Hermez.contract.Call(opts, out, "buckets", arg0)
 236	return *ret, err
 237}
 238
 239// Buckets is a free data retrieval call binding the contract method 0x9b51fb0d.
 240//
 241// Solidity: function buckets(uint256 ) view returns(uint256 ceilUSD, uint256 blockStamp, uint256 withdrawals, uint256 blockWithdrawalRate, uint256 maxWithdrawals)
 242func (_Hermez *HermezSession) Buckets(arg0 *big.Int) (struct {
 243	CeilUSD             *big.Int
 244	BlockStamp          *big.Int
 245	Withdrawals         *big.Int
 246	BlockWithdrawalRate *big.Int
 247	MaxWithdrawals      *big.Int
 248}, error) {
 249	return _Hermez.Contract.Buckets(&_Hermez.CallOpts, arg0)
 250}
 251
 252// Buckets is a free data retrieval call binding the contract method 0x9b51fb0d.
 253//
 254// Solidity: function buckets(uint256 ) view returns(uint256 ceilUSD, uint256 blockStamp, uint256 withdrawals, uint256 blockWithdrawalRate, uint256 maxWithdrawals)
 255func (_Hermez *HermezCallerSession) Buckets(arg0 *big.Int) (struct {
 256	CeilUSD             *big.Int
 257	BlockStamp          *big.Int
 258	Withdrawals         *big.Int
 259	BlockWithdrawalRate *big.Int
 260	MaxWithdrawals      *big.Int
 261}, error) {
 262	return _Hermez.Contract.Buckets(&_Hermez.CallOpts, arg0)
 263}
 264
 265// ExitNullifierMap is a free data retrieval call binding the contract method 0xe9b5269c.
 266//
 267// Solidity: function exitNullifierMap(uint64 , uint48 ) view returns(bool)
 268func (_Hermez *HermezCaller) ExitNullifierMap(opts *bind.CallOpts, arg0 uint64, arg1 *big.Int) (bool, error) {
 269	var (
 270		ret0 = new(bool)
 271	)
 272	out := ret0
 273	err := _Hermez.contract.Call(opts, out, "exitNullifierMap", arg0, arg1)
 274	return *ret0, err
 275}
 276
 277// ExitNullifierMap is a free data retrieval call binding the contract method 0xe9b5269c.
 278//
 279// Solidity: function exitNullifierMap(uint64 , uint48 ) view returns(bool)
 280func (_Hermez *HermezSession) ExitNullifierMap(arg0 uint64, arg1 *big.Int) (bool, error) {
 281	return _Hermez.Contract.ExitNullifierMap(&_Hermez.CallOpts, arg0, arg1)
 282}
 283
 284// ExitNullifierMap is a free data retrieval call binding the contract method 0xe9b5269c.
 285//
 286// Solidity: function exitNullifierMap(uint64 , uint48 ) view returns(bool)
 287func (_Hermez *HermezCallerSession) ExitNullifierMap(arg0 uint64, arg1 *big.Int) (bool, error) {
 288	return _Hermez.Contract.ExitNullifierMap(&_Hermez.CallOpts, arg0, arg1)
 289}
 290
 291// ExitRootsMap is a free data retrieval call binding the contract method 0x506d5463.
 292//
 293// Solidity: function exitRootsMap(uint64 ) view returns(uint256)
 294func (_Hermez *HermezCaller) ExitRootsMap(opts *bind.CallOpts, arg0 uint64) (*big.Int, error) {
 295	var (
 296		ret0 = new(*big.Int)
 297	)
 298	out := ret0
 299	err := _Hermez.contract.Call(opts, out, "exitRootsMap", arg0)
 300	return *ret0, err
 301}
 302
 303// ExitRootsMap is a free data retrieval call binding the contract method 0x506d5463.
 304//
 305// Solidity: function exitRootsMap(uint64 ) view returns(uint256)
 306func (_Hermez *HermezSession) ExitRootsMap(arg0 uint64) (*big.Int, error) {
 307	return _Hermez.Contract.ExitRootsMap(&_Hermez.CallOpts, arg0)
 308}
 309
 310// ExitRootsMap is a free data retrieval call binding the contract method 0x506d5463.
 311//
 312// Solidity: function exitRootsMap(uint64 ) view returns(uint256)
 313func (_Hermez *HermezCallerSession) ExitRootsMap(arg0 uint64) (*big.Int, error) {
 314	return _Hermez.Contract.ExitRootsMap(&_Hermez.CallOpts, arg0)
 315}
 316
 317// FeeAddToken is a free data retrieval call binding the contract method 0xbded9bb8.
 318//
 319// Solidity: function feeAddToken() view returns(uint256)
 320func (_Hermez *HermezCaller) FeeAddToken(opts *bind.CallOpts) (*big.Int, error) {
 321	var (
 322		ret0 = new(*big.Int)
 323	)
 324	out := ret0
 325	err := _Hermez.contract.Call(opts, out, "feeAddToken")
 326	return *ret0, err
 327}
 328
 329// FeeAddToken is a free data retrieval call binding the contract method 0xbded9bb8.
 330//
 331// Solidity: function feeAddToken() view returns(uint256)
 332func (_Hermez *HermezSession) FeeAddToken() (*big.Int, error) {
 333	return _Hermez.Contract.FeeAddToken(&_Hermez.CallOpts)
 334}
 335
 336// FeeAddToken is a free data retrieval call binding the contract method 0xbded9bb8.
 337//
 338// Solidity: function feeAddToken() view returns(uint256)
 339func (_Hermez *HermezCallerSession) FeeAddToken() (*big.Int, error) {
 340	return _Hermez.Contract.FeeAddToken(&_Hermez.CallOpts)
 341}
 342
 343// ForgeL1L2BatchTimeout is a free data retrieval call binding the contract method 0xa3275838.
 344//
 345// Solidity: function forgeL1L2BatchTimeout() view returns(uint8)
 346func (_Hermez *HermezCaller) ForgeL1L2BatchTimeout(opts *bind.CallOpts) (uint8, error) {
 347	var (
 348		ret0 = new(uint8)
 349	)
 350	out := ret0
 351	err := _Hermez.contract.Call(opts, out, "forgeL1L2BatchTimeout")
 352	return *ret0, err
 353}
 354
 355// ForgeL1L2BatchTimeout is a free data retrieval call binding the contract method 0xa3275838.
 356//
 357// Solidity: function forgeL1L2BatchTimeout() view returns(uint8)
 358func (_Hermez *HermezSession) ForgeL1L2BatchTimeout() (uint8, error) {
 359	return _Hermez.Contract.ForgeL1L2BatchTimeout(&_Hermez.CallOpts)
 360}
 361
 362// ForgeL1L2BatchTimeout is a free data retrieval call binding the contract method 0xa3275838.
 363//
 364// Solidity: function forgeL1L2BatchTimeout() view returns(uint8)
 365func (_Hermez *HermezCallerSession) ForgeL1L2BatchTimeout() (uint8, error) {
 366	return _Hermez.Contract.ForgeL1L2BatchTimeout(&_Hermez.CallOpts)
 367}
 368
 369// HermezAuctionContract is a free data retrieval call binding the contract method 0x2bd83626.
 370//
 371// Solidity: function hermezAuctionContract() view returns(address)
 372func (_Hermez *HermezCaller) HermezAuctionContract(opts *bind.CallOpts) (common.Address, error) {
 373	var (
 374		ret0 = new(common.Address)
 375	)
 376	out := ret0
 377	err := _Hermez.contract.Call(opts, out, "hermezAuctionContract")
 378	return *ret0, err
 379}
 380
 381// HermezAuctionContract is a free data retrieval call binding the contract method 0x2bd83626.
 382//
 383// Solidity: function hermezAuctionContract() view returns(address)
 384func (_Hermez *HermezSession) HermezAuctionContract() (common.Address, error) {
 385	return _Hermez.Contract.HermezAuctionContract(&_Hermez.CallOpts)
 386}
 387
 388// HermezAuctionContract is a free data retrieval call binding the contract method 0x2bd83626.
 389//
 390// Solidity: function hermezAuctionContract() view returns(address)
 391func (_Hermez *HermezCallerSession) HermezAuctionContract() (common.Address, error) {
 392	return _Hermez.Contract.HermezAuctionContract(&_Hermez.CallOpts)
 393}
 394
 395// HermezGovernanceDAOAddress is a free data retrieval call binding the contract method 0xdd46bf84.
 396//
 397// Solidity: function hermezGovernanceDAOAddress() view returns(address)
 398func (_Hermez *HermezCaller) HermezGovernanceDAOAddress(opts *bind.CallOpts) (common.Address, error) {
 399	var (
 400		ret0 = new(common.Address)
 401	)
 402	out := ret0
 403	err := _Hermez.contract.Call(opts, out, "hermezGovernanceDAOAddress")
 404	return *ret0, err
 405}
 406
 407// HermezGovernanceDAOAddress is a free data retrieval call binding the contract method 0xdd46bf84.
 408//
 409// Solidity: function hermezGovernanceDAOAddress() view returns(address)
 410func (_Hermez *HermezSession) HermezGovernanceDAOAddress() (common.Address, error) {
 411	return _Hermez.Contract.HermezGovernanceDAOAddress(&_Hermez.CallOpts)
 412}
 413
 414// HermezGovernanceDAOAddress is a free data retrieval call binding the contract method 0xdd46bf84.
 415//
 416// Solidity: function hermezGovernanceDAOAddress() view returns(address)
 417func (_Hermez *HermezCallerSession) HermezGovernanceDAOAddress() (common.Address, error) {
 418	return _Hermez.Contract.HermezGovernanceDAOAddress(&_Hermez.CallOpts)
 419}
 420
 421// InstantWithdrawalViewer is a free data retrieval call binding the contract method 0x375110aa.
 422//
 423// Solidity: function instantWithdrawalViewer(address tokenAddress, uint192 amount) view returns(bool)
 424func (_Hermez *HermezCaller) InstantWithdrawalViewer(opts *bind.CallOpts, tokenAddress common.Address, amount *big.Int) (bool, error) {
 425	var (
 426		ret0 = new(bool)
 427	)
 428	out := ret0
 429	err := _Hermez.contract.Call(opts, out, "instantWithdrawalViewer", tokenAddress, amount)
 430	return *ret0, err
 431}
 432
 433// InstantWithdrawalViewer is a free data retrieval call binding the contract method 0x375110aa.
 434//
 435// Solidity: function instantWithdrawalViewer(address tokenAddress, uint192 amount) view returns(bool)
 436func (_Hermez *HermezSession) InstantWithdrawalViewer(tokenAddress common.Address, amount *big.Int) (bool, error) {
 437	return _Hermez.Contract.InstantWithdrawalViewer(&_Hermez.CallOpts, tokenAddress, amount)
 438}
 439
 440// InstantWithdrawalViewer is a free data retrieval call binding the contract method 0x375110aa.
 441//
 442// Solidity: function instantWithdrawalViewer(address tokenAddress, uint192 amount) view returns(bool)
 443func (_Hermez *HermezCallerSession) InstantWithdrawalViewer(tokenAddress common.Address, amount *big.Int) (bool, error) {
 444	return _Hermez.Contract.InstantWithdrawalViewer(&_Hermez.CallOpts, tokenAddress, amount)
 445}
 446
 447// LastForgedBatch is a free data retrieval call binding the contract method 0x44e0b2ce.
 448//
 449// Solidity: function lastForgedBatch() view returns(uint64)
 450func (_Hermez *HermezCaller) LastForgedBatch(opts *bind.CallOpts) (uint64, error) {
 451	var (
 452		ret0 = new(uint64)
 453	)
 454	out := ret0
 455	err := _Hermez.contract.Call(opts, out, "lastForgedBatch")
 456	return *ret0, err
 457}
 458
 459// LastForgedBatch is a free data retrieval call binding the contract method 0x44e0b2ce.
 460//
 461// Solidity: function lastForgedBatch() view returns(uint64)
 462func (_Hermez *HermezSession) LastForgedBatch() (uint64, error) {
 463	return _Hermez.Contract.LastForgedBatch(&_Hermez.CallOpts)
 464}
 465
 466// LastForgedBatch is a free data retrieval call binding the contract method 0x44e0b2ce.
 467//
 468// Solidity: function lastForgedBatch() view returns(uint64)
 469func (_Hermez *HermezCallerSession) LastForgedBatch() (uint64, error) {
 470	return _Hermez.Contract.LastForgedBatch(&_Hermez.CallOpts)
 471}
 472
 473// LastIdx is a free data retrieval call binding the contract method 0xd486645c.
 474//
 475// Solidity: function lastIdx() view returns(uint48)
 476func (_Hermez *HermezCaller) LastIdx(opts *bind.CallOpts) (*big.Int, error) {
 477	var (
 478		ret0 = new(*big.Int)
 479	)
 480	out := ret0
 481	err := _Hermez.contract.Call(opts, out, "lastIdx")
 482	return *ret0, err
 483}
 484
 485// LastIdx is a free data retrieval call binding the contract method 0xd486645c.
 486//
 487// Solidity: function lastIdx() view returns(uint48)
 488func (_Hermez *HermezSession) LastIdx() (*big.Int, error) {
 489	return _Hermez.Contract.LastIdx(&_Hermez.CallOpts)
 490}
 491
 492// LastIdx is a free data retrieval call binding the contract method 0xd486645c.
 493//
 494// Solidity: function lastIdx() view returns(uint48)
 495func (_Hermez *HermezCallerSession) LastIdx() (*big.Int, error) {
 496	return _Hermez.Contract.LastIdx(&_Hermez.CallOpts)
 497}
 498
 499// LastL1L2Batch is a free data retrieval call binding the contract method 0x84ef9ed4.
 500//
 501// Solidity: function lastL1L2Batch() view returns(uint64)
 502func (_Hermez *HermezCaller) LastL1L2Batch(opts *bind.CallOpts) (uint64, error) {
 503	var (
 504		ret0 = new(uint64)
 505	)
 506	out := ret0
 507	err := _Hermez.contract.Call(opts, out, "lastL1L2Batch")
 508	return *ret0, err
 509}
 510
 511// LastL1L2Batch is a free data retrieval call binding the contract method 0x84ef9ed4.
 512//
 513// Solidity: function lastL1L2Batch() view returns(uint64)
 514func (_Hermez *HermezSession) LastL1L2Batch() (uint64, error) {
 515	return _Hermez.Contract.LastL1L2Batch(&_Hermez.CallOpts)
 516}
 517
 518// LastL1L2Batch is a free data retrieval call binding the contract method 0x84ef9ed4.
 519//
 520// Solidity: function lastL1L2Batch() view returns(uint64)
 521func (_Hermez *HermezCallerSession) LastL1L2Batch() (uint64, error) {
 522	return _Hermez.Contract.LastL1L2Batch(&_Hermez.CallOpts)
 523}
 524
 525// MapL1TxQueue is a free data retrieval call binding the contract method 0xe796fcf3.
 526//
 527// Solidity: function mapL1TxQueue(uint64 ) view returns(bytes)
 528func (_Hermez *HermezCaller) MapL1TxQueue(opts *bind.CallOpts, arg0 uint64) ([]byte, error) {
 529	var (
 530		ret0 = new([]byte)
 531	)
 532	out := ret0
 533	err := _Hermez.contract.Call(opts, out, "mapL1TxQueue", arg0)
 534	return *ret0, err
 535}
 536
 537// MapL1TxQueue is a free data retrieval call binding the contract method 0xe796fcf3.
 538//
 539// Solidity: function mapL1TxQueue(uint64 ) view returns(bytes)
 540func (_Hermez *HermezSession) MapL1TxQueue(arg0 uint64) ([]byte, error) {
 541	return _Hermez.Contract.MapL1TxQueue(&_Hermez.CallOpts, arg0)
 542}
 543
 544// MapL1TxQueue is a free data retrieval call binding the contract method 0xe796fcf3.
 545//
 546// Solidity: function mapL1TxQueue(uint64 ) view returns(bytes)
 547func (_Hermez *HermezCallerSession) MapL1TxQueue(arg0 uint64) ([]byte, error) {
 548	return _Hermez.Contract.MapL1TxQueue(&_Hermez.CallOpts, arg0)
 549}
 550
 551// NextL1FillingQueue is a free data retrieval call binding the contract method 0x0ee8e52b.
 552//
 553// Solidity: function nextL1FillingQueue() view returns(uint64)
 554func (_Hermez *HermezCaller) NextL1FillingQueue(opts *bind.CallOpts) (uint64, error) {
 555	var (
 556		ret0 = new(uint64)
 557	)
 558	out := ret0
 559	err := _Hermez.contract.Call(opts, out, "nextL1FillingQueue")
 560	return *ret0, err
 561}
 562
 563// NextL1FillingQueue is a free data retrieval call binding the contract method 0x0ee8e52b.
 564//
 565// Solidity: function nextL1FillingQueue() view returns(uint64)
 566func (_Hermez *HermezSession) NextL1FillingQueue() (uint64, error) {
 567	return _Hermez.Contract.NextL1FillingQueue(&_Hermez.CallOpts)
 568}
 569
 570// NextL1FillingQueue is a free data retrieval call binding the contract method 0x0ee8e52b.
 571//
 572// Solidity: function nextL1FillingQueue() view returns(uint64)
 573func (_Hermez *HermezCallerSession) NextL1FillingQueue() (uint64, error) {
 574	return _Hermez.Contract.NextL1FillingQueue(&_Hermez.CallOpts)
 575}
 576
 577// NextL1ToForgeQueue is a free data retrieval call binding the contract method 0xd0f32e67.
 578//
 579// Solidity: function nextL1ToForgeQueue() view returns(uint64)
 580func (_Hermez *HermezCaller) NextL1ToForgeQueue(opts *bind.CallOpts) (uint64, error) {
 581	var (
 582		ret0 = new(uint64)
 583	)
 584	out := ret0
 585	err := _Hermez.contract.Call(opts, out, "nextL1ToForgeQueue")
 586	return *ret0, err
 587}
 588
 589// NextL1ToForgeQueue is a free data retrieval call binding the contract method 0xd0f32e67.
 590//
 591// Solidity: function nextL1ToForgeQueue() view returns(uint64)
 592func (_Hermez *HermezSession) NextL1ToForgeQueue() (uint64, error) {
 593	return _Hermez.Contract.NextL1ToForgeQueue(&_Hermez.CallOpts)
 594}
 595
 596// NextL1ToForgeQueue is a free data retrieval call binding the contract method 0xd0f32e67.
 597//
 598// Solidity: function nextL1ToForgeQueue() view returns(uint64)
 599func (_Hermez *HermezCallerSession) NextL1ToForgeQueue() (uint64, error) {
 600	return _Hermez.Contract.NextL1ToForgeQueue(&_Hermez.CallOpts)
 601}
 602
 603// RegisterTokensCount is a free data retrieval call binding the contract method 0x9f34e9a3.
 604//
 605// Solidity: function registerTokensCount() view returns(uint256)
 606func (_Hermez *HermezCaller) RegisterTokensCount(opts *bind.CallOpts) (*big.Int, error) {
 607	var (
 608		ret0 = new(*big.Int)
 609	)
 610	out := ret0
 611	err := _Hermez.contract.Call(opts, out, "registerTokensCount")
 612	return *ret0, err
 613}
 614
 615// RegisterTokensCount is a free data retrieval call binding the contract method 0x9f34e9a3.
 616//
 617// Solidity: function registerTokensCount() view returns(uint256)
 618func (_Hermez *HermezSession) RegisterTokensCount() (*big.Int, error) {
 619	return _Hermez.Contract.RegisterTokensCount(&_Hermez.CallOpts)
 620}
 621
 622// RegisterTokensCount is a free data retrieval call binding the contract method 0x9f34e9a3.
 623//
 624// Solidity: function registerTokensCount() view returns(uint256)
 625func (_Hermez *HermezCallerSession) RegisterTokensCount() (*big.Int, error) {
 626	return _Hermez.Contract.RegisterTokensCount(&_Hermez.CallOpts)
 627}
 628
 629// RollupVerifiers is a free data retrieval call binding the contract method 0x38330200.
 630//
 631// Solidity: function rollupVerifiers(uint256 ) view returns(address verifierInterface, uint256 maxTx, uint256 nLevels)
 632func (_Hermez *HermezCaller) RollupVerifiers(opts *bind.CallOpts, arg0 *big.Int) (struct {
 633	VerifierInterface common.Address
 634	MaxTx             *big.Int
 635	NLevels           *big.Int
 636}, error) {
 637	ret := new(struct {
 638		VerifierInterface common.Address
 639		MaxTx             *big.Int
 640		NLevels           *big.Int
 641	})
 642	out := ret
 643	err := _Hermez.contract.Call(opts, out, "rollupVerifiers", arg0)
 644	return *ret, err
 645}
 646
 647// RollupVerifiers is a free data retrieval call binding the contract method 0x38330200.
 648//
 649// Solidity: function rollupVerifiers(uint256 ) view returns(address verifierInterface, uint256 maxTx, uint256 nLevels)
 650func (_Hermez *HermezSession) RollupVerifiers(arg0 *big.Int) (struct {
 651	VerifierInterface common.Address
 652	MaxTx             *big.Int
 653	NLevels           *big.Int
 654}, error) {
 655	return _Hermez.Contract.RollupVerifiers(&_Hermez.CallOpts, arg0)
 656}
 657
 658// RollupVerifiers is a free data retrieval call binding the contract method 0x38330200.
 659//
 660// Solidity: function rollupVerifiers(uint256 ) view returns(address verifierInterface, uint256 maxTx, uint256 nLevels)
 661func (_Hermez *HermezCallerSession) RollupVerifiers(arg0 *big.Int) (struct {
 662	VerifierInterface common.Address
 663	MaxTx             *big.Int
 664	NLevels           *big.Int
 665}, error) {
 666	return _Hermez.Contract.RollupVerifiers(&_Hermez.CallOpts, arg0)
 667}
 668
 669// SafetyAddress is a free data retrieval call binding the contract method 0xe56e27ae.
 670//
 671// Solidity: function safetyAddress() view returns(address)
 672func (_Hermez *HermezCaller) SafetyAddress(opts *bind.CallOpts) (common.Address, error) {
 673	var (
 674		ret0 = new(common.Address)
 675	)
 676	out := ret0
 677	err := _Hermez.contract.Call(opts, out, "safetyAddress")
 678	return *ret0, err
 679}
 680
 681// SafetyAddress is a free data retrieval call binding the contract method 0xe56e27ae.
 682//
 683// Solidity: function safetyAddress() view returns(address)
 684func (_Hermez *HermezSession) SafetyAddress() (common.Address, error) {
 685	return _Hermez.Contract.SafetyAddress(&_Hermez.CallOpts)
 686}
 687
 688// SafetyAddress is a free data retrieval call binding the contract method 0xe56e27ae.
 689//
 690// Solidity: function safetyAddress() view returns(address)
 691func (_Hermez *HermezCallerSession) SafetyAddress() (common.Address, error) {
 692	return _Hermez.Contract.SafetyAddress(&_Hermez.CallOpts)
 693}
 694
 695// StateRootMap is a free data retrieval call binding the contract method 0x86c6acc1.
 696//
 697// Solidity: function stateRootMap(uint64 ) view returns(uint256)
 698func (_Hermez *HermezCaller) StateRootMap(opts *bind.CallOpts, arg0 uint64) (*big.Int, error) {
 699	var (
 700		ret0 = new(*big.Int)
 701	)
 702	out := ret0
 703	err := _Hermez.contract.Call(opts, out, "stateRootMap", arg0)
 704	return *ret0, err
 705}
 706
 707// StateRootMap is a free data retrieval call binding the contract method 0x86c6acc1.
 708//
 709// Solidity: function stateRootMap(uint64 ) view returns(uint256)
 710func (_Hermez *HermezSession) StateRootMap(arg0 uint64) (*big.Int, error) {
 711	return _Hermez.Contract.StateRootMap(&_Hermez.CallOpts, arg0)
 712}
 713
 714// StateRootMap is a free data retrieval call binding the contract method 0x86c6acc1.
 715//
 716// Solidity: function stateRootMap(uint64 ) view returns(uint256)
 717func (_Hermez *HermezCallerSession) StateRootMap(arg0 uint64) (*big.Int, error) {
 718	return _Hermez.Contract.StateRootMap(&_Hermez.CallOpts, arg0)
 719}
 720
 721// TokenExchange is a free data retrieval call binding the contract method 0x0dd94b96.
 722//
 723// Solidity: function tokenExchange(address ) view returns(uint64)
 724func (_Hermez *HermezCaller) TokenExchange(opts *bind.CallOpts, arg0 common.Address) (uint64, error) {
 725	var (
 726		ret0 = new(uint64)
 727	)
 728	out := ret0
 729	err := _Hermez.contract.Call(opts, out, "tokenExchange", arg0)
 730	return *ret0, err
 731}
 732
 733// TokenExchange is a free data retrieval call binding the contract method 0x0dd94b96.
 734//
 735// Solidity: function tokenExchange(address ) view returns(uint64)
 736func (_Hermez *HermezSession) TokenExchange(arg0 common.Address) (uint64, error) {
 737	return _Hermez.Contract.TokenExchange(&_Hermez.CallOpts, arg0)
 738}
 739
 740// TokenExchange is a free data retrieval call binding the contract method 0x0dd94b96.
 741//
 742// Solidity: function tokenExchange(address ) view returns(uint64)
 743func (_Hermez *HermezCallerSession) TokenExchange(arg0 common.Address) (uint64, error) {
 744	return _Hermez.Contract.TokenExchange(&_Hermez.CallOpts, arg0)
 745}
 746
 747// TokenHEZ is a free data retrieval call binding the contract method 0x79a135e3.
 748//
 749// Solidity: function tokenHEZ() view returns(address)
 750func (_Hermez *HermezCaller) TokenHEZ(opts *bind.CallOpts) (common.Address, error) {
 751	var (
 752		ret0 = new(common.Address)
 753	)
 754	out := ret0
 755	err := _Hermez.contract.Call(opts, out, "tokenHEZ")
 756	return *ret0, err
 757}
 758
 759// TokenHEZ is a free data retrieval call binding the contract method 0x79a135e3.
 760//
 761// Solidity: function tokenHEZ() view returns(address)
 762func (_Hermez *HermezSession) TokenHEZ() (common.Address, error) {
 763	return _Hermez.Contract.TokenHEZ(&_Hermez.CallOpts)
 764}
 765
 766// TokenHEZ is a free data retrieval call binding the contract method 0x79a135e3.
 767//
 768// Solidity: function tokenHEZ() view returns(address)
 769func (_Hermez *HermezCallerSession) TokenHEZ() (common.Address, error) {
 770	return _Hermez.Contract.TokenHEZ(&_Hermez.CallOpts)
 771}
 772
 773// TokenList is a free data retrieval call binding the contract method 0x9ead7222.
 774//
 775// Solidity: function tokenList(uint256 ) view returns(address)
 776func (_Hermez *HermezCaller) TokenList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
 777	var (
 778		ret0 = new(common.Address)
 779	)
 780	out := ret0
 781	err := _Hermez.contract.Call(opts, out, "tokenList", arg0)
 782	return *ret0, err
 783}
 784
 785// TokenList is a free data retrieval call binding the contract method 0x9ead7222.
 786//
 787// Solidity: function tokenList(uint256 ) view returns(address)
 788func (_Hermez *HermezSession) TokenList(arg0 *big.Int) (common.Address, error) {
 789	return _Hermez.Contract.TokenList(&_Hermez.CallOpts, arg0)
 790}
 791
 792// TokenList is a free data retrieval call binding the contract method 0x9ead7222.
 793//
 794// Solidity: function tokenList(uint256 ) view returns(address)
 795func (_Hermez *HermezCallerSession) TokenList(arg0 *big.Int) (common.Address, error) {
 796	return _Hermez.Contract.TokenList(&_Hermez.CallOpts, arg0)
 797}
 798
 799// TokenMap is a free data retrieval call binding the contract method 0x004aca6e.
 800//
 801// Solidity: function tokenMap(address ) view returns(uint256)
 802func (_Hermez *HermezCaller) TokenMap(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
 803	var (
 804		ret0 = new(*big.Int)
 805	)
 806	out := ret0
 807	err := _Hermez.contract.Call(opts, out, "tokenMap", arg0)
 808	return *ret0, err
 809}
 810
 811// TokenMap is a free data retrieval call binding the contract method 0x004aca6e.
 812//
 813// Solidity: function tokenMap(address ) view returns(uint256)
 814func (_Hermez *HermezSession) TokenMap(arg0 common.Address) (*big.Int, error) {
 815	return _Hermez.Contract.TokenMap(&_Hermez.CallOpts, arg0)
 816}
 817
 818// TokenMap is a free data retrieval call binding the contract method 0x004aca6e.
 819//
 820// Solidity: function tokenMap(address ) view returns(uint256)
 821func (_Hermez *HermezCallerSession) TokenMap(arg0 common.Address) (*big.Int, error) {
 822	return _Hermez.Contract.TokenMap(&_Hermez.CallOpts, arg0)
 823}
 824
 825// WithdrawDelayerContract is a free data retrieval call binding the contract method 0x1b0a8223.
 826//
 827// Solidity: function withdrawDelayerContract() view returns(address)
 828func (_Hermez *HermezCaller) WithdrawDelayerContract(opts *bind.CallOpts) (common.Address, error) {
 829	var (
 830		ret0 = new(common.Address)
 831	)
 832	out := ret0
 833	err := _Hermez.contract.Call(opts, out, "withdrawDelayerContract")
 834	return *ret0, err
 835}
 836
 837// WithdrawDelayerContract is a free data retrieval call binding the contract method 0x1b0a8223.
 838//
 839// Solidity: function withdrawDelayerContract() view returns(address)
 840func (_Hermez *HermezSession) WithdrawDelayerContract() (common.Address, error) {
 841	return _Hermez.Contract.WithdrawDelayerContract(&_Hermez.CallOpts)
 842}
 843
 844// WithdrawDelayerContract is a free data retrieval call binding the contract method 0x1b0a8223.
 845//
 846// Solidity: function withdrawDelayerContract() view returns(address)
 847func (_Hermez *HermezCallerSession) WithdrawDelayerContract() (common.Address, error) {
 848	return _Hermez.Contract.WithdrawDelayerContract(&_Hermez.CallOpts)
 849}
 850
 851// WithdrawVerifier is a free data retrieval call binding the contract method 0x864eb164.
 852//
 853// Solidity: function withdrawVerifier() view returns(address)
 854func (_Hermez *HermezCaller) WithdrawVerifier(opts *bind.CallOpts) (common.Address, error) {
 855	var (
 856		ret0 = new(common.Address)
 857	)
 858	out := ret0
 859	err := _Hermez.contract.Call(opts, out, "withdrawVerifier")
 860	return *ret0, err
 861}
 862
 863// WithdrawVerifier is a free data retrieval call binding the contract method 0x864eb164.
 864//
 865// Solidity: function withdrawVerifier() view returns(address)
 866func (_Hermez *HermezSession) WithdrawVerifier() (common.Address, error) {
 867	return _Hermez.Contract.WithdrawVerifier(&_Hermez.CallOpts)
 868}
 869
 870// WithdrawVerifier is a free data retrieval call binding the contract method 0x864eb164.
 871//
 872// Solidity: function withdrawVerifier() view returns(address)
 873func (_Hermez *HermezCallerSession) WithdrawVerifier() (common.Address, error) {
 874	return _Hermez.Contract.WithdrawVerifier(&_Hermez.CallOpts)
 875}
 876
 877// WithdrawalDelay is a free data retrieval call binding the contract method 0xa7ab6961.
 878//
 879// Solidity: function withdrawalDelay() view returns(uint64)
 880func (_Hermez *HermezCaller) WithdrawalDelay(opts *bind.CallOpts) (uint64, error) {
 881	var (
 882		ret0 = new(uint64)
 883	)
 884	out := ret0
 885	err := _Hermez.contract.Call(opts, out, "withdrawalDelay")
 886	return *ret0, err
 887}
 888
 889// WithdrawalDelay is a free data retrieval call binding the contract method 0xa7ab6961.
 890//
 891// Solidity: function withdrawalDelay() view returns(uint64)
 892func (_Hermez *HermezSession) WithdrawalDelay() (uint64, error) {
 893	return _Hermez.Contract.WithdrawalDelay(&_Hermez.CallOpts)
 894}
 895
 896// WithdrawalDelay is a free data retrieval call binding the contract method 0xa7ab6961.
 897//
 898// Solidity: function withdrawalDelay() view returns(uint64)
 899func (_Hermez *HermezCallerSession) WithdrawalDelay() (uint64, error) {
 900	return _Hermez.Contract.WithdrawalDelay(&_Hermez.CallOpts)
 901}
 902
 903// AddL1Transaction is a paid mutator transaction binding the contract method 0xac171d28.
 904//
 905// Solidity: function addL1Transaction(uint256 babyPubKey, uint48 fromIdx, uint16 loadAmountF, uint16 amountF, uint32 tokenID, uint48 toIdx) payable returns()
 906func (_Hermez *HermezTransactor) AddL1Transaction(opts *bind.TransactOpts, babyPubKey *big.Int, fromIdx *big.Int, loadAmountF uint16, amountF uint16, tokenID uint32, toIdx *big.Int) (*types.Transaction, error) {
 907	return _Hermez.contract.Transact(opts, "addL1Transaction", babyPubKey, fromIdx, loadAmountF, amountF, tokenID, toIdx)
 908}
 909
 910// AddL1Transaction is a paid mutator transaction binding the contract method 0xac171d28.
 911//
 912// Solidity: function addL1Transaction(uint256 babyPubKey, uint48 fromIdx, uint16 loadAmountF, uint16 amountF, uint32 tokenID, uint48 toIdx) payable returns()
 913func (_Hermez *HermezSession) AddL1Transaction(babyPubKey *big.Int, fromIdx *big.Int, loadAmountF uint16, amountF uint16, tokenID uint32, toIdx *big.Int) (*types.Transaction, error) {
 914	return _Hermez.Contract.AddL1Transaction(&_Hermez.TransactOpts, babyPubKey, fromIdx, loadAmountF, amountF, tokenID, toIdx)
 915}
 916
 917// AddL1Transaction is a paid mutator transaction binding the contract method 0xac171d28.
 918//
 919// Solidity: function addL1Transaction(uint256 babyPubKey, uint48 fromIdx, uint16 loadAmountF, uint16 amountF, uint32 tokenID, uint48 toIdx) payable returns()
 920func (_Hermez *HermezTransactorSession) AddL1Transaction(babyPubKey *big.Int, fromIdx *big.Int, loadAmountF uint16, amountF uint16, tokenID uint32, toIdx *big.Int) (*types.Transaction, error) {
 921	return _Hermez.Contract.AddL1Transaction(&_Hermez.TransactOpts, babyPubKey, fromIdx, loadAmountF, amountF, tokenID, toIdx)
 922}
 923
 924// ForgeBatch is a paid mutator transaction binding the contract method 0x6e7e1365.
 925//
 926// Solidity: function forgeBatch(uint48 newLastIdx, uint256 newStRoot, uint256 newExitRoot, bytes encodedL1CoordinatorTx, bytes l2TxsData, bytes feeIdxCoordinator, uint8 verifierIdx, bool l1Batch, uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC) returns()
 927func (_Hermez *HermezTransactor) ForgeBatch(opts *bind.TransactOpts, newLastIdx *big.Int, newStRoot *big.Int, newExitRoot *big.Int, encodedL1CoordinatorTx []byte, l2TxsData []byte, feeIdxCoordinator []byte, verifierIdx uint8, l1Batch bool, proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int) (*types.Transaction, error) {
 928	return _Hermez.contract.Transact(opts, "forgeBatch", newLastIdx, newStRoot, newExitRoot, encodedL1CoordinatorTx, l2TxsData, feeIdxCoordinator, verifierIdx, l1Batch, proofA, proofB, proofC)
 929}
 930
 931// ForgeBatch is a paid mutator transaction binding the contract method 0x6e7e1365.
 932//
 933// Solidity: function forgeBatch(uint48 newLastIdx, uint256 newStRoot, uint256 newExitRoot, bytes encodedL1CoordinatorTx, bytes l2TxsData, bytes feeIdxCoordinator, uint8 verifierIdx, bool l1Batch, uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC) returns()
 934func (_Hermez *HermezSession) ForgeBatch(newLastIdx *big.Int, newStRoot *big.Int, newExitRoot *big.Int, encodedL1CoordinatorTx []byte, l2TxsData []byte, feeIdxCoordinator []byte, verifierIdx uint8, l1Batch bool, proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int) (*types.Transaction, error) {
 935	return _Hermez.Contract.ForgeBatch(&_Hermez.TransactOpts, newLastIdx, newStRoot, newExitRoot, encodedL1CoordinatorTx, l2TxsData, feeIdxCoordinator, verifierIdx, l1Batch, proofA, proofB, proofC)
 936}
 937
 938// ForgeBatch is a paid mutator transaction binding the contract method 0x6e7e1365.
 939//
 940// Solidity: function forgeBatch(uint48 newLastIdx, uint256 newStRoot, uint256 newExitRoot, bytes encodedL1CoordinatorTx, bytes l2TxsData, bytes feeIdxCoordinator, uint8 verifierIdx, bool l1Batch, uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC) returns()
 941func (_Hermez *HermezTransactorSession) ForgeBatch(newLastIdx *big.Int, newStRoot *big.Int, newExitRoot *big.Int, encodedL1CoordinatorTx []byte, l2TxsData []byte, feeIdxCoordinator []byte, verifierIdx uint8, l1Batch bool, proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int) (*types.Transaction, error) {
 942	return _Hermez.Contract.ForgeBatch(&_Hermez.TransactOpts, newLastIdx, newStRoot, newExitRoot, encodedL1CoordinatorTx, l2TxsData, feeIdxCoordinator, verifierIdx, l1Batch, proofA, proofB, proofC)
 943}
 944
 945// InitializeHermez is a paid mutator transaction binding the contract method 0x4ee51c26.
 946//
 947// Solidity: function initializeHermez(address[] _verifiers, uint256[] _verifiersParams, address _withdrawVerifier, address _hermezAuctionContract, address _tokenHEZ, uint8 _forgeL1L2BatchTimeout, uint256 _feeAddToken, address _poseidon2Elements, address _poseidon3Elements, address _poseidon4Elements, address _hermezGovernanceDAOAddress, address _safetyAddress, uint64 _withdrawalDelay, address _withdrawDelayerContract) returns()
 948func (_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, _hermezGovernanceDAOAddress common.Address, _safetyAddress common.Address, _withdrawalDelay uint64, _withdrawDelayerContract common.Address) (*types.Transaction, error) {
 949	return _Hermez.contract.Transact(opts, "initializeHermez", _verifiers, _verifiersParams, _withdrawVerifier, _hermezAuctionContract, _tokenHEZ, _forgeL1L2BatchTimeout, _feeAddToken, _poseidon2Elements, _poseidon3Elements, _poseidon4Elements, _hermezGovernanceDAOAddress, _safetyAddress, _withdrawalDelay, _withdrawDelayerContract)
 950}
 951
 952// InitializeHermez is a paid mutator transaction binding the contract method 0x4ee51c26.
 953//
 954// Solidity: function initializeHermez(address[] _verifiers, uint256[] _verifiersParams, address _withdrawVerifier, address _hermezAuctionContract, address _tokenHEZ, uint8 _forgeL1L2BatchTimeout, uint256 _feeAddToken, address _poseidon2Elements, address _poseidon3Elements, address _poseidon4Elements, address _hermezGovernanceDAOAddress, address _safetyAddress, uint64 _withdrawalDelay, address _withdrawDelayerContract) returns()
 955func (_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, _hermezGovernanceDAOAddress common.Address, _safetyAddress common.Address, _withdrawalDelay uint64, _withdrawDelayerContract common.Address) (*types.Transaction, error) {
 956	return _Hermez.Contract.InitializeHermez(&_Hermez.TransactOpts, _verifiers, _verifiersParams, _withdrawVerifier, _hermezAuctionContract, _tokenHEZ, _forgeL1L2BatchTimeout, _feeAddToken, _poseidon2Elements, _poseidon3Elements, _poseidon4Elements, _hermezGovernanceDAOAddress, _safetyAddress, _withdrawalDelay, _withdrawDelayerContract)
 957}
 958
 959// InitializeHermez is a paid mutator transaction binding the contract method 0x4ee51c26.
 960//
 961// Solidity: function initializeHermez(address[] _verifiers, uint256[] _verifiersParams, address _withdrawVerifier, address _hermezAuctionContract, address _tokenHEZ, uint8 _forgeL1L2BatchTimeout, uint256 _feeAddToken, address _poseidon2Elements, address _poseidon3Elements, address _poseidon4Elements, address _hermezGovernanceDAOAddress, address _safetyAddress, uint64 _withdrawalDelay, address _withdrawDelayerContract) returns()
 962func (_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, _hermezGovernanceDAOAddress common.Address, _safetyAddress common.Address, _withdrawalDelay uint64, _withdrawDelayerContract common.Address) (*types.Transaction, error) {
 963	return _Hermez.Contract.InitializeHermez(&_Hermez.TransactOpts, _verifiers, _verifiersParams, _withdrawVerifier, _hermezAuctionContract, _tokenHEZ, _forgeL1L2BatchTimeout, _feeAddToken, _poseidon2Elements, _poseidon3Elements, _poseidon4Elements, _hermezGovernanceDAOAddress, _safetyAddress, _withdrawalDelay, _withdrawDelayerContract)
 964}
 965
 966// SafeMode is a paid mutator transaction binding the contract method 0xabe3219c.
 967//
 968// Solidity: function safeMode() returns()
 969func (_Hermez *HermezTransactor) SafeMode(opts *bind.TransactOpts) (*types.Transaction, error) {
 970	return _Hermez.contract.Transact(opts, "safeMode")
 971}
 972
 973// SafeMode is a paid mutator transaction binding the contract method 0xabe3219c.
 974//
 975// Solidity: function safeMode() returns()
 976func (_Hermez *HermezSession) SafeMode() (*types.Transaction, error) {
 977	return _Hermez.Contract.SafeMode(&_Hermez.TransactOpts)
 978}
 979
 980// SafeMode is a paid mutator transaction binding the contract method 0xabe3219c.
 981//
 982// Solidity: function safeMode() returns()
 983func (_Hermez *HermezTransactorSession) SafeMode() (*types.Transaction, error) {
 984	return _Hermez.Contract.SafeMode(&_Hermez.TransactOpts)
 985}
 986
 987// TokensReceived is a paid mutator transaction binding the contract method 0x0023de29.
 988//
 989// Solidity: function tokensReceived(address operator, address from, address to, uint256 amount, bytes userData, bytes operatorData) returns()
 990func (_Hermez *HermezTransactor) TokensReceived(opts *bind.TransactOpts, operator common.Address, from common.Address, to common.Address, amount *big.Int, userData []byte, operatorData []byte) (*types.Transaction, error) {
 991	return _Hermez.contract.Transact(opts, "tokensReceived", operator, from, to, amount, userData, operatorData)
 992}
 993
 994// TokensReceived is a paid mutator transaction binding the contract method 0x0023de29.
 995//
 996// Solidity: function tokensReceived(address operator, address from, address to, uint256 amount, bytes userData, bytes operatorData) returns()
 997func (_Hermez *HermezSession) TokensReceived(operator common.Address, from common.Address, to common.Address, amount *big.Int, userData []byte, operatorData []byte) (*types.Transaction, error) {
 998	return _Hermez.Contract.TokensReceived(&_Hermez.TransactOpts, operator, from, to, amount, userData, operatorData)
 999}
1000
1001// TokensReceived is a paid mutator transaction binding the contract method 0x0023de29.
1002//
1003// Solidity: function tokensReceived(address operator, address from, address to, uint256 amount, bytes userData, bytes operatorData) returns()
1004func (_Hermez *HermezTransactorSession) TokensReceived(operator common.Address, from common.Address, to common.Address, amount *big.Int, userData []byte, operatorData []byte) (*types.Transaction, error) {
1005	return _Hermez.Contract.TokensReceived(&_Hermez.TransactOpts, operator, from, to, amount, userData, operatorData)
1006}
1007
1008// UpdateBucketsParameters is a paid mutator transaction binding the contract method 0x68e95e53.
1009//
1010// Solidity: function updateBucketsParameters(uint256[4][5] arrayBuckets) returns()
1011func (_Hermez *HermezTransactor) UpdateBucketsParameters(opts *bind.TransactOpts, arrayBuckets [5][4]*big.Int) (*types.Transaction, error) {
1012	return _Hermez.contract.Transact(opts, "updateBucketsParameters", arrayBuckets)
1013}
1014
1015// UpdateBucketsParameters is a paid mutator transaction binding the contract method 0x68e95e53.
1016//
1017// Solidity: function updateBucketsParameters(uint256[4][5] arrayBuckets) returns()
1018func (_Hermez *HermezSession) UpdateBucketsParameters(arrayBuckets [5][4]*big.Int) (*types.Transaction, error) {
1019	return _Hermez.Contract.UpdateBucketsParameters(&_Hermez.TransactOpts, arrayBuckets)
1020}
1021
1022// UpdateBucketsParameters is a paid mutator transaction binding the contract method 0x68e95e53.
1023//
1024// Solidity: function updateBucketsParameters(uint256[4][5] arrayBuckets) returns()
1025func (_Hermez *HermezTransactorSession) UpdateBucketsParameters(arrayBuckets [5][4]*big.Int) (*types.Transaction, error) {
1026	return _Hermez.Contract.UpdateBucketsParameters(&_Hermez.TransactOpts, arrayBuckets)
1027}
1028
1029// UpdateFeeAddToken is a paid mutator transaction binding the contract method 0x314e5eda.
1030//
1031// Solidity: function updateFeeAddToken(uint256 newFeeAddToken) returns()
1032func (_Hermez *HermezTransactor) UpdateFeeAddToken(opts *bind.TransactOpts, newFeeAddToken *big.Int) (*types.Transaction, error) {
1033	return _Hermez.contract.Transact(opts, "updateFeeAddToken", newFeeAddToken)
1034}
1035
1036// UpdateFeeAddToken is a paid mutator transaction binding the contract method 0x314e5eda.
1037//
1038// Solidity: function updateFeeAddToken(uint256 newFeeAddToken) returns()
1039func (_Hermez *HermezSession) UpdateFeeAddToken(newFeeAddToken *big.Int) (*types.Transaction, error) {
1040	return _Hermez.Contract.UpdateFeeAddToken(&_Hermez.TransactOpts, newFeeAddToken)
1041}
1042
1043// UpdateFeeAddToken is a paid mutator transaction binding the contract method 0x314e5eda.
1044//
1045// Solidity: function updateFeeAddToken(uint256 newFeeAddToken) returns()
1046func (_Hermez *HermezTransactorSession) UpdateFeeAddToken(newFeeAddToken *big.Int) (*types.Transaction, error) {
1047	return _Hermez.Contract.UpdateFeeAddToken(&_Hermez.TransactOpts, newFeeAddToken)
1048}
1049
1050// UpdateForgeL1L2BatchTimeout is a paid mutator transaction binding the contract method 0xcbd7b5fb.
1051//
1052// Solidity: function updateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout) returns()
1053func (_Hermez *HermezTransactor) UpdateForgeL1L2BatchTimeout(opts *bind.TransactOpts, newForgeL1L2BatchTimeout uint8) (*types.Transaction, error) {
1054	return _Hermez.contract.Transact(opts, "updateForgeL1L2BatchTimeout", newForgeL1L2BatchTimeout)
1055}
1056
1057// UpdateForgeL1L2BatchTimeout is a paid mutator transaction binding the contract method 0xcbd7b5fb.
1058//
1059// Solidity: function updateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout) returns()
1060func (_Hermez *HermezSession) UpdateForgeL1L2BatchTimeout(newForgeL1L2BatchTimeout uint8) (*types.Transaction, error) {
1061	return _Hermez.Contract.UpdateForgeL1L2BatchTimeout(&_Hermez.TransactOpts, newForgeL1L2BatchTimeout)
1062}
1063
1064// UpdateForgeL1L2BatchTimeout is a paid mutator transaction binding the contract method 0xcbd7b5fb.
1065//
1066// Solidity: function updateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout) returns()
1067func (_Hermez *HermezTransactorSession) UpdateForgeL1L2BatchTimeout(newForgeL1L2BatchTimeout uint8) (*types.Transaction, error) {
1068	return _Hermez.Contract.UpdateForgeL1L2BatchTimeout(&_Hermez.TransactOpts, newForgeL1L2BatchTimeout)
1069}
1070
1071// UpdateTokenExchange is a paid mutator transaction binding the contract method 0x1a748c2d.
1072//
1073// Solidity: function updateTokenExchange(address[] addressArray, uint64[] valueArray) returns()
1074func (_Hermez *HermezTransactor) UpdateTokenExchange(opts *bind.TransactOpts, addressArray []common.Address, valueArray []uint64) (*types.Transaction, error) {
1075	return _Hermez.contract.Transact(opts, "updateTokenExchange", addressArray, valueArray)
1076}
1077
1078// UpdateTokenExchange is a paid mutator transaction binding the contract method 0x1a748c2d.
1079//
1080// Solidity: function updateTokenExchange(address[] addressArray, uint64[] valueArray) returns()
1081func (_Hermez *HermezSession) UpdateTokenExchange(addressArray []common.Address, valueArray []uint64) (*types.Transaction, error) {
1082	return _Hermez.Contract.UpdateTokenExchange(&_Hermez.TransactOpts, addressArray, valueArray)
1083}
1084
1085// UpdateTokenExchange is a paid mutator transaction binding the contract method 0x1a748c2d.
1086//
1087// Solidity: function updateTokenExchange(address[] addressArray, uint64[] valueArray) returns()
1088func (_Hermez *HermezTransactorSession) UpdateTokenExchange(addressArray []common.Address, valueArray []uint64) (*types.Transaction, error) {
1089	return _Hermez.Contract.UpdateTokenExchange(&_Hermez.TransactOpts, addressArray, valueArray)
1090}
1091
1092// UpdateWithdrawalDelay is a paid mutator transaction binding the contract method 0xef4a5c4a.
1093//
1094// Solidity: function updateWithdrawalDelay(uint64 newWithdrawalDelay) returns()
1095func (_Hermez *HermezTransactor) UpdateWithdrawalDelay(opts *bind.TransactOpts, newWithdrawalDelay uint64) (*types.Transaction, error) {
1096	return _Hermez.contract.Transact(opts, "updateWithdrawalDelay", newWithdrawalDelay)
1097}
1098
1099// UpdateWithdrawalDelay is a paid mutator transaction binding the contract method 0xef4a5c4a.
1100//
1101// Solidity: function updateWithdrawalDelay(uint64 newWithdrawalDelay) returns()
1102func (_Hermez *HermezSession) UpdateWithdrawalDelay(newWithdrawalDelay uint64) (*types.Transaction, error) {
1103	return _Hermez.Contract.UpdateWithdrawalDelay(&_Hermez.TransactOpts, newWithdrawalDelay)
1104}
1105
1106// UpdateWithdrawalDelay is a paid mutator transaction binding the contract method 0xef4a5c4a.
1107//
1108// Solidity: function updateWithdrawalDelay(uint64 newWithdrawalDelay) returns()
1109func (_Hermez *HermezTransactorSession) UpdateWithdrawalDelay(newWithdrawalDelay uint64) (*types.Transaction, error) {
1110	return _Hermez.Contract.UpdateWithdrawalDelay(&_Hermez.TransactOpts, newWithdrawalDelay)
1111}
1112
1113// WithdrawCircuit is a paid mutator transaction binding the contract method 0xc63cc3a0.
1114//
1115// Solidity: function withdrawCircuit(uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC, uint32 tokenID, uint192 amount, uint48 numExitRoot, uint48 idx, bool instantWithdraw) returns()
1116func (_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 *big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
1117	return _Hermez.contract.Transact(opts, "withdrawCircuit", proofA, proofB, proofC, tokenID, amount, numExitRoot, idx, instantWithdraw)
1118}
1119
1120// WithdrawCircuit is a paid mutator transaction binding the contract method 0xc63cc3a0.
1121//
1122// Solidity: function withdrawCircuit(uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC, uint32 tokenID, uint192 amount, uint48 numExitRoot, uint48 idx, bool instantWithdraw) returns()
1123func (_Hermez *HermezSession) WithdrawCircuit(proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int, tokenID uint32, amount *big.Int, numExitRoot *big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
1124	return _Hermez.Contract.WithdrawCircuit(&_Hermez.TransactOpts, proofA, proofB, proofC, tokenID, amount, numExitRoot, idx, instantWithdraw)
1125}
1126
1127// WithdrawCircuit is a paid mutator transaction binding the contract method 0xc63cc3a0.
1128//
1129// Solidity: function withdrawCircuit(uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC, uint32 tokenID, uint192 amount, uint48 numExitRoot, uint48 idx, bool instantWithdraw) returns()
1130func (_Hermez *HermezTransactorSession) WithdrawCircuit(proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int, tokenID uint32, amount *big.Int, numExitRoot *big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
1131	return _Hermez.Contract.WithdrawCircuit(&_Hermez.TransactOpts, proofA, proofB, proofC, tokenID, amount, numExitRoot, idx, instantWithdraw)
1132}
1133
1134// WithdrawMerkleProof is a paid mutator transaction binding the contract method 0x432dd51f.
1135//
1136// Solidity: function withdrawMerkleProof(uint32 tokenID, uint192 amount, uint256 babyPubKey, uint48 numExitRoot, uint256[] siblings, uint48 idx, bool instantWithdraw) returns()
1137func (_Hermez *HermezTransactor) WithdrawMerkleProof(opts *bind.TransactOpts, tokenID uint32, amount *big.Int, babyPubKey *big.Int, numExitRoot *big.Int, siblings []*big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
1138	return _Hermez.contract.Transact(opts, "withdrawMerkleProof", tokenID, amount, babyPubKey, numExitRoot, siblings, idx, instantWithdraw)
1139}
1140
1141// WithdrawMerkleProof is a paid mutator transaction binding the contract method 0x432dd51f.
1142//
1143// Solidity: function withdrawMerkleProof(uint32 tokenID, uint192 amount, uint256 babyPubKey, uint48 numExitRoot, uint256[] siblings, uint48 idx, bool instantWithdraw) returns()
1144func (_Hermez *HermezSession) WithdrawMerkleProof(tokenID uint32, amount *big.Int, babyPubKey *big.Int, numExitRoot *big.Int, siblings []*big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
1145	return _Hermez.Contract.WithdrawMerkleProof(&_Hermez.TransactOpts, tokenID, amount, babyPubKey, numExitRoot, siblings, idx, instantWithdraw)
1146}
1147
1148// WithdrawMerkleProof is a paid mutator transaction binding the contract method 0x432dd51f.
1149//
1150// Solidity: function withdrawMerkleProof(uint32 tokenID, uint192 amount, uint256 babyPubKey, uint48 numExitRoot, uint256[] siblings, uint48 idx, bool instantWithdraw) returns()
1151func (_Hermez *HermezTransactorSession) WithdrawMerkleProof(tokenID uint32, amount *big.Int, babyPubKey *big.Int, numExitRoot *big.Int, siblings []*big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
1152	return _Hermez.Contract.WithdrawMerkleProof(&_Hermez.TransactOpts, tokenID, amount, babyPubKey, numExitRoot, siblings, idx, instantWithdraw)
1153}
1154
1155// 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.
1156type HermezAddTokenIterator struct {
1157	Event *HermezAddToken // Event containing the contract specifics and raw log
1158
1159	contract *bind.BoundContract // Generic contract to use for unpacking event data
1160	event    string              // Event name to use for unpacking event data
1161
1162	logs chan types.Log        // Log channel receiving the found contract events
1163	sub  ethereum.Subscription // Subscription for errors, completion and termination
1164	done bool                  // Whether the subscription completed delivering logs
1165	fail error                 // Occurred error to stop iteration
1166}
1167
1168// Next advances the iterator to the subsequent event, returning whether there
1169// are any more events found. In case of a retrieval or parsing error, false is
1170// returned and Error() can be queried for the exact failure.
1171func (it *HermezAddTokenIterator) Next() bool {
1172	// If the iterator failed, stop iterating
1173	if it.fail != nil {
1174		return false
1175	}
1176	// If the iterator completed, deliver directly whatever's available
1177	if it.done {
1178		select {
1179		case log := <-it.logs:
1180			it.Event = new(HermezAddToken)
1181			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1182				it.fail = err
1183				return false
1184			}
1185			it.Event.Raw = log
1186			return true
1187
1188		default:
1189			return false
1190		}
1191	}
1192	// Iterator still in progress, wait for either a data or an error event
1193	select {
1194	case log := <-it.logs:
1195		it.Event = new(HermezAddToken)
1196		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1197			it.fail = err
1198			return false
1199		}
1200		it.Event.Raw = log
1201		return true
1202
1203	case err := <-it.sub.Err():
1204		it.done = true
1205		it.fail = err
1206		return it.Next()
1207	}
1208}
1209
1210// Error returns any retrieval or parsing error occurred during filtering.
1211func (it *HermezAddTokenIterator) Error() error {
1212	return it.fail
1213}
1214
1215// Close terminates the iteration process, releasing any pending underlying
1216// resources.
1217func (it *HermezAddTokenIterator) Close() error {
1218	it.sub.Unsubscribe()
1219	return nil
1220}
1221
1222// HermezAddToken represents a AddToken event raised by the Hermez contract.
1223type HermezAddToken struct {
1224	TokenAddress common.Address
1225	TokenID      uint32
1226	Raw          types.Log // Blockchain specific contextual infos
1227}
1228
1229// FilterAddToken is a free log retrieval operation binding the contract event 0xcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde.
1230//
1231// Solidity: event AddToken(address indexed tokenAddress, uint32 tokenID)
1232func (_Hermez *HermezFilterer) FilterAddToken(opts *bind.FilterOpts, tokenAddress []common.Address) (*HermezAddTokenIterator, error) {
1233
1234	var tokenAddressRule []interface{}
1235	for _, tokenAddressItem := range tokenAddress {
1236		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
1237	}
1238
1239	logs, sub, err := _Hermez.contract.FilterLogs(opts, "AddToken", tokenAddressRule)
1240	if err != nil {
1241		return nil, err
1242	}
1243	return &HermezAddTokenIterator{contract: _Hermez.contract, event: "AddToken", logs: logs, sub: sub}, nil
1244}
1245
1246// WatchAddToken is a free log subscription operation binding the contract event 0xcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde.
1247//
1248// Solidity: event AddToken(address indexed tokenAddress, uint32 tokenID)
1249func (_Hermez *HermezFilterer) WatchAddToken(opts *bind.WatchOpts, sink chan<- *HermezAddToken, tokenAddress []common.Address) (event.Subscription, error) {
1250
1251	var tokenAddressRule []interface{}
1252	for _, tokenAddressItem := range tokenAddress {
1253		tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
1254	}
1255
1256	logs, sub, err := _Hermez.contract.WatchLogs(opts, "AddToken", tokenAddressRule)
1257	if err != nil {
1258		return nil, err
1259	}
1260	return event.NewSubscription(func(quit <-chan struct{}) error {
1261		defer sub.Unsubscribe()
1262		for {
1263			select {
1264			case log := <-logs:
1265				// New log arrived, parse the event and forward to the user
1266				event := new(HermezAddToken)
1267				if err := _Hermez.contract.UnpackLog(event, "AddToken", log); err != nil {
1268					return err
1269				}
1270				event.Raw = log
1271
1272				select {
1273				case sink <- event:
1274				case err := <-sub.Err():
1275					return err
1276				case <-quit:
1277					return nil
1278				}
1279			case err := <-sub.Err():
1280				return err
1281			case <-quit:
1282				return nil
1283			}
1284		}
1285	}), nil
1286}
1287
1288// ParseAddToken is a log parse operation binding the contract event 0xcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde.
1289//
1290// Solidity: event AddToken(address indexed tokenAddress, uint32 tokenID)
1291func (_Hermez *HermezFilterer) ParseAddToken(log types.Log) (*HermezAddToken, error) {
1292	event := new(HermezAddToken)
1293	if err := _Hermez.contract.UnpackLog(event, "AddToken", log); err != nil {
1294		return nil, err
1295	}
1296	return event, nil
1297}
1298
1299// 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.
1300type HermezForgeBatchIterator struct {
1301	Event *HermezForgeBatch // Event containing the contract specifics and raw log
1302
1303	contract *bind.BoundContract // Generic contract to use for unpacking event data
1304	event    string              // Event name to use for unpacking event data
1305
1306	logs chan types.Log        // Log channel receiving the found contract events
1307	sub  ethereum.Subscription // Subscription for errors, completion and termination
1308	done bool                  // Whether the subscription completed delivering logs
1309	fail error                 // Occurred error to stop iteration
1310}
1311
1312// Next advances the iterator to the subsequent event, returning whether there
1313// are any more events found. In case of a retrieval or parsing error, false is
1314// returned and Error() can be queried for the exact failure.
1315func (it *HermezForgeBatchIterator) Next() bool {
1316	// If the iterator failed, stop iterating
1317	if it.fail != nil {
1318		return false
1319	}
1320	// If the iterator completed, deliver directly whatever's available
1321	if it.done {
1322		select {
1323		case log := <-it.logs:
1324			it.Event = new(HermezForgeBatch)
1325			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1326				it.fail = err
1327				return false
1328			}
1329			it.Event.Raw = log
1330			return true
1331
1332		default:
1333			return false
1334		}
1335	}
1336	// Iterator still in progress, wait for either a data or an error event
1337	select {
1338	case log := <-it.logs:
1339		it.Event = new(HermezForgeBatch)
1340		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1341			it.fail = err
1342			return false
1343		}
1344		it.Event.Raw = log
1345		return true
1346
1347	case err := <-it.sub.Err():
1348		it.done = true
1349		it.fail = err
1350		return it.Next()
1351	}
1352}
1353
1354// Error returns any retrieval or parsing error occurred during filtering.
1355func (it *HermezForgeBatchIterator) Error() error {
1356	return it.fail
1357}
1358
1359// Close terminates the iteration process, releasing any pending underlying
1360// resources.
1361func (it *HermezForgeBatchIterator) Close() error {
1362	it.sub.Unsubscribe()
1363	return nil
1364}
1365
1366// HermezForgeBatch represents a ForgeBatch event raised by the Hermez contract.
1367type HermezForgeBatch struct {
1368	BatchNum uint64
1369	Raw      types.Log // Blockchain specific contextual infos
1370}
1371
1372// FilterForgeBatch is a free log retrieval operation binding the contract event 0xd7ab70a9e6ed0d6985e74c5cb553d300a13a2217d58266922b275b72fe786982.
1373//
1374// Solidity: event ForgeBatch(uint64 indexed batchNum)
1375func (_Hermez *HermezFilterer) FilterForgeBatch(opts *bind.FilterOpts, batchNum []uint64) (*HermezForgeBatchIterator, error) {
1376
1377	var batchNumRule []interface{}
1378	for _, batchNumItem := range batchNum {
1379		batchNumRule = append(batchNumRule, batchNumItem)
1380	}
1381
1382	logs, sub, err := _Hermez.contract.FilterLogs(opts, "ForgeBatch", batchNumRule)
1383	if err != nil {
1384		return nil, err
1385	}
1386	return &HermezForgeBatchIterator{contract: _Hermez.contract, event: "ForgeBatch", logs: logs, sub: sub}, nil
1387}
1388
1389// WatchForgeBatch is a free log subscription operation binding the contract event 0xd7ab70a9e6ed0d6985e74c5cb553d300a13a2217d58266922b275b72fe786982.
1390//
1391// Solidity: event ForgeBatch(uint64 indexed batchNum)
1392func (_Hermez *HermezFilterer) WatchForgeBatch(opts *bind.WatchOpts, sink chan<- *HermezForgeBatch, batchNum []uint64) (event.Subscription, error) {
1393
1394	var batchNumRule []interface{}
1395	for _, batchNumItem := range batchNum {
1396		batchNumRule = append(batchNumRule, batchNumItem)
1397	}
1398
1399	logs, sub, err := _Hermez.contract.WatchLogs(opts, "ForgeBatch", batchNumRule)
1400	if err != nil {
1401		return nil, err
1402	}
1403	return event.NewSubscription(func(quit <-chan struct{}) error {
1404		defer sub.Unsubscribe()
1405		for {
1406			select {
1407			case log := <-logs:
1408				// New log arrived, parse the event and forward to the user
1409				event := new(HermezForgeBatch)
1410				if err := _Hermez.contract.UnpackLog(event, "ForgeBatch", log); err != nil {
1411					return err
1412				}
1413				event.Raw = log
1414
1415				select {
1416				case sink <- event:
1417				case err := <-sub.Err():
1418					return err
1419				case <-quit:
1420					return nil
1421				}
1422			case err := <-sub.Err():
1423				return err
1424			case <-quit:
1425				return nil
1426			}
1427		}
1428	}), nil
1429}
1430
1431// ParseForgeBatch is a log parse operation binding the contract event 0xd7ab70a9e6ed0d6985e74c5cb553d300a13a2217d58266922b275b72fe786982.
1432//
1433// Solidity: event ForgeBatch(uint64 indexed batchNum)
1434func (_Hermez *HermezFilterer) ParseForgeBatch(log types.Log) (*HermezForgeBatch, error) {
1435	event := new(HermezForgeBatch)
1436	if err := _Hermez.contract.UnpackLog(event, "ForgeBatch", log); err != nil {
1437		return nil, err
1438	}
1439	return event, nil
1440}
1441
1442// 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.
1443type HermezL1UserTxEventIterator struct {
1444	Event *HermezL1UserTxEvent // Event containing the contract specifics and raw log
1445
1446	contract *bind.BoundContract // Generic contract to use for unpacking event data
1447	event    string              // Event name to use for unpacking event data
1448
1449	logs chan types.Log        // Log channel receiving the found contract events
1450	sub  ethereum.Subscription // Subscription for errors, completion and termination
1451	done bool                  // Whether the subscription completed delivering logs
1452	fail error                 // Occurred error to stop iteration
1453}
1454
1455// Next advances the iterator to the subsequent event, returning whether there
1456// are any more events found. In case of a retrieval or parsing error, false is
1457// returned and Error() can be queried for the exact failure.
1458func (it *HermezL1UserTxEventIterator) Next() bool {
1459	// If the iterator failed, stop iterating
1460	if it.fail != nil {
1461		return false
1462	}
1463	// If the iterator completed, deliver directly whatever's available
1464	if it.done {
1465		select {
1466		case log := <-it.logs:
1467			it.Event = new(HermezL1UserTxEvent)
1468			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1469				it.fail = err
1470				return false
1471			}
1472			it.Event.Raw = log
1473			return true
1474
1475		default:
1476			return false
1477		}
1478	}
1479	// Iterator still in progress, wait for either a data or an error event
1480	select {
1481	case log := <-it.logs:
1482		it.Event = new(HermezL1UserTxEvent)
1483		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1484			it.fail = err
1485			return false
1486		}
1487		it.Event.Raw = log
1488		return true
1489
1490	case err := <-it.sub.Err():
1491		it.done = true
1492		it.fail = err
1493		return it.Next()
1494	}
1495}
1496
1497// Error returns any retrieval or parsing error occurred during filtering.
1498func (it *HermezL1UserTxEventIterator) Error() error {
1499	return it.fail
1500}
1501
1502// Close terminates the iteration process, releasing any pending underlying
1503// resources.
1504func (it *HermezL1UserTxEventIterator) Close() error {
1505	it.sub.Unsubscribe()
1506	return nil
1507}
1508
1509// HermezL1UserTxEvent represents a L1UserTxEvent event raised by the Hermez contract.
1510type HermezL1UserTxEvent struct {
1511	QueueIndex uint64
1512	Position   uint8
1513	L1UserTx   []byte
1514	Raw        types.Log // Blockchain specific contextual infos
1515}
1516
1517// FilterL1UserTxEvent is a free log retrieval operation binding the contract event 0x7f40be4e420c002c02fa9cad961f6a7620769d32d272f3f8c15e3ff59de9310e.
1518//
1519// Solidity: event L1UserTxEvent(uint64 indexed queueIndex, uint8 indexed position, bytes l1UserTx)
1520func (_Hermez *HermezFilterer) FilterL1UserTxEvent(opts *bind.FilterOpts, queueIndex []uint64, position []uint8) (*HermezL1UserTxEventIterator, error) {
1521
1522	var queueIndexRule []interface{}
1523	for _, queueIndexItem := range queueIndex {
1524		queueIndexRule = append(queueIndexRule, queueIndexItem)
1525	}
1526	var positionRule []interface{}
1527	for _, positionItem := range position {
1528		positionRule = append(positionRule, positionItem)
1529	}
1530
1531	logs, sub, err := _Hermez.contract.FilterLogs(opts, "L1UserTxEvent", queueIndexRule, positionRule)
1532	if err != nil {
1533		return nil, err
1534	}
1535	return &HermezL1UserTxEventIterator{contract: _Hermez.contract, event: "L1UserTxEvent", logs: logs, sub: sub}, nil
1536}
1537
1538// WatchL1UserTxEvent is a free log subscription operation binding the contract event 0x7f40be4e420c002c02fa9cad961f6a7620769d32d272f3f8c15e3ff59de9310e.
1539//
1540// Solidity: event L1UserTxEvent(uint64 indexed queueIndex, uint8 indexed position, bytes l1UserTx)
1541func (_Hermez *HermezFilterer) WatchL1UserTxEvent(opts *bind.WatchOpts, sink chan<- *HermezL1UserTxEvent, queueIndex []uint64, position []uint8) (event.Subscription, error) {
1542
1543	var queueIndexRule []interface{}
1544	for _, queueIndexItem := range queueIndex {
1545		queueIndexRule = append(queueIndexRule, queueIndexItem)
1546	}
1547	var positionRule []interface{}
1548	for _, positionItem := range position {
1549		positionRule = append(positionRule, positionItem)
1550	}
1551
1552	logs, sub, err := _Hermez.contract.WatchLogs(opts, "L1UserTxEvent", queueIndexRule, positionRule)
1553	if err != nil {
1554		return nil, err
1555	}
1556	return event.NewSubscription(func(quit <-chan struct{}) error {
1557		defer sub.Unsubscribe()
1558		for {
1559			select {
1560			case log := <-logs:
1561				// New log arrived, parse the event and forward to the user
1562				event := new(HermezL1UserTxEvent)
1563				if err := _Hermez.contract.UnpackLog(event, "L1UserTxEvent", log); err != nil {
1564					return err
1565				}
1566				event.Raw = log
1567
1568				select {
1569				case sink <- event:
1570				case err := <-sub.Err():
1571					return err
1572				case <-quit:
1573					return nil
1574				}
1575			case err := <-sub.Err():
1576				return err
1577			case <-quit:
1578				return nil
1579			}
1580		}
1581	}), nil
1582}
1583
1584// ParseL1UserTxEvent is a log parse operation binding the contract event 0x7f40be4e420c002c02fa9cad961f6a7620769d32d272f3f8c15e3ff59de9310e.
1585//
1586// Solidity: event L1UserTxEvent(uint64 indexed queueIndex, uint8 indexed position, bytes l1UserTx)
1587func (_Hermez *HermezFilterer) ParseL1UserTxEvent(log types.Log) (*HermezL1UserTxEvent, error) {
1588	event := new(HermezL1UserTxEvent)
1589	if err := _Hermez.contract.UnpackLog(event, "L1UserTxEvent", log); err != nil {
1590		return nil, err
1591	}
1592	return event, nil
1593}
1594
1595// 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.
1596type HermezUpdateFeeAddTokenIterator struct {
1597	Event *HermezUpdateFeeAddToken // Event containing the contract specifics and raw log
1598
1599	contract *bind.BoundContract // Generic contract to use for unpacking event data
1600	event    string              // Event name to use for unpacking event data
1601
1602	logs chan types.Log        // Log channel receiving the found contract events
1603	sub  ethereum.Subscription // Subscription for errors, completion and termination
1604	done bool                  // Whether the subscription completed delivering logs
1605	fail error                 // Occurred error to stop iteration
1606}
1607
1608// Next advances the iterator to the subsequent event, returning whether there
1609// are any more events found. In case of a retrieval or parsing error, false is
1610// returned and Error() can be queried for the exact failure.
1611func (it *HermezUpdateFeeAddTokenIterator) Next() bool {
1612	// If the iterator failed, stop iterating
1613	if it.fail != nil {
1614		return false
1615	}
1616	// If the iterator completed, deliver directly whatever's available
1617	if it.done {
1618		select {
1619		case log := <-it.logs:
1620			it.Event = new(HermezUpdateFeeAddToken)
1621			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1622				it.fail = err
1623				return false
1624			}
1625			it.Event.Raw = log
1626			return true
1627
1628		default:
1629			return false
1630		}
1631	}
1632	// Iterator still in progress, wait for either a data or an error event
1633	select {
1634	case log := <-it.logs:
1635		it.Event = new(HermezUpdateFeeAddToken)
1636		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1637			it.fail = err
1638			return false
1639		}
1640		it.Event.Raw = log
1641		return true
1642
1643	case err := <-it.sub.Err():
1644		it.done = true
1645		it.fail = err
1646		return it.Next()
1647	}
1648}
1649
1650// Error returns any retrieval or parsing error occurred during filtering.
1651func (it *HermezUpdateFeeAddTokenIterator) Error() error {
1652	return it.fail
1653}
1654
1655// Close terminates the iteration process, releasing any pending underlying
1656// resources.
1657func (it *HermezUpdateFeeAddTokenIterator) Close() error {
1658	it.sub.Unsubscribe()
1659	return nil
1660}
1661
1662// HermezUpdateFeeAddToken represents a UpdateFeeAddToken event raised by the Hermez contract.
1663type HermezUpdateFeeAddToken struct {
1664	NewFeeAddToken *big.Int
1665	Raw            types.Log // Blockchain specific contextual infos
1666}
1667
1668// FilterUpdateFeeAddToken is a free log retrieval operation binding the contract event 0xd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c1.
1669//
1670// Solidity: event UpdateFeeAddToken(uint256 newFeeAddToken)
1671func (_Hermez *HermezFilterer) FilterUpdateFeeAddToken(opts *bind.FilterOpts) (*HermezUpdateFeeAddTokenIterator, error) {
1672
1673	logs, sub, err := _Hermez.contract.FilterLogs(opts, "UpdateFeeAddToken")
1674	if err != nil {
1675		return nil, err
1676	}
1677	return &HermezUpdateFeeAddTokenIterator{contract: _Hermez.contract, event: "UpdateFeeAddToken", logs: logs, sub: sub}, nil
1678}
1679
1680// WatchUpdateFeeAddToken is a free log subscription operation binding the contract event 0xd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c1.
1681//
1682// Solidity: event UpdateFeeAddToken(uint256 newFeeAddToken)
1683func (_Hermez *HermezFilterer) WatchUpdateFeeAddToken(opts *bind.WatchOpts, sink chan<- *HermezUpdateFeeAddToken) (event.Subscription, error) {
1684
1685	logs, sub, err := _Hermez.contract.WatchLogs(opts, "UpdateFeeAddToken")
1686	if err != nil {
1687		return nil, err
1688	}
1689	return event.NewSubscription(func(quit <-chan struct{}) error {
1690		defer sub.Unsubscribe()
1691		for {
1692			select {
1693			case log := <-logs:
1694				// New log arrived, parse the event and forward to the user
1695				event := new(HermezUpdateFeeAddToken)
1696				if err := _Hermez.contract.UnpackLog(event, "UpdateFeeAddToken", log); err != nil {
1697					return err
1698				}
1699				event.Raw = log
1700
1701				select {
1702				case sink <- event:
1703				case err := <-sub.Err():
1704					return err
1705				case <-quit:
1706					return nil
1707				}
1708			case err := <-sub.Err():
1709				return err
1710			case <-quit:
1711				return nil
1712			}
1713		}
1714	}), nil
1715}
1716
1717// ParseUpdateFeeAddToken is a log parse operation binding the contract event 0xd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c1.
1718//
1719// Solidity: event UpdateFeeAddToken(uint256 newFeeAddToken)
1720func (_Hermez *HermezFilterer) ParseUpdateFeeAddToken(log types.Log) (*HermezUpdateFeeAddToken, error) {
1721	event := new(HermezUpdateFeeAddToken)
1722	if err := _Hermez.contract.UnpackLog(event, "UpdateFeeAddToken", log); err != nil {
1723		return nil, err
1724	}
1725	return event, nil
1726}
1727
1728// 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.
1729type HermezUpdateForgeL1L2BatchTimeoutIterator struct {
1730	Event *HermezUpdateForgeL1L2BatchTimeout // Event containing the contract specifics and raw log
1731
1732	contract *bind.BoundContract // Generic contract to use for unpacking event data
1733	event    string              // Event name to use for unpacking event data
1734
1735	logs chan types.Log        // Log channel receiving the found contract events
1736	sub  ethereum.Subscription // Subscription for errors, completion and termination
1737	done bool                  // Whether the subscription completed delivering logs
1738	fail error                 // Occurred error to stop iteration
1739}
1740
1741// Next advances the iterator to the subsequent event, returning whether there
1742// are any more events found. In case of a retrieval or parsing error, false is
1743// returned and Error() can be queried for the exact failure.
1744func (it *HermezUpdateForgeL1L2BatchTimeoutIterator) Next() bool {
1745	// If the iterator failed, stop iterating
1746	if it.fail != nil {
1747		return false
1748	}
1749	// If the iterator completed, deliver directly whatever's available
1750	if it.done {
1751		select {
1752		case log := <-it.logs:
1753			it.Event = new(HermezUpdateForgeL1L2BatchTimeout)
1754			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1755				it.fail = err
1756				return false
1757			}
1758			it.Event.Raw = log
1759			return true
1760
1761		default:
1762			return false
1763		}
1764	}
1765	// Iterator still in progress, wait for either a data or an error event
1766	select {
1767	case log := <-it.logs:
1768		it.Event = new(HermezUpdateForgeL1L2BatchTimeout)
1769		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1770			it.fail = err
1771			return false
1772		}
1773		it.Event.Raw = log
1774		return true
1775
1776	case err := <-it.sub.Err():
1777		it.done = true
1778		it.fail = err
1779		return it.Next()
1780	}
1781}
1782
1783// Error returns any retrieval or parsing error occurred during filtering.
1784func (it *HermezUpdateForgeL1L2BatchTimeoutIterator) Error() error {
1785	return it.fail
1786}
1787
1788// Close terminates the iteration process, releasing any pending underlying
1789// resources.
1790func (it *HermezUpdateForgeL1L2BatchTimeoutIterator) Close() error {
1791	it.sub.Unsubscribe()
1792	return nil
1793}
1794
1795// HermezUpdateForgeL1L2BatchTimeout represents a UpdateForgeL1L2BatchTimeout event raised by the Hermez contract.
1796type HermezUpdateForgeL1L2BatchTimeout struct {
1797	NewForgeL1L2BatchTimeout uint8
1798	Raw                      types.Log // Blockchain specific contextual infos
1799}
1800
1801// FilterUpdateForgeL1L2BatchTimeout is a free log retrieval operation binding the contract event 0xff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac974431.
1802//
1803// Solidity: event UpdateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout)
1804func (_Hermez *HermezFilterer) FilterUpdateForgeL1L2BatchTimeout(opts *bind.FilterOpts) (*HermezUpdateForgeL1L2BatchTimeoutIterator, error) {
1805
1806	logs, sub, err := _Hermez.contract.FilterLogs(opts, "UpdateForgeL1L2BatchTimeout")
1807	if err != nil {
1808		return nil, err
1809	}
1810	return &HermezUpdateForgeL1L2BatchTimeoutIterator{contract: _Hermez.contract, event: "UpdateForgeL1L2BatchTimeout", logs: logs, sub: sub}, nil
1811}
1812
1813// WatchUpdateForgeL1L2BatchTimeout is a free log subscription operation binding the contract event 0xff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac974431.
1814//
1815// Solidity: event UpdateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout)
1816func (_Hermez *HermezFilterer) WatchUpdateForgeL1L2BatchTimeout(opts *bind.WatchOpts, sink chan<- *HermezUpdateForgeL1L2BatchTimeout) (event.Subscription, error) {
1817
1818	logs, sub, err := _Hermez.contract.WatchLogs(opts, "UpdateForgeL1L2BatchTimeout")
1819	if err != nil {
1820		return nil, err
1821	}
1822	return event.NewSubscription(func(quit <-chan struct{}) error {
1823		defer sub.Unsubscribe()
1824		for {
1825			select {
1826			case log := <-logs:
1827				// New log arrived, parse the event and forward to the user
1828				event := new(HermezUpdateForgeL1L2BatchTimeout)
1829				if err := _Hermez.contract.UnpackLog(event, "UpdateForgeL1L2BatchTimeout", log); err != nil {
1830					return err
1831				}
1832				event.Raw = log
1833
1834				select {
1835				case sink <- event:
1836				case err := <-sub.Err():
1837					return err
1838				case <-quit:
1839					return nil
1840				}
1841			case err := <-sub.Err():
1842				return err
1843			case <-quit:
1844				return nil
1845			}
1846		}
1847	}), nil
1848}
1849
1850// ParseUpdateForgeL1L2BatchTimeout is a log parse operation binding the contract event 0xff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac974431.
1851//
1852// Solidity: event UpdateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout)
1853func (_Hermez *HermezFilterer) ParseUpdateForgeL1L2BatchTimeout(log types.Log) (*HermezUpdateForgeL1L2BatchTimeout, error) {
1854	event := new(HermezUpdateForgeL1L2BatchTimeout)
1855	if err := _Hermez.contract.UnpackLog(event, "UpdateForgeL1L2BatchTimeout", log); err != nil {
1856		return nil, err
1857	}
1858	return event, nil
1859}
1860
1861// 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.
1862type HermezWithdrawEventIterator struct {
1863	Event *HermezWithdrawEvent // Event containing the contract specifics and raw log
1864
1865	contract *bind.BoundContract // Generic contract to use for unpacking event data
1866	event    string              // Event name to use for unpacking event data
1867
1868	logs chan types.Log        // Log channel receiving the found contract events
1869	sub  ethereum.Subscription // Subscription for errors, completion and termination
1870	done bool                  // Whether the subscription completed delivering logs
1871	fail error                 // Occurred error to stop iteration
1872}
1873
1874// Next advances the iterator to the subsequent event, returning whether there
1875// are any more events found. In case of a retrieval or parsing error, false is
1876// returned and Error() can be queried for the exact failure.
1877func (it *HermezWithdrawEventIterator) Next() bool {
1878	// If the iterator failed, stop iterating
1879	if it.fail != nil {
1880		return false
1881	}
1882	// If the iterator completed, deliver directly whatever's available
1883	if it.done {
1884		select {
1885		case log := <-it.logs:
1886			it.Event = new(HermezWithdrawEvent)
1887			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1888				it.fail = err
1889				return false
1890			}
1891			it.Event.Raw = log
1892			return true
1893
1894		default:
1895			return false
1896		}
1897	}
1898	// Iterator still in progress, wait for either a data or an error event
1899	select {
1900	case log := <-it.logs:
1901		it.Event = new(HermezWithdrawEvent)
1902		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1903			it.fail = err
1904			return false
1905		}
1906		it.Event.Raw = log
1907		return true
1908
1909	case err := <-it.sub.Err():
1910		it.done = true
1911		it.fail = err
1912		return it.Next()
1913	}
1914}
1915
1916// Error returns any retrieval or parsing error occurred during filtering.
1917func (it *HermezWithdrawEventIterator) Error() error {
1918	return it.fail
1919}
1920
1921// Close terminates the iteration process, releasing any pending underlying
1922// resources.
1923func (it *HermezWithdrawEventIterator) Close() error {
1924	it.sub.Unsubscribe()
1925	return nil
1926}
1927
1928// HermezWithdrawEvent represents a WithdrawEvent event raised by the Hermez contract.
1929type HermezWithdrawEvent struct {
1930	Idx             *big.Int
1931	NumExitRoot     *big.Int
1932	InstantWithdraw bool
1933	Raw             types.Log // Blockchain specific contextual infos
1934}
1935
1936// FilterWithdrawEvent is a free log retrieval operation binding the contract event 0x92dd99230eaf5e3f1238fbbd0d72b34e8c2ad759886075bfc9f426ebeeea34f0.
1937//
1938// Solidity: event WithdrawEvent(uint48 indexed idx, uint48 indexed numExitRoot, bool indexed instantWithdraw)
1939func (_Hermez *HermezFilterer) FilterWithdrawEvent(opts *bind.FilterOpts, idx []*big.Int, numExitRoot []*big.Int, instantWithdraw []bool) (*HermezWithdrawEventIterator, error) {
1940
1941	var idxRule []interface{}
1942	for _, idxItem := range idx {
1943		idxRule = append(idxRule, idxItem)
1944	}
1945	var numExitRootRule []interface{}
1946	for _, numExitRootItem := range numExitRoot {
1947		numExitRootRule = append(numExitRootRule, numExitRootItem)
1948	}
1949	var instantWithdrawRule []interface{}
1950	for _, instantWithdrawItem := range instantWithdraw {
1951		instantWithdrawRule = append(instantWithdrawRule, instantWithdrawItem)
1952	}
1953
1954	logs, sub, err := _Hermez.contract.FilterLogs(opts, "WithdrawEvent", idxRule, numExitRootRule, instantWithdrawRule)
1955	if err != nil {
1956		return nil, err
1957	}
1958	return &HermezWithdrawEventIterator{contract: _Hermez.contract, event: "WithdrawEvent", logs: logs, sub: sub}, nil
1959}
1960
1961// WatchWithdrawEvent is a free log subscription operation binding the contract event 0x92dd99230eaf5e3f1238fbbd0d72b34e8c2ad759886075bfc9f426ebeeea34f0.
1962//
1963// Solidity: event WithdrawEvent(uint48 indexed idx, uint48 indexed numExitRoot, bool indexed instantWithdraw)
1964func (_Hermez *HermezFilterer) WatchWithdrawEvent(opts *bind.WatchOpts, sink chan<- *HermezWithdrawEvent, idx []*big.Int, numExitRoot []*big.Int, instantWithdraw []bool) (event.Subscription, error) {
1965
1966	var idxRule []interface{}
1967	for _, idxItem := range idx {
1968		idxRule = append(idxRule, idxItem)
1969	}
1970	var numExitRootRule []interface{}
1971	for _, numExitRootItem := range numExitRoot {
1972		numExitRootRule = append(numExitRootRule, numExitRootItem)
1973	}
1974	var instantWithdrawRule []interface{}
1975	for _, instantWithdrawItem := range instantWithdraw {
1976		instantWithdrawRule = append(instantWithdrawRule, instantWithdrawItem)
1977	}
1978
1979	logs, sub, err := _Hermez.contract.WatchLogs(opts, "WithdrawEvent", idxRule, numExitRootRule, instantWithdrawRule)
1980	if err != nil {
1981		return nil, err
1982	}
1983	return event.NewSubscription(func(quit <-chan struct{}) error {
1984		defer sub.Unsubscribe()
1985		for {
1986			select {
1987			case log := <-logs:
1988				// New log arrived, parse the event and forward to the user
1989				event := new(HermezWithdrawEvent)
1990				if err := _Hermez.contract.UnpackLog(event, "WithdrawEvent", log); err != nil {
1991					return err
1992				}
1993				event.Raw = log
1994
1995				select {
1996				case sink <- event:
1997				case err := <-sub.Err():
1998					return err
1999				case <-quit:
2000					return nil
2001				}
2002			case err := <-sub.Err():
2003				return err
2004			case <-quit:
2005				return nil
2006			}
2007		}
2008	}), nil
2009}
2010
2011// ParseWithdrawEvent is a log parse operation binding the contract event 0x92dd99230eaf5e3f1238fbbd0d72b34e8c2ad759886075bfc9f426ebeeea34f0.
2012//
2013// Solidity: event WithdrawEvent(uint48 indexed idx, uint48 indexed numExitRoot, bool indexed instantWithdraw)
2014func (_Hermez *HermezFilterer) ParseWithdrawEvent(log types.Log) (*HermezWithdrawEvent, error) {
2015	event := new(HermezWithdrawEvent)
2016	if err := _Hermez.contract.UnpackLog(event, "WithdrawEvent", log); err != nil {
2017		return nil, err
2018	}
2019	return event, nil
2020}