You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2680 lines
164 KiB

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