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.

2020 lines
138 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\":\"uint64\",\"name\":\"batchNum\",\"type\":\"uint64\"}],\"name\":\"ForgeBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"queueIndex\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint8\",\"name\":\"position\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"l1UserTx\",\"type\":\"bytes\"}],\"name\":\"L1UserTxEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newFeeAddToken\",\"type\":\"uint256\"}],\"name\":\"UpdateFeeAddToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"newForgeL1L2BatchTimeout\",\"type\":\"uint8\"}],\"name\":\"UpdateForgeL1L2BatchTimeout\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint48\",\"name\":\"idx\",\"type\":\"uint48\"},{\"indexed\":true,\"internalType\":\"uint48\",\"name\":\"numExitRoot\",\"type\":\"uint48\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"instantWithdraw\",\"type\":\"bool\"}],\"name\":\"WithdrawEvent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ABSOLUTE_MAX_L1L2BATCHTIMEOUT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"babyPubKey\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"fromIdx\",\"type\":\"uint48\"},{\"internalType\":\"uint16\",\"name\":\"loadAmountF\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"amountF\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"tokenID\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"toIdx\",\"type\":\"uint48\"},{\"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\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"exitNullifierMap\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"exitRootsMap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeAddToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newLastIdx\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"newStRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newExitRoot\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedL1CoordinatorTx\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"l2TxsData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"feeIdxCoordinator\",\"type\":\"bytes\"},{\"internalType\":\"uint8\",\"name\":\"verifierIdx\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"l1Batch\",\"type\":\"bool\"},{\"internalType\":\"uint256[2]\",\"name\":\"proofA\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"proofB\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"proofC\",\"type\":\"uint256[2]\"}],\"name\":\"forgeBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"forgeL1L2BatchTimeout\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hermezAuctionContract\",\"outputs\":[{\"internalType\":\"contractAuctionInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hermezGovernanceDAOAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_verifiers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_verifiersParams\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"_withdrawVerifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_hermezAuctionContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenHEZ\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"_forgeL1L2BatchTimeout\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"_feeAddToken\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_poseidon2Elements\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_poseidon3Elements\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_poseidon4Elements\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_hermezGovernanceDAOAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_safetyAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_withdrawalDelay\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_withdrawDelayerContract\",\"type\":\"address\"}],\"name\":\"initializeHermez\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint192\",\"name\":\"amount\",\"type\":\"uint192\"}],\"name\":\"instantWithdrawalViewer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastForgedBatch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastIdx\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastL1L2Batch\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"mapL1TxQueue\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextL1FillingQueue\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextL1ToForgeQueue\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerTokensCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rollupVerifiers\",\"outputs\":[{\"internalType\":\"contractVerifierRollupInterface\",\"name\":\"verifierInterface\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxTx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nLevels\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"safeMode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"safetyAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"stateRootMap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenExchange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenHEZ\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenList\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenMap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[4][5]\",\"name\":\"arrayBuckets\",\"type\":\"uint256[4][5]\"}],\"name\":\"updateBucketsParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newFeeAddToken\",\"type\":\"uint256\"}],\"name\":\"updateFeeAddToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"newForgeL1L2BatchTimeout\",\"type\":\"uint8\"}],\"name\":\"updateForgeL1L2BatchTimeout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addressArray\",\"type\":\"address[]\"},{\"internalType\":\"uint64[]\",\"name\":\"valueArray\",\"type\":\"uint64[]\"}],\"name\":\"updateTokenExchange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"newWithdrawalDelay\",\"type\":\"uint64\"}],\"name\":\"updateWithdrawalDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"proofA\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"proofB\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"proofC\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint32\",\"name\":\"tokenID\",\"type\":\"uint32\"},{\"internalType\":\"uint192\",\"name\":\"amount\",\"type\":\"uint192\"},{\"internalType\":\"uint48\",\"name\":\"numExitRoot\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"idx\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"instantWithdraw\",\"type\":\"bool\"}],\"name\":\"withdrawCircuit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawDelayerContract\",\"outputs\":[{\"internalType\":\"contractWithdrawalDelayerInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"tokenID\",\"type\":\"uint32\"},{\"internalType\":\"uint192\",\"name\":\"amount\",\"type\":\"uint192\"},{\"internalType\":\"uint256\",\"name\":\"babyPubKey\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"numExitRoot\",\"type\":\"uint48\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint48\",\"name\":\"idx\",\"type\":\"uint48\"},{\"internalType\":\"bool\",\"name\":\"instantWithdraw\",\"type\":\"bool\"}],\"name\":\"withdrawMerkleProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawVerifier\",\"outputs\":[{\"internalType\":\"contractVerifierWithdrawInterface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawalDelay\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]"
  26. // HermezBin is the compiled bytecode used for deploying new contracts.
  27. var HermezBin = "0x608060405234801561001057600080fd5b50615367806100206000396000f3fe6080604052600436106102245760003560e01c806386c6acc111610123578063bded9bb8116100ab578063dd46bf841161006f578063dd46bf8414610d6a578063e56e27ae14610d7f578063e796fcf314610d94578063e9b5269c14610e3c578063ef4a5c4a14610e7d57610224565b8063bded9bb814610c77578063c63cc3a014610c8c578063cbd7b5fb14610cf8578063d0f32e6714610d25578063d486645c14610d3a57610224565b80639ead7222116100f25780639ead722214610bf95780639f34e9a314610c23578063a327583814610c38578063a7ab696114610c4d578063abe3219c14610c6257610224565b806386c6acc114610a99578063886df58714610acc57806395a09f2a14610b795780639b51fb0d14610ba457610224565b8063432dd51f116101b15780636e7e1365116101755780636e7e13651461087d57806370c2f1c0146109cf57806379a135e314610a5a57806384ef9ed414610a6f578063864eb16414610a8457610224565b8063432dd51f1461051c57806344e0b2ce146106085780634ee51c261461061d578063506d5463146107b957806368e95e53146107ec57610224565b80631b0a8223116101f85780631b0a8223146104045780632bd8362614610435578063314e5eda1461044a578063375110aa1461047457806338330200146104ca57610224565b80624aca6e146102295780630dd94b961461026e5780630ee8e52b146102bd5780631a748c2d146102d2575b600080fd5b34801561023557600080fd5b5061025c6004803603602081101561024c57600080fd5b50356001600160a01b0316610eb0565b60408051918252519081900360200190f35b34801561027a57600080fd5b506102a16004803603602081101561029157600080fd5b50356001600160a01b0316610ec2565b604080516001600160401b039092168252519081900360200190f35b3480156102c957600080fd5b506102a1610edd565b3480156102de57600080fd5b50610402600480360360408110156102f557600080fd5b810190602081018135600160201b81111561030f57600080fd5b82018360208201111561032157600080fd5b803590602001918460208302840111600160201b8311171561034257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561039157600080fd5b8201836020820111156103a357600080fd5b803590602001918460208302840111600160201b831117156103c457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610ef3945050505050565b005b34801561041057600080fd5b50610419610ffb565b604080516001600160a01b039092168252519081900360200190f35b34801561044157600080fd5b5061041961100a565b34801561045657600080fd5b506104026004803603602081101561046d57600080fd5b5035611019565b34801561048057600080fd5b506104b66004803603604081101561049757600080fd5b5080356001600160a01b031690602001356001600160c01b031661109d565b604080519115158252519081900360200190f35b3480156104d657600080fd5b506104f4600480360360208110156104ed57600080fd5b5035611139565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b34801561052857600080fd5b50610402600480360360e081101561053f57600080fd5b63ffffffff823516916001600160c01b036020820135169160408201359165ffffffffffff6060820135169181019060a081016080820135600160201b81111561058857600080fd5b82018360208201111561059a57600080fd5b803590602001918460208302840111600160201b831117156105bb57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505065ffffffffffff83351693505050602001351515611173565b34801561061457600080fd5b506102a1611358565b34801561062957600080fd5b5061040260048036036101c081101561064157600080fd5b810190602081018135600160201b81111561065b57600080fd5b82018360208201111561066d57600080fd5b803590602001918460208302840111600160201b8311171561068e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156106dd57600080fd5b8201836020820111156106ef57600080fd5b803590602001918460208302840111600160201b8311171561071057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550505081356001600160a01b0390811693506020830135811692604081013582169250606081013560ff169160808201359160a081013582169160c082013581169160e08101358216916101008201358116916101208101358216916101408201356001600160401b031691610160013516611367565b3480156107c557600080fd5b5061025c600480360360208110156107dc57600080fd5b50356001600160401b0316611567565b3480156107f857600080fd5b50610402600480360361028081101561081057600080fd5b6040805160a0810190915290820191906102808201908260056000835b8282101561086e576040805160808181019092529080840286019060049083908390808284376000920191909152505050815260019091019060200161082d565b50929550611579945050505050565b34801561088957600080fd5b5061040260048036036102008110156108a157600080fd5b65ffffffffffff8235169160208101359160408201359190810190608081016060820135600160201b8111156108d657600080fd5b8201836020820111156108e857600080fd5b803590602001918460018302840111600160201b8311171561090957600080fd5b919390929091602081019035600160201b81111561092657600080fd5b82018360208201111561093857600080fd5b803590602001918460018302840111600160201b8311171561095957600080fd5b919390929091602081019035600160201b81111561097657600080fd5b82018360208201111561098857600080fd5b803590602001918460018302840111600160201b831117156109a957600080fd5b919350915060ff81351690602081013515159060408101906080810190610100016116f3565b3480156109db57600080fd5b50610402600480360360408110156109f257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610a1c57600080fd5b820183602082011115610a2e57600080fd5b803590602001918460018302840111600160201b83111715610a4f57600080fd5b509092509050611b74565b348015610a6657600080fd5b50610419611d42565b348015610a7b57600080fd5b506102a1611d51565b348015610a9057600080fd5b50610419611d60565b348015610aa557600080fd5b5061025c60048036036020811015610abc57600080fd5b50356001600160401b0316611d6f565b610402600480360360e0811015610ae257600080fd5b81359165ffffffffffff602082013581169261ffff604084013581169360608101359091169263ffffffff6080830135169260a0830135909116919081019060e0810160c0820135600160201b811115610b3b57600080fd5b820183602082011115610b4d57600080fd5b803590602001918460018302840111600160201b83111715610b6e57600080fd5b509092509050611d81565b348015610b8557600080fd5b50610b8e611ef0565b6040805160ff9092168252519081900360200190f35b348015610bb057600080fd5b50610bce60048036036020811015610bc757600080fd5b5035611ef5565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b348015610c0557600080fd5b5061041960048036036020811015610c1c57600080fd5b5035611f27565b348015610c2f57600080fd5b5061025c611f4e565b348015610c4457600080fd5b50610b8e611f54565b348015610c5957600080fd5b506102a1611f64565b348015610c6e57600080fd5b50610402611f7a565b348015610c8357600080fd5b5061025c6120dc565b348015610c9857600080fd5b5061040260048036036101a0811015610cb057600080fd5b506040810160c0820163ffffffff610100840135166001600160c01b036101208501351665ffffffffffff6101408601358116906101608701351661018087013515156120e2565b348015610d0457600080fd5b5061040260048036036020811015610d1b57600080fd5b503560ff166124b1565b348015610d3157600080fd5b506102a1612591565b348015610d4657600080fd5b50610d4f6125a7565b6040805165ffffffffffff9092168252519081900360200190f35b348015610d7657600080fd5b506104196125bc565b348015610d8b57600080fd5b506104196125cb565b348015610da057600080fd5b50610dc760048036036020811015610db757600080fd5b50356001600160401b03166125da565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610e01578181015183820152602001610de9565b50505050905090810190601f168015610e2e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e4857600080fd5b506104b660048036036040811015610e5f57600080fd5b5080356001600160401b0316906020013565ffffffffffff16612675565b348015610e8957600080fd5b5061040260048036036020811015610ea057600080fd5b50356001600160401b0316612695565b605a6020526000908152604090205481565b6052602052600090815260409020546001600160401b031681565b605e54600160801b90046001600160401b031681565b604f546001600160a01b03163314610f3c5760405162461bcd60e51b815260040180806020018281038252603f815260200180615193603f913960400191505060405180910390fd5b8051825114610f7c5760405162461bcd60e51b8152600401808060200182810382526041815260200180614a9f6041913960600191505060405180910390fd5b60005b8251811015610ff657818181518110610f9457fe5b602002602001015160526000858481518110610fac57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805467ffffffffffffffff19166001600160401b0392909216919091179055600101610f7f565b505050565b6051546001600160a01b031681565b605c546001600160a01b031681565b604f546001600160a01b031633146110625760405162461bcd60e51b815260040180806020018281038252603f815260200180615193603f913960400191505060405180910390fd5b605b8190556040805182815290517fd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c19181900360200190a150565b6000806110aa8484612756565b9050806110bb576001915050611133565b60006110c68261290c565b90506000603682600581106110d757fe5b6005020190506000816002015411156110f65760019350505050611133565b600061110f82600101544361297d90919063ffffffff16565b9050816003015481101561112a576000945050505050611133565b60019450505050505b92915050565b6053818154811061114657fe5b60009182526020909120600390910201805460018201546002909201546001600160a01b03909116925083565b80156111e5576111aa60598863ffffffff168154811061118f57fe5b6000918252602090912001546001600160a01b0316876129c6565b6111e55760405162461bcd60e51b8152600401808060200182810382526047815260200180614dcd6047913960600191505060405180910390fd5b60606111fe886000896001600160c01b03168933612b10565b9050600061120b82612c1d565b65ffffffffffff80881660009081526057602090815260408083205460588352818420948a168452939091529020549192509060ff161561127d5760405162461bcd60e51b8152600401808060200182810382526032815260200180614e3f6032913960400191505060405180910390fd5b61129181878765ffffffffffff1685612cd2565b15156001146112d15760405162461bcd60e51b815260040180806020018281038252602e8152602001806150fe602e913960400191505060405180910390fd5b65ffffffffffff8088166000908152605860209081526040808320938916835292905220805460ff1916600117905561130b898b86612d59565b8315158765ffffffffffff168665ffffffffffff167f92dd99230eaf5e3f1238fbbd0d72b34e8c2ad759886075bfc9f426ebeeea34f060405160405180910390a450505050505050505050565b6055546001600160401b031681565b600054610100900460ff16806113805750611380612ef3565b8061138e575060005460ff16155b6113c95760405162461bcd60e51b815260040180806020018281038252602e815260200180614eea602e913960400191505060405180910390fd5b600054610100900460ff161580156113f4576000805460ff1961ff0019909116610100171660011790555b6113fe8f8f612ef9565b8c605460006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b605c60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a605f60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555089605e60186101000a81548160ff021916908360ff16021790555088605b8190555060ff605460146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506001605e60106101000a8154816001600160401b0302191690836001600160401b03160217905550605960009080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b03160217905550611538888888612fc5565b611544858585856130a6565b8015611556576000805461ff00191690555b505050505050505050505050505050565b60576020526000908152604090205481565b604f546001600160a01b031633146115c25760405162461bcd60e51b815260040180806020018281038252603f815260200180615193603f913960400191505060405180910390fd5b60005b60058110156116ef5760008282600581106115dc57fe5b602002015151905060008383600581106115f257fe5b6020020151600160200201519050600084846005811061160e57fe5b6020020151604001519050600085856005811061162757fe5b6020020151606001519050808311156116715760405162461bcd60e51b815260040180806020018281038252605d8152602001806151d2605d913960600191505060405180910390fd5b6040518060a0016040528085815260200143815260200184815260200183815260200182815250603686600581106116a557fe5b6005020160008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401559050505050505080806001019150506115c5565b5050565b3332146117315760405162461bcd60e51b815260040180806020018281038252602a815260200180614d05602a913960400191505060405180910390fd5b605c546040805163041d8fb560e51b815233600482015243602482015290516001600160a01b03909216916383b1f6a091604480820192602092909190829003018186803b15801561178257600080fd5b505afa158015611796573d6000803e3d6000fd5b505050506040513d60208110156117ac57600080fd5b505115156001146117ee5760405162461bcd60e51b8152600401808060200182810382526022815260200180614c356022913960400191505060405180910390fd5b8361184a57605e54600160c01b810460ff166001600160401b039182160116431061184a5760405162461bcd60e51b81526004018080602001828103825260268152602001806150aa6026913960400191505060405180910390fd5b60006118598f8f8f888a6131a9565b905060538660ff168154811061186b57fe5b60009182526020918290206003909102015460408051928301815283835280516343753b4d60e01b81526001600160a01b03909216926343753b4d9288928892889290916004909101908190869080828437600083820152601f01601f1916909101905084608080828437600083820152601f01601f1916909101905083604080828437600081840152601f19601f82011690508083019250505082600160200280838360005b8381101561192a578181015183820152602001611912565b5050505090500194505050505060206040518083038186803b15801561194f57600080fd5b505afa158015611963573d6000803e3d6000fd5b505050506040513d602081101561197957600080fd5b50516119b65760405162461bcd60e51b8152600401808060200182810382526021815260200180614b1c6021913960400191505060405180910390fd5b6055600081819054906101000a90046001600160401b03168092919060010191906101000a8154816001600160401b0302191690836001600160401b03160217905550508e605460146101000a81548165ffffffffffff021916908365ffffffffffff1602179055508d60566000605560009054906101000a90046001600160401b03166001600160401b03166001600160401b03168152602001908152602001600020819055508c60576000605560009054906101000a90046001600160401b03166001600160401b03166001600160401b03168152602001908152602001600020819055508415611ac757605e805467ffffffffffffffff1916436001600160401b0316179055611ac7613451565b605c54604080516309cb4a2f60e31b815233600482015290516001600160a01b0390921691634e5a51789160248082019260009290919082900301818387803b158015611b1357600080fd5b505af1158015611b27573d6000803e3d6000fd5b50506055546040516001600160401b0390911692507fd7ab70a9e6ed0d6985e74c5cb553d300a13a2217d58266922b275b72fe7869829150600090a2505050505050505050505050505050565b605954600160201b8110611bb95760405162461bcd60e51b8152600401808060200182810382526021815260200180614d2f6021913960400191505060405180910390fd5b6001600160a01b038416611bfe5760405162461bcd60e51b8152600401808060200182810382526023815260200180614ce26023913960400191505060405180910390fd5b6001600160a01b0384166000908152605a602052604090205415611c69576040805162461bcd60e51b815260206004820152601f60248201527f4865726d657a3a3a616464546f6b656e3a20414c52454144595f414444454400604482015290519081900360640190fd5b8115611c8a57605f54605b54611c8a916001600160a01b03169085856134ff565b605f54605b54611ca7916001600160a01b0316903390309061377c565b60598054600181019091557fd73956b9e00d8f8bc5e44f7184df1387cdd652e7726b8ccda3db4859e02f31bf0180546001600160a01b0319166001600160a01b0386169081179091556000818152605a6020908152604091829020849055815163ffffffff8516815291517fcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde9281900390910190a250505050565b605f546001600160a01b031681565b605e546001600160401b031681565b6054546001600160a01b031681565b60566020526000908152604090205481565b60595463ffffffff851610611dc75760405162461bcd60e51b815260040180806020018281038252602e8152602001806150d0602e913960400191505060405180910390fd5b6000611dd2876138d9565b9050600160801b8110611e165760405162461bcd60e51b8152600401808060200182810382526031815260200180614b3d6031913960400191505060405180910390fd5b8015611ed65763ffffffff8516611e6a57348114611e655760405162461bcd60e51b81526004018080602001828103825260338152602001806152596033913960400191505060405180910390fd5b611ed6565b8115611ea357611ea360598663ffffffff1681548110611e8657fe5b6000918252602090912001546001600160a01b03168285856134ff565b611ed660598663ffffffff1681548110611eb957fe5b6000918252602090912001546001600160a01b031633308461377c565b611ee5338a8a8a8a8a8a61391d565b505050505050505050565b60f081565b60368160058110611f0257fe5b6005020180546001820154600283015460038401546004909401549294509092909185565b60598181548110611f3457fe5b6000918252602090912001546001600160a01b0316905081565b60595490565b605e54600160c01b900460ff1681565b605054600160a01b90046001600160401b031681565b6050546001600160a01b0316331480611f9d5750604f546001600160a01b031633145b611fd85760405162461bcd60e51b8152600401808060200182810382526041815260200180614fc16041913960600191505060405180910390fd5b60005b6005811015612063576040518060a001604052806000815260200160008152602001600081526020016000815260200160008152506036826005811061201d57fe5b6005020160008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401559050508080600101915050611fdb565b5060515460505460408051630e670af560e01b8152600160a01b9092046001600160401b03166004830152516001600160a01b0390921691630e670af59160248082019260009290919082900301818387803b1580156120c257600080fd5b505af11580156120d6573d6000803e3d6000fd5b50505050565b605b5481565b80156121545761211960598663ffffffff16815481106120fe57fe5b6000918252602090912001546001600160a01b0316856129c6565b6121545760405162461bcd60e51b8152600401808060200182810382526043815260200180614f186043913960600191505060405180910390fd5b65ffffffffffff80841660009081526058602090815260408083209386168352929052205460ff16156121b85760405162461bcd60e51b815260040180806020018281038252602e815260200180614e92602e913960400191505060405180910390fd5b65ffffffffffff831660009081526057602090815260408083205481518084018290523360601b818401526001600160e01b031960e08b901b16605482015267ffffffffffffffff1989841b1660588201526001600160d01b031960d088901b1660708201528251605681830301815260769091019283905280519194937f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000019360029390918291908401908083835b602083106122865780518252601f199092019160209182019101612267565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa1580156122c5573d6000803e3d6000fd5b5050506040513d60208110156122da57600080fd5b5051816122e357fe5b605454604080516020810182529390920680845282516343753b4d60e01b81529094506001600160a01b03909116926343753b4d928e928e928e929091600401908190869080828437600083820152601f01601f1916909101905084608080828437600083820152601f01601f1916909101905083604080828437600081840152601f19601f82011690508083019250505082600160200280838360005b83811015612399578181015183820152602001612381565b5050505090500194505050505060206040518083038186803b1580156123be57600080fd5b505afa1580156123d2573d6000803e3d6000fd5b505050506040513d60208110156123e857600080fd5b5051151560011461242a5760405162461bcd60e51b815260040180806020018281038252602981526020018061502a6029913960400191505060405180910390fd5b65ffffffffffff8086166000908152605860209081526040808320938816835292905220805460ff19166001179055612464868885612d59565b8215158565ffffffffffff168565ffffffffffff167f92dd99230eaf5e3f1238fbbd0d72b34e8c2ad759886075bfc9f426ebeeea34f060405160405180910390a450505050505050505050565b604f546001600160a01b031633146124fa5760405162461bcd60e51b815260040180806020018281038252603f815260200180615193603f913960400191505060405180910390fd5b60f060ff8216111561253d5760405162461bcd60e51b815260040180806020018281038252603c815260200180614ae0603c913960400191505060405180910390fd5b605e805460ff8316600160c01b810260ff60c01b199092169190911790915560408051918252517fff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac9744319181900360200190a150565b605e54600160401b90046001600160401b031681565b605454600160a01b900465ffffffffffff1681565b604f546001600160a01b031681565b6050546001600160a01b031681565b605d6020908152600091825260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452909183018282801561266d5780601f106126425761010080835404028352916020019161266d565b820191906000526020600020905b81548152906001019060200180831161265057829003601f168201915b505050505081565b605860209081526000928352604080842090915290825290205460ff1681565b604f546001600160a01b031633146126de5760405162461bcd60e51b815260040180806020018281038252603f815260200180615193603f913960400191505060405180910390fd5b62127500816001600160401b031611156127295760405162461bcd60e51b815260040180806020018281038252604a815260200180614c57604a913960600191505060405180910390fd5b605080546001600160401b03909216600160a01b0267ffffffffffffffff60a01b19909216919091179055565b6001600160a01b0382166000908152605260205260408120546001600160401b031661278457506000611133565b6001600160a01b038316600090815260526020526040812054655af3107a4000906001600160401b03166001600160c01b0385160260408051600481526024810182526020810180516001600160e01b031663313ce56760e01b1781529151815194909304945060009384936060936001600160a01b038b1693928291908083835b602083106128255780518252601f199092019160209182019101612806565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114612885576040519150601f19603f3d011682016040523d82523d6000602084013e61288a565b606091505b509150915081156128af578080602001905160208110156128aa57600080fd5b505192505b604d8360ff16106128f15760405162461bcd60e51b815260040180806020018281038252603b815260200180614a24603b913960400191505060405180910390fd5b8260ff16600a0a848161290057fe5b04979650505050505050565b6000805b6005811015612940576036816005811061292657fe5b60050201548311612938579050612978565b600101612910565b5060405162461bcd60e51b815260040180806020018281038252603981526020018061512c6039913960400191505060405180910390fd5b919050565b60006129bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b77565b9392505050565b6000806129d38484612756565b9050806129e4576001915050611133565b60006129ef8261290c565b9050600060368260058110612a0057fe5b6005020190506000612a1f82600101544361297d90919063ffffffff16565b90508160030154811015612a7357600282015415612a6657816004015482600201541415612a4e574360018301555b50600201805460001901905550600191506111339050565b6000945050505050611133565b6000612a8c836003015483613c0e90919063ffffffff16565b90508260040154612aaa828560020154613c5090919063ffffffff16565b10612acf576004830154612abf90600161297d565b6002840155436001840155612b02565b60028301805482016000190190556003830154612afc90612af1908390613caa565b600185015490613c50565b60018401555b600195505050505050611133565b60408051600480825260a08201909252606091829190602082016080803683370190505090508663ffffffff1681600081518110612b4a57fe5b60200260200101818152505060208665ffffffffffff16901b65ffffffffffff1681600081518110612b7857fe5b602002602001018181511791508181525050604860ff85901c901b81600081518110612ba057fe5b6020026020010181815117915081815250508481600181518110612bc057fe5b602090810291909101015280516001600160ff1b0385169082906002908110612be557fe5b602002602001018181525050826001600160a01b031681600381518110612c0857fe5b60209081029190910101529695505050505050565b60355460405163311083ed60e21b81526020600482018181528451602484015284516000946001600160a01b03169363c4420fb49387939283926044019180860191028083838b5b83811015612c7d578181015183820152602001612c65565b505050509050019250505060206040518083038186803b158015612ca057600080fd5b505afa158015612cb4573d6000803e3d6000fd5b505050506040513d6020811015612cca57600080fd5b505192915050565b600080612cdf8484613d03565b8551909150600090600019015b60008112612d4c57868181518110612d0057fe5b60200260200101519150600081876000821215612d1957fe5b6001911c811614905080612d3657612d318484613d89565b612d40565b612d408385613d89565b93505060001901612cec565b5050909414949350505050565b8015612d9f57612d9a60598363ffffffff1681548110612d7557fe5b6000918252602090912001546001600160a01b0316336001600160c01b038616613dec565b610ff6565b63ffffffff8216612e2b576051546040805163cfc0b64160e01b81523360048201526000602482018190526001600160c01b0387166044830181905292516001600160a01b039094169363cfc0b6419392606480820193929182900301818588803b158015612e0d57600080fd5b505af1158015612e21573d6000803e3d6000fd5b5050505050610ff6565b600060598363ffffffff1681548110612e4057fe5b6000918252602090912001546051546001600160a01b039182169250612e72918391166001600160c01b038716614037565b6051546040805163cfc0b64160e01b81523360048201526001600160a01b0384811660248301526001600160c01b03881660448301529151919092169163cfc0b64191606480830192600092919082900301818387803b158015612ed557600080fd5b505af1158015612ee9573d6000803e3d6000fd5b5050505050505050565b303b1590565b60005b8251811015610ff65760536040518060600160405280858481518110612f1e57fe5b60200260200101516001600160a01b03168152602001600880868681518110612f4357fe5b6020026020010151901b901c815260200160f8858581518110612f6257fe5b60209081029190910181015190911c909152825460018082018555600094855293829020835160039092020180546001600160a01b0319166001600160a01b03909216919091178155908201518184015560409091015160029091015501612efc565b600054610100900460ff1680612fde5750612fde612ef3565b80612fec575060005460ff16155b6130275760405162461bcd60e51b815260040180806020018281038252602e815260200180614eea602e913960400191505060405180910390fd5b600054610100900460ff16158015613052576000805460ff1961ff0019909116610100171660011790555b603380546001600160a01b038087166001600160a01b03199283161790925560348054868416908316179055603580549285169290911691909117905580156120d6576000805461ff001916905550505050565b600054610100900460ff16806130bf57506130bf612ef3565b806130cd575060005460ff16155b6131085760405162461bcd60e51b815260040180806020018281038252602e815260200180614eea602e913960400191505060405180910390fd5b600054610100900460ff16158015613133576000805460ff1961ff0019909116610100171660011790555b604f80546001600160a01b03199081166001600160a01b03888116919091179092556050805482168784161767ffffffffffffffff60a01b1916600160a01b6001600160401b038816021790556051805490911691841691909117905580156131a2576000805461ff00191690555b5050505050565b6055546001600160401b031660009081526056602052604081205460545460538054600160a01b90920465ffffffffffff16918491829182919060ff89169081106131f057fe5b906000526020600020906003020160010154600860538960ff168154811061321457fe5b9060005260206000209060030201600201548161322d57fe5b046002026003010290506000600860538960ff168154811061324b57fe5b9060005260206000209060030201600201548161326457fe5b604080519290910481028481018084016148ae0190925261486e909101825260d087811b60208401528e901b6026830152602c8201889052604c82018d9052606c82018c90529150608c81016132ba818c614184565b614800016132c860046143be565b90965094508385111561330c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615165602e913960400191505060405180910390fd5b84868237840161331e818686036143d2565b8484030161332c60056143be565b909650945082851461336f5760405162461bcd60e51b8152600401808060200182810382526040815260200180614a5f6040913960400191505060405180910390fd5b848682378401613381818685036143d2565b848303810190504660f01b81527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016002836040518082805190602001908083835b602083106133e15780518252601f1990920191602091820191016133c2565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa158015613420573d6000803e3d6000fd5b5050506040513d602081101561343557600080fd5b50518161343e57fe5b069e9d5050505050505050505050505050565b605e54600160401b90046001600160401b03166000908152605d6020526040812061347b9161499b565b605e805460016001600160401b03600160401b808404821692909201811682026fffffffffffffffff000000000000000019909316929092179283905582048116600160801b9092041614156134fd57605e805460016001600160401b03600160801b808404821692909201160267ffffffffffffffff60801b199091161790555b565b60008282602081101561351157600080fd5b50356001600160e01b031916905063d505accf60e01b8114156131a2576000808080808080613543896004818d6149fb565b60e081101561355157600080fd5b506001600160a01b038135811698506020820135169650604081013595506060810135945060ff608082013516935060a0810135925060c0013590503387146135cb5760405162461bcd60e51b8152600401808060200182810382526030815260200180614ba26030913960400191505060405180910390fd5b6001600160a01b03861630146136125760405162461bcd60e51b8152600401808060200182810382526025815260200180614da86025913960400191505060405180910390fd5b8a85146136505760405162461bcd60e51b815260040180806020018281038252602d81526020018061507d602d913960400191505060405180910390fd5b8b6001600160a01b031663d505accf60e01b8888888888888860405160240180886001600160a01b03168152602001876001600160a01b031681526020018681526020018581526020018460ff168152602001838152602001828152602001975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b6020831061371a5780518252601f1990920191602091820191016136fb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611556576040519150601f19603f3d011682016040523d82523d6000602084013e611556565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106138015780518252601f1990920191602091820191016137e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613863576040519150601f19603f3d011682016040523d82523d6000602084013e613868565b606091505b5091509150818015613896575080511580613896575080806020019051602081101561389357600080fd5b50515b6138d15760405162461bcd60e51b8152600401808060200182810382526034815260200180614b6e6034913960400191505060405180910390fd5b505050505050565b60006103ff8216601f600b84901c166001600a85811c8216919083900a90818502908314801561390857508315155b156139135760028204015b9695505050505050565b6000613928846138d9565b9050600160c01b811061396c5760405162461bcd60e51b815260040180806020018281038252602e815260200180614d50602e913960400191505060405180910390fd5b65ffffffffffff82166139bb5780156139b65760405162461bcd60e51b815260040180806020018281038252603b8152602001806152ce603b913960400191505060405180910390fd5b613a75565b65ffffffffffff821660011415613a0d5761ffff8516156139b65760405162461bcd60e51b8152600401808060200182810382526037815260200180614bd26037913960400191505060405180910390fd5b60ff65ffffffffffff8316118015613a3a575060545465ffffffffffff600160a01b909104811690831611155b613a755760405162461bcd60e51b81526004018080602001828103825260288152602001806150026028913960400191505060405180910390fd5b65ffffffffffff8616613ac35786613abe5760405162461bcd60e51b8152600401808060200182810382526041815260200180614ca16041913960600191505060405180910390fd5b613b68565b60ff65ffffffffffff8716118015613af0575060545465ffffffffffff600160a01b909104811690871611155b613b2b5760405162461bcd60e51b815260040180806020018281038252602a815260200180614d7e602a913960400191505060405180910390fd5b8615613b685760405162461bcd60e51b8152600401808060200182810382526042815260200180614f5b6042913960600191505060405180910390fd5b612ee9888888888888886143eb565b60008184841115613c065760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613bcb578181015183820152602001613bb3565b50505050905090810190601f168015613bf85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60006129bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506145c5565b6000828201838110156129bf576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082613cb957506000611133565b82820282848281613cc657fe5b04146129bf5760405162461bcd60e51b8152600401808060200182810382526021815260200180614e716021913960400191505060405180910390fd5b60408051600380825260808201909252600091606091906020820183803683370190505090508381600081518110613d3757fe5b6020026020010181815250508281600181518110613d5157fe5b602002602001018181525050600181600281518110613d6c57fe5b602002602001018181525050613d818161462a565b949350505050565b60408051600280825260608083018452600093909291906020830190803683370190505090508381600081518110613dbd57fe5b6020026020010181815250508281600181518110613dd757fe5b602002602001018181525050613d8181614687565b6001600160a01b038316613eea5760408051600080825260208201909252339083906040518082805190602001908083835b60208310613e3d5780518252601f199092019160209182019101613e1e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613e9f576040519150601f19603f3d011682016040523d82523d6000602084013e613ea4565b606091505b5050905080613ee45760405162461bcd60e51b815260040180806020018281038252602a815260200180615053602a913960400191505060405180910390fd5b50610ff6565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b60208310613f675780518252601f199092019160209182019101613f48565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613fc9576040519150601f19603f3d011682016040523d82523d6000602084013e613fce565b606091505b5091509150818015613ffc575080511580613ffc5750808060200190516020811015613ff957600080fd5b50515b6131a25760405162461bcd60e51b815260040180806020018281038252602c815260200180614c09602c913960400191505060405180910390fd5b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b602083106140b45780518252601f199092019160209182019101614095565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614116576040519150601f19603f3d011682016040523d82523d6000602084013e61411b565b606091505b5091509150818015614149575080511580614149575080806020019051602081101561414657600080fd5b50515b6131a25760405162461bcd60e51b815260040180806020018281038252602a81526020018061522f602a913960400191505060405180910390fd5b60008061419160036143be565b90925090506065810460006060851561426457605e54600160401b90046001600160401b03166000908152605d60209081526040918290208054835160026101006001841615026000190190921691909104601f810184900484028201840190945283815292909183018282801561424a5780601f1061421f5761010080835404028352916020019161424a565b820191906000526020600020905b81548152906001019060200180831161422d57829003601f168201915b50505050509050604881518161425c57fe5b049150614269565b600091505b61010083830111156142ac5760405162461bcd60e51b8152600401808060200182810382526024815260200180614f9d6024913960400191505060405180910390fd5b81156142da576048820287019660208201905b888110156142d75781518152602091820191016142bf565b50505b60005b838110156143a1576059546065870196803560001a916001820135916021810135916041820135916061013560e01c90811061434a5760405162461bcd60e51b815260040180806020018281038252602a815260200180614ec0602a913960400191505060405180910390fd5b6001600160a01b0360ff86161561436a57614367838587896146e4565b90505b60601b8d5260148d0191909152600060348d0181905260e09190911b603e8d015260428c01525050604890980197506001016142dd565b506143b587604885856101000303026143d2565b50505050505050565b602002600490810135602481019291013590565b808201915b82811015610ff657600081526020016143d7565b604080516bffffffffffffffffffffffff1960608a901b16602080830191909152603482018990526001600160d01b031960d089811b821660548501526001600160f01b031960f08a811b8216605a87015289901b16605c8501526001600160e01b031960e088901b16605e808601919091529086901b90911660628401528351604881850301815260689093018452546001600160401b03600160801b909104166000908152605d909152919091206144a59082614851565b605e54600160801b90046001600160401b03166000818152605d602090815260408083205481518381528651818501528651604860026101006001861615026000190190941693909304929092049560ff87169590947f7f40be4e420c002c02fa9cad961f6a7620769d32d272f3f8c15e3ff59de9310e9489948493918401928601918190849084905b8381101561454757818101518382015260200161452f565b50505050905090810190601f1680156145745780820380516001836020036101000a031916815260200191505b509250505060405180910390a360808110611ee557605e805460016001600160401b03600160801b808404821692909201160267ffffffffffffffff60801b19909116179055505050505050505050565b600081836146145760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315613bcb578181015183820152602001613bb3565b50600083858161462057fe5b0495945050505050565b60345460405163311083ed60e21b81526020600482018181528451602484015284516000946001600160a01b03169363c4420fb49387939283926044019185810191028083838b8315612c7d578181015183820152602001612c65565b60335460405163311083ed60e21b81526020600482018181528451602484015284516000946001600160a01b03169363c4420fb49387939283926044019185810191028083838b8315612c7d578181015183820152602001612c65565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156147455760405162461bcd60e51b81526004018080602001828103825260298152602001806153096029913960400191505060405180910390fd5b60008560405160200180807f19457468657265756d205369676e6564204d6573736167653a0a393800000000815250601c018061528c60429139604201828152602001915050604051602081830303815290604052805190602001209050600060018285888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156147ff573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166139135760405162461bcd60e51b815260040180806020018281038252602b815260200180614e14602b913960400191505060405180910390fd5b8154600260018083161561010002038216048251808201602081106020841001600281146148fb5760018114614920578660005260208404602060002001600160028402018855602085068060200390508088018589016001836101000a0392508282511684540184556001840193506020820191505b808210156148e557815184556001840193506020820191506148c8565b815191036101000a9081900402909155506143b5565b60028302826020036101000a846020036101000a6020890151040201850187556143b5565b8660005260208404602060002001600160028402018855846020038088018589016001836101000a0392508282511660ff198a160184556020820191506001840193505b808210156149815781518455600184019350602082019150614964565b815191036101000a90819004029091555050505050505050565b50805460018160011615610100020316600290046000825580601f106149c157506149df565b601f0160209004906000526020600020908101906149df91906149e2565b50565b5b808211156149f757600081556001016149e3565b5090565b60008085851115614a0a578182fd5b83861115614a16578182fd5b505082019391909203915056fe496e7374616e7457697468647261774d616e616765723a3a5f746f6b656e325553443a20544f4b454e5f444543494d414c535f4f564552464c4f574865726d657a3a3a5f636f6e73747275637443697263756974496e7075743a20494e56414c49445f464545494458434f4f5244494e41544f525f4c454e475448496e7374616e7457697468647261774d616e616765723a3a757064617465546f6b656e45786368616e67653a20494e56414c49445f41525241595f4c454e4754484865726d657a3a3a757064617465466f7267654c314c32426174636854696d656f75743a204d41585f464f52474554494d454f55545f4558434545444865726d657a3a3a666f72676542617463683a20494e56414c49445f50524f4f464865726d657a3a3a6164644c315472616e73616374696f6e3a204c4f4144414d4f554e545f4558434545445f4c494d49544865726d657a3a3a5f736166655472616e7366657246726f6d3a2045524332305f5452414e5346455246524f4d5f4641494c45444865726d657a3a3a5f7065726d69743a205045524d49545f4f574e45525f4d5553545f42455f5448455f53454e4445524865726d657a3a3a5f6164644c315472616e73616374696f6e3a204c4f4144414d4f554e545f4d5553545f42455f305f49465f455849544865726d657a3a3a5f736166655472616e736665723a2045524332305f5452414e534645525f4641494c45444865726d657a3a3a666f72676542617463683a2041554354494f4e5f44454e494544496e7374616e7457697468647261774d616e616765723a3a7570646174655769746864726177616c44656c61793a204558434545445f4d41585f5749544844524157414c5f44454c41594865726d657a3a3a5f6164644c315472616e73616374696f6e3a20494e56414c49445f4352454154455f4143434f554e545f574954485f4e4f5f424142594a55424865726d657a3a3a616464546f6b656e3a20414444524553535f305f494e56414c49444865726d657a3a3a666f72676542617463683a20494e54454e414c5f54585f4e4f545f414c4c4f5745444865726d657a3a3a616464546f6b656e3a20544f4b454e5f4c4953545f46554c4c4865726d657a3a3a5f6164644c315472616e73616374696f6e3a20414d4f554e545f4558434545445f4c494d49544865726d657a3a3a5f6164644c315472616e73616374696f6e3a20494e56414c49445f46524f4d4944584865726d657a3a3a5f7065726d69743a205350454e4445525f4d5553545f42455f544849534865726d657a3a3a77697468647261774d65726b6c6550726f6f663a20494e5354414e545f57495448445241575f5741535445445f464f525f544849535f5553445f52414e47454865726d657a48656c706572733a3a5f636865636b5369673a20494e56414c49445f5349474e41545552454865726d657a3a3a77697468647261774d65726b6c6550726f6f663a2057495448445241575f414c52454144595f444f4e45536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774865726d657a3a3a7769746864726177436972637569743a2057495448445241575f414c52454144595f444f4e454865726d657a3a3a5f6275696c644c31446174613a20544f4b454e5f4e4f545f52454749535445524544436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65644865726d657a3a3a7769746864726177436972637569743a20494e5354414e545f57495448445241575f5741535445445f464f525f544849535f5553445f52414e47454865726d657a3a3a5f6164644c315472616e73616374696f6e3a20424142594a55425f4d5553545f42455f305f49465f4e4f545f4352454154455f4143434f554e544865726d657a3a3a5f6275696c644c31446174613a204c315f54585f4f564552464c4f57496e7374616e7457697468647261774d616e616765723a3a736166654d6f64653a204f4e595f534146455459414444524553535f4f525f474f5645524e414e43454865726d657a3a3a5f6164644c315472616e73616374696f6e3a20494e56414c49445f544f4944584865726d657a3a3a7769746864726177436972637569743a20494e56414c49445f5a4b5f50524f4f464865726d657a3a3a5f736166655472616e736665723a204554485f5452414e534645525f4641494c45444865726d657a3a3a5f7065726d69743a205045524d49545f414d4f554e545f444f45535f4e4f545f4d415443484865726d657a3a3a666f72676542617463683a204c314c3242415443485f52455155495245444865726d657a3a3a6164644c315472616e73616374696f6e3a20544f4b454e5f4e4f545f524547495354455245444865726d657a3a3a77697468647261774d65726b6c6550726f6f663a20534d545f50524f4f465f494e56414c4944496e7374616e7457697468647261774d616e616765723a3a5f66696e644275636b65744964783a204558434545445f4d41585f414d4f554e544865726d657a3a3a5f636f6e73747275637443697263756974496e7075743a204c325f54585f4f564552464c4f57496e7374616e7457697468647261774d616e616765723a3a6f6e6c79476f7665726e616e63653a204f4e4c595f474f5645524e414e43455f41444452455353496e7374616e7457697468647261774d616e616765723a3a7570646174654275636b657473506172616d65746572733a205749544844524157414c535f4d5553545f42455f4c4553535f5448414e5f4d41585749544844524157414c534865726d657a3a3a5f73616665417070726f76653a2045524332305f415050524f56455f4641494c45444865726d657a3a3a6164644c315472616e73616374696f6e3a204c4f4144414d4f554e545f444f45535f4e4f545f4d415443484920617574686f72697a65207468697320626162796a75626a7562206b657920666f72206865726d657a20726f6c6c7570206163636f756e74206372656174696f6e4865726d657a3a3a5f6164644c315472616e73616374696f6e3a20414d4f554e545f4d5553545f42455f305f49465f4e4f545f5452414e534645524865726d657a48656c706572733a3a5f636865636b5369673a20494e56414c49445f535f56414c5545a264697066735822122091bc2e9fc711c7950eda56ac350b27c8cb0fb73ac64230ebb167ad75b7fdbe6564736f6c634300060c0033"
  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 0xe9b5269c.
  230. //
  231. // Solidity: function exitNullifierMap(uint64 , uint48 ) view returns(bool)
  232. func (_Hermez *HermezCaller) ExitNullifierMap(opts *bind.CallOpts, arg0 uint64, 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 0xe9b5269c.
  241. //
  242. // Solidity: function exitNullifierMap(uint64 , uint48 ) view returns(bool)
  243. func (_Hermez *HermezSession) ExitNullifierMap(arg0 uint64, 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 0xe9b5269c.
  247. //
  248. // Solidity: function exitNullifierMap(uint64 , uint48 ) view returns(bool)
  249. func (_Hermez *HermezCallerSession) ExitNullifierMap(arg0 uint64, 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 0x506d5463.
  253. //
  254. // Solidity: function exitRootsMap(uint64 ) view returns(uint256)
  255. func (_Hermez *HermezCaller) ExitRootsMap(opts *bind.CallOpts, arg0 uint64) (*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 0x506d5463.
  264. //
  265. // Solidity: function exitRootsMap(uint64 ) view returns(uint256)
  266. func (_Hermez *HermezSession) ExitRootsMap(arg0 uint64) (*big.Int, error) {
  267. return _Hermez.Contract.ExitRootsMap(&_Hermez.CallOpts, arg0)
  268. }
  269. // ExitRootsMap is a free data retrieval call binding the contract method 0x506d5463.
  270. //
  271. // Solidity: function exitRootsMap(uint64 ) view returns(uint256)
  272. func (_Hermez *HermezCallerSession) ExitRootsMap(arg0 uint64) (*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. // HermezGovernanceDAOAddress is a free data retrieval call binding the contract method 0xdd46bf84.
  345. //
  346. // Solidity: function hermezGovernanceDAOAddress() view returns(address)
  347. func (_Hermez *HermezCaller) HermezGovernanceDAOAddress(opts *bind.CallOpts) (common.Address, error) {
  348. var (
  349. ret0 = new(common.Address)
  350. )
  351. out := ret0
  352. err := _Hermez.contract.Call(opts, out, "hermezGovernanceDAOAddress")
  353. return *ret0, err
  354. }
  355. // HermezGovernanceDAOAddress is a free data retrieval call binding the contract method 0xdd46bf84.
  356. //
  357. // Solidity: function hermezGovernanceDAOAddress() view returns(address)
  358. func (_Hermez *HermezSession) HermezGovernanceDAOAddress() (common.Address, error) {
  359. return _Hermez.Contract.HermezGovernanceDAOAddress(&_Hermez.CallOpts)
  360. }
  361. // HermezGovernanceDAOAddress is a free data retrieval call binding the contract method 0xdd46bf84.
  362. //
  363. // Solidity: function hermezGovernanceDAOAddress() view returns(address)
  364. func (_Hermez *HermezCallerSession) HermezGovernanceDAOAddress() (common.Address, error) {
  365. return _Hermez.Contract.HermezGovernanceDAOAddress(&_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(uint64)
  393. func (_Hermez *HermezCaller) LastForgedBatch(opts *bind.CallOpts) (uint64, error) {
  394. var (
  395. ret0 = new(uint64)
  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(uint64)
  404. func (_Hermez *HermezSession) LastForgedBatch() (uint64, 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(uint64)
  410. func (_Hermez *HermezCallerSession) LastForgedBatch() (uint64, 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 0xe796fcf3.
  460. //
  461. // Solidity: function mapL1TxQueue(uint64 ) view returns(bytes)
  462. func (_Hermez *HermezCaller) MapL1TxQueue(opts *bind.CallOpts, arg0 uint64) ([]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 0xe796fcf3.
  471. //
  472. // Solidity: function mapL1TxQueue(uint64 ) view returns(bytes)
  473. func (_Hermez *HermezSession) MapL1TxQueue(arg0 uint64) ([]byte, error) {
  474. return _Hermez.Contract.MapL1TxQueue(&_Hermez.CallOpts, arg0)
  475. }
  476. // MapL1TxQueue is a free data retrieval call binding the contract method 0xe796fcf3.
  477. //
  478. // Solidity: function mapL1TxQueue(uint64 ) view returns(bytes)
  479. func (_Hermez *HermezCallerSession) MapL1TxQueue(arg0 uint64) ([]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(uint64)
  485. func (_Hermez *HermezCaller) NextL1FillingQueue(opts *bind.CallOpts) (uint64, error) {
  486. var (
  487. ret0 = new(uint64)
  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(uint64)
  496. func (_Hermez *HermezSession) NextL1FillingQueue() (uint64, 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(uint64)
  502. func (_Hermez *HermezCallerSession) NextL1FillingQueue() (uint64, 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(uint64)
  508. func (_Hermez *HermezCaller) NextL1ToForgeQueue(opts *bind.CallOpts) (uint64, error) {
  509. var (
  510. ret0 = new(uint64)
  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(uint64)
  519. func (_Hermez *HermezSession) NextL1ToForgeQueue() (uint64, 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(uint64)
  525. func (_Hermez *HermezCallerSession) NextL1ToForgeQueue() (uint64, 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. // SafetyAddress is a free data retrieval call binding the contract method 0xe56e27ae.
  589. //
  590. // Solidity: function safetyAddress() view returns(address)
  591. func (_Hermez *HermezCaller) SafetyAddress(opts *bind.CallOpts) (common.Address, error) {
  592. var (
  593. ret0 = new(common.Address)
  594. )
  595. out := ret0
  596. err := _Hermez.contract.Call(opts, out, "safetyAddress")
  597. return *ret0, err
  598. }
  599. // SafetyAddress is a free data retrieval call binding the contract method 0xe56e27ae.
  600. //
  601. // Solidity: function safetyAddress() view returns(address)
  602. func (_Hermez *HermezSession) SafetyAddress() (common.Address, error) {
  603. return _Hermez.Contract.SafetyAddress(&_Hermez.CallOpts)
  604. }
  605. // SafetyAddress is a free data retrieval call binding the contract method 0xe56e27ae.
  606. //
  607. // Solidity: function safetyAddress() view returns(address)
  608. func (_Hermez *HermezCallerSession) SafetyAddress() (common.Address, error) {
  609. return _Hermez.Contract.SafetyAddress(&_Hermez.CallOpts)
  610. }
  611. // StateRootMap is a free data retrieval call binding the contract method 0x86c6acc1.
  612. //
  613. // Solidity: function stateRootMap(uint64 ) view returns(uint256)
  614. func (_Hermez *HermezCaller) StateRootMap(opts *bind.CallOpts, arg0 uint64) (*big.Int, error) {
  615. var (
  616. ret0 = new(*big.Int)
  617. )
  618. out := ret0
  619. err := _Hermez.contract.Call(opts, out, "stateRootMap", arg0)
  620. return *ret0, err
  621. }
  622. // StateRootMap is a free data retrieval call binding the contract method 0x86c6acc1.
  623. //
  624. // Solidity: function stateRootMap(uint64 ) view returns(uint256)
  625. func (_Hermez *HermezSession) StateRootMap(arg0 uint64) (*big.Int, error) {
  626. return _Hermez.Contract.StateRootMap(&_Hermez.CallOpts, arg0)
  627. }
  628. // StateRootMap is a free data retrieval call binding the contract method 0x86c6acc1.
  629. //
  630. // Solidity: function stateRootMap(uint64 ) view returns(uint256)
  631. func (_Hermez *HermezCallerSession) StateRootMap(arg0 uint64) (*big.Int, error) {
  632. return _Hermez.Contract.StateRootMap(&_Hermez.CallOpts, arg0)
  633. }
  634. // TokenExchange is a free data retrieval call binding the contract method 0x0dd94b96.
  635. //
  636. // Solidity: function tokenExchange(address ) view returns(uint64)
  637. func (_Hermez *HermezCaller) TokenExchange(opts *bind.CallOpts, arg0 common.Address) (uint64, error) {
  638. var (
  639. ret0 = new(uint64)
  640. )
  641. out := ret0
  642. err := _Hermez.contract.Call(opts, out, "tokenExchange", arg0)
  643. return *ret0, err
  644. }
  645. // TokenExchange is a free data retrieval call binding the contract method 0x0dd94b96.
  646. //
  647. // Solidity: function tokenExchange(address ) view returns(uint64)
  648. func (_Hermez *HermezSession) TokenExchange(arg0 common.Address) (uint64, error) {
  649. return _Hermez.Contract.TokenExchange(&_Hermez.CallOpts, arg0)
  650. }
  651. // TokenExchange is a free data retrieval call binding the contract method 0x0dd94b96.
  652. //
  653. // Solidity: function tokenExchange(address ) view returns(uint64)
  654. func (_Hermez *HermezCallerSession) TokenExchange(arg0 common.Address) (uint64, error) {
  655. return _Hermez.Contract.TokenExchange(&_Hermez.CallOpts, arg0)
  656. }
  657. // TokenHEZ is a free data retrieval call binding the contract method 0x79a135e3.
  658. //
  659. // Solidity: function tokenHEZ() view returns(address)
  660. func (_Hermez *HermezCaller) TokenHEZ(opts *bind.CallOpts) (common.Address, error) {
  661. var (
  662. ret0 = new(common.Address)
  663. )
  664. out := ret0
  665. err := _Hermez.contract.Call(opts, out, "tokenHEZ")
  666. return *ret0, err
  667. }
  668. // TokenHEZ is a free data retrieval call binding the contract method 0x79a135e3.
  669. //
  670. // Solidity: function tokenHEZ() view returns(address)
  671. func (_Hermez *HermezSession) TokenHEZ() (common.Address, error) {
  672. return _Hermez.Contract.TokenHEZ(&_Hermez.CallOpts)
  673. }
  674. // TokenHEZ is a free data retrieval call binding the contract method 0x79a135e3.
  675. //
  676. // Solidity: function tokenHEZ() view returns(address)
  677. func (_Hermez *HermezCallerSession) TokenHEZ() (common.Address, error) {
  678. return _Hermez.Contract.TokenHEZ(&_Hermez.CallOpts)
  679. }
  680. // TokenList is a free data retrieval call binding the contract method 0x9ead7222.
  681. //
  682. // Solidity: function tokenList(uint256 ) view returns(address)
  683. func (_Hermez *HermezCaller) TokenList(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) {
  684. var (
  685. ret0 = new(common.Address)
  686. )
  687. out := ret0
  688. err := _Hermez.contract.Call(opts, out, "tokenList", arg0)
  689. return *ret0, err
  690. }
  691. // TokenList is a free data retrieval call binding the contract method 0x9ead7222.
  692. //
  693. // Solidity: function tokenList(uint256 ) view returns(address)
  694. func (_Hermez *HermezSession) TokenList(arg0 *big.Int) (common.Address, error) {
  695. return _Hermez.Contract.TokenList(&_Hermez.CallOpts, arg0)
  696. }
  697. // TokenList is a free data retrieval call binding the contract method 0x9ead7222.
  698. //
  699. // Solidity: function tokenList(uint256 ) view returns(address)
  700. func (_Hermez *HermezCallerSession) TokenList(arg0 *big.Int) (common.Address, error) {
  701. return _Hermez.Contract.TokenList(&_Hermez.CallOpts, arg0)
  702. }
  703. // TokenMap is a free data retrieval call binding the contract method 0x004aca6e.
  704. //
  705. // Solidity: function tokenMap(address ) view returns(uint256)
  706. func (_Hermez *HermezCaller) TokenMap(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
  707. var (
  708. ret0 = new(*big.Int)
  709. )
  710. out := ret0
  711. err := _Hermez.contract.Call(opts, out, "tokenMap", arg0)
  712. return *ret0, err
  713. }
  714. // TokenMap is a free data retrieval call binding the contract method 0x004aca6e.
  715. //
  716. // Solidity: function tokenMap(address ) view returns(uint256)
  717. func (_Hermez *HermezSession) TokenMap(arg0 common.Address) (*big.Int, error) {
  718. return _Hermez.Contract.TokenMap(&_Hermez.CallOpts, arg0)
  719. }
  720. // TokenMap is a free data retrieval call binding the contract method 0x004aca6e.
  721. //
  722. // Solidity: function tokenMap(address ) view returns(uint256)
  723. func (_Hermez *HermezCallerSession) TokenMap(arg0 common.Address) (*big.Int, error) {
  724. return _Hermez.Contract.TokenMap(&_Hermez.CallOpts, arg0)
  725. }
  726. // WithdrawDelayerContract is a free data retrieval call binding the contract method 0x1b0a8223.
  727. //
  728. // Solidity: function withdrawDelayerContract() view returns(address)
  729. func (_Hermez *HermezCaller) WithdrawDelayerContract(opts *bind.CallOpts) (common.Address, error) {
  730. var (
  731. ret0 = new(common.Address)
  732. )
  733. out := ret0
  734. err := _Hermez.contract.Call(opts, out, "withdrawDelayerContract")
  735. return *ret0, err
  736. }
  737. // WithdrawDelayerContract is a free data retrieval call binding the contract method 0x1b0a8223.
  738. //
  739. // Solidity: function withdrawDelayerContract() view returns(address)
  740. func (_Hermez *HermezSession) WithdrawDelayerContract() (common.Address, error) {
  741. return _Hermez.Contract.WithdrawDelayerContract(&_Hermez.CallOpts)
  742. }
  743. // WithdrawDelayerContract is a free data retrieval call binding the contract method 0x1b0a8223.
  744. //
  745. // Solidity: function withdrawDelayerContract() view returns(address)
  746. func (_Hermez *HermezCallerSession) WithdrawDelayerContract() (common.Address, error) {
  747. return _Hermez.Contract.WithdrawDelayerContract(&_Hermez.CallOpts)
  748. }
  749. // WithdrawVerifier is a free data retrieval call binding the contract method 0x864eb164.
  750. //
  751. // Solidity: function withdrawVerifier() view returns(address)
  752. func (_Hermez *HermezCaller) WithdrawVerifier(opts *bind.CallOpts) (common.Address, error) {
  753. var (
  754. ret0 = new(common.Address)
  755. )
  756. out := ret0
  757. err := _Hermez.contract.Call(opts, out, "withdrawVerifier")
  758. return *ret0, err
  759. }
  760. // WithdrawVerifier is a free data retrieval call binding the contract method 0x864eb164.
  761. //
  762. // Solidity: function withdrawVerifier() view returns(address)
  763. func (_Hermez *HermezSession) WithdrawVerifier() (common.Address, error) {
  764. return _Hermez.Contract.WithdrawVerifier(&_Hermez.CallOpts)
  765. }
  766. // WithdrawVerifier is a free data retrieval call binding the contract method 0x864eb164.
  767. //
  768. // Solidity: function withdrawVerifier() view returns(address)
  769. func (_Hermez *HermezCallerSession) WithdrawVerifier() (common.Address, error) {
  770. return _Hermez.Contract.WithdrawVerifier(&_Hermez.CallOpts)
  771. }
  772. // WithdrawalDelay is a free data retrieval call binding the contract method 0xa7ab6961.
  773. //
  774. // Solidity: function withdrawalDelay() view returns(uint64)
  775. func (_Hermez *HermezCaller) WithdrawalDelay(opts *bind.CallOpts) (uint64, error) {
  776. var (
  777. ret0 = new(uint64)
  778. )
  779. out := ret0
  780. err := _Hermez.contract.Call(opts, out, "withdrawalDelay")
  781. return *ret0, err
  782. }
  783. // WithdrawalDelay is a free data retrieval call binding the contract method 0xa7ab6961.
  784. //
  785. // Solidity: function withdrawalDelay() view returns(uint64)
  786. func (_Hermez *HermezSession) WithdrawalDelay() (uint64, error) {
  787. return _Hermez.Contract.WithdrawalDelay(&_Hermez.CallOpts)
  788. }
  789. // WithdrawalDelay is a free data retrieval call binding the contract method 0xa7ab6961.
  790. //
  791. // Solidity: function withdrawalDelay() view returns(uint64)
  792. func (_Hermez *HermezCallerSession) WithdrawalDelay() (uint64, error) {
  793. return _Hermez.Contract.WithdrawalDelay(&_Hermez.CallOpts)
  794. }
  795. // AddL1Transaction is a paid mutator transaction binding the contract method 0x886df587.
  796. //
  797. // Solidity: function addL1Transaction(uint256 babyPubKey, uint48 fromIdx, uint16 loadAmountF, uint16 amountF, uint32 tokenID, uint48 toIdx, bytes permit) payable returns()
  798. 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) {
  799. return _Hermez.contract.Transact(opts, "addL1Transaction", babyPubKey, fromIdx, loadAmountF, amountF, tokenID, toIdx, permit)
  800. }
  801. // AddL1Transaction is a paid mutator transaction binding the contract method 0x886df587.
  802. //
  803. // Solidity: function addL1Transaction(uint256 babyPubKey, uint48 fromIdx, uint16 loadAmountF, uint16 amountF, uint32 tokenID, uint48 toIdx, bytes permit) payable returns()
  804. func (_Hermez *HermezSession) AddL1Transaction(babyPubKey *big.Int, fromIdx *big.Int, loadAmountF uint16, amountF uint16, tokenID uint32, toIdx *big.Int, permit []byte) (*types.Transaction, error) {
  805. return _Hermez.Contract.AddL1Transaction(&_Hermez.TransactOpts, babyPubKey, fromIdx, loadAmountF, amountF, tokenID, toIdx, permit)
  806. }
  807. // AddL1Transaction is a paid mutator transaction binding the contract method 0x886df587.
  808. //
  809. // Solidity: function addL1Transaction(uint256 babyPubKey, uint48 fromIdx, uint16 loadAmountF, uint16 amountF, uint32 tokenID, uint48 toIdx, bytes permit) payable returns()
  810. func (_Hermez *HermezTransactorSession) AddL1Transaction(babyPubKey *big.Int, fromIdx *big.Int, loadAmountF uint16, amountF uint16, tokenID uint32, toIdx *big.Int, permit []byte) (*types.Transaction, error) {
  811. return _Hermez.Contract.AddL1Transaction(&_Hermez.TransactOpts, babyPubKey, fromIdx, loadAmountF, amountF, tokenID, toIdx, permit)
  812. }
  813. // AddToken is a paid mutator transaction binding the contract method 0x70c2f1c0.
  814. //
  815. // Solidity: function addToken(address tokenAddress, bytes permit) returns()
  816. func (_Hermez *HermezTransactor) AddToken(opts *bind.TransactOpts, tokenAddress common.Address, permit []byte) (*types.Transaction, error) {
  817. return _Hermez.contract.Transact(opts, "addToken", tokenAddress, permit)
  818. }
  819. // AddToken is a paid mutator transaction binding the contract method 0x70c2f1c0.
  820. //
  821. // Solidity: function addToken(address tokenAddress, bytes permit) returns()
  822. func (_Hermez *HermezSession) AddToken(tokenAddress common.Address, permit []byte) (*types.Transaction, error) {
  823. return _Hermez.Contract.AddToken(&_Hermez.TransactOpts, tokenAddress, permit)
  824. }
  825. // AddToken is a paid mutator transaction binding the contract method 0x70c2f1c0.
  826. //
  827. // Solidity: function addToken(address tokenAddress, bytes permit) returns()
  828. func (_Hermez *HermezTransactorSession) AddToken(tokenAddress common.Address, permit []byte) (*types.Transaction, error) {
  829. return _Hermez.Contract.AddToken(&_Hermez.TransactOpts, tokenAddress, permit)
  830. }
  831. // ForgeBatch is a paid mutator transaction binding the contract method 0x6e7e1365.
  832. //
  833. // Solidity: function forgeBatch(uint48 newLastIdx, uint256 newStRoot, uint256 newExitRoot, bytes encodedL1CoordinatorTx, bytes l2TxsData, bytes feeIdxCoordinator, uint8 verifierIdx, bool l1Batch, uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC) returns()
  834. func (_Hermez *HermezTransactor) ForgeBatch(opts *bind.TransactOpts, newLastIdx *big.Int, newStRoot *big.Int, newExitRoot *big.Int, encodedL1CoordinatorTx []byte, l2TxsData []byte, feeIdxCoordinator []byte, verifierIdx uint8, l1Batch bool, proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int) (*types.Transaction, error) {
  835. return _Hermez.contract.Transact(opts, "forgeBatch", newLastIdx, newStRoot, newExitRoot, encodedL1CoordinatorTx, l2TxsData, feeIdxCoordinator, verifierIdx, l1Batch, proofA, proofB, proofC)
  836. }
  837. // ForgeBatch is a paid mutator transaction binding the contract method 0x6e7e1365.
  838. //
  839. // Solidity: function forgeBatch(uint48 newLastIdx, uint256 newStRoot, uint256 newExitRoot, bytes encodedL1CoordinatorTx, bytes l2TxsData, bytes feeIdxCoordinator, uint8 verifierIdx, bool l1Batch, uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC) returns()
  840. func (_Hermez *HermezSession) ForgeBatch(newLastIdx *big.Int, newStRoot *big.Int, newExitRoot *big.Int, encodedL1CoordinatorTx []byte, l2TxsData []byte, feeIdxCoordinator []byte, verifierIdx uint8, l1Batch bool, proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int) (*types.Transaction, error) {
  841. return _Hermez.Contract.ForgeBatch(&_Hermez.TransactOpts, newLastIdx, newStRoot, newExitRoot, encodedL1CoordinatorTx, l2TxsData, feeIdxCoordinator, verifierIdx, l1Batch, proofA, proofB, proofC)
  842. }
  843. // ForgeBatch is a paid mutator transaction binding the contract method 0x6e7e1365.
  844. //
  845. // Solidity: function forgeBatch(uint48 newLastIdx, uint256 newStRoot, uint256 newExitRoot, bytes encodedL1CoordinatorTx, bytes l2TxsData, bytes feeIdxCoordinator, uint8 verifierIdx, bool l1Batch, uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC) returns()
  846. func (_Hermez *HermezTransactorSession) ForgeBatch(newLastIdx *big.Int, newStRoot *big.Int, newExitRoot *big.Int, encodedL1CoordinatorTx []byte, l2TxsData []byte, feeIdxCoordinator []byte, verifierIdx uint8, l1Batch bool, proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int) (*types.Transaction, error) {
  847. return _Hermez.Contract.ForgeBatch(&_Hermez.TransactOpts, newLastIdx, newStRoot, newExitRoot, encodedL1CoordinatorTx, l2TxsData, feeIdxCoordinator, verifierIdx, l1Batch, proofA, proofB, proofC)
  848. }
  849. // InitializeHermez is a paid mutator transaction binding the contract method 0x4ee51c26.
  850. //
  851. // Solidity: function initializeHermez(address[] _verifiers, uint256[] _verifiersParams, address _withdrawVerifier, address _hermezAuctionContract, address _tokenHEZ, uint8 _forgeL1L2BatchTimeout, uint256 _feeAddToken, address _poseidon2Elements, address _poseidon3Elements, address _poseidon4Elements, address _hermezGovernanceDAOAddress, address _safetyAddress, uint64 _withdrawalDelay, address _withdrawDelayerContract) returns()
  852. 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, _hermezGovernanceDAOAddress common.Address, _safetyAddress common.Address, _withdrawalDelay uint64, _withdrawDelayerContract common.Address) (*types.Transaction, error) {
  853. return _Hermez.contract.Transact(opts, "initializeHermez", _verifiers, _verifiersParams, _withdrawVerifier, _hermezAuctionContract, _tokenHEZ, _forgeL1L2BatchTimeout, _feeAddToken, _poseidon2Elements, _poseidon3Elements, _poseidon4Elements, _hermezGovernanceDAOAddress, _safetyAddress, _withdrawalDelay, _withdrawDelayerContract)
  854. }
  855. // InitializeHermez is a paid mutator transaction binding the contract method 0x4ee51c26.
  856. //
  857. // Solidity: function initializeHermez(address[] _verifiers, uint256[] _verifiersParams, address _withdrawVerifier, address _hermezAuctionContract, address _tokenHEZ, uint8 _forgeL1L2BatchTimeout, uint256 _feeAddToken, address _poseidon2Elements, address _poseidon3Elements, address _poseidon4Elements, address _hermezGovernanceDAOAddress, address _safetyAddress, uint64 _withdrawalDelay, address _withdrawDelayerContract) returns()
  858. 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, _hermezGovernanceDAOAddress common.Address, _safetyAddress common.Address, _withdrawalDelay uint64, _withdrawDelayerContract common.Address) (*types.Transaction, error) {
  859. return _Hermez.Contract.InitializeHermez(&_Hermez.TransactOpts, _verifiers, _verifiersParams, _withdrawVerifier, _hermezAuctionContract, _tokenHEZ, _forgeL1L2BatchTimeout, _feeAddToken, _poseidon2Elements, _poseidon3Elements, _poseidon4Elements, _hermezGovernanceDAOAddress, _safetyAddress, _withdrawalDelay, _withdrawDelayerContract)
  860. }
  861. // InitializeHermez is a paid mutator transaction binding the contract method 0x4ee51c26.
  862. //
  863. // Solidity: function initializeHermez(address[] _verifiers, uint256[] _verifiersParams, address _withdrawVerifier, address _hermezAuctionContract, address _tokenHEZ, uint8 _forgeL1L2BatchTimeout, uint256 _feeAddToken, address _poseidon2Elements, address _poseidon3Elements, address _poseidon4Elements, address _hermezGovernanceDAOAddress, address _safetyAddress, uint64 _withdrawalDelay, address _withdrawDelayerContract) returns()
  864. 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, _hermezGovernanceDAOAddress common.Address, _safetyAddress common.Address, _withdrawalDelay uint64, _withdrawDelayerContract common.Address) (*types.Transaction, error) {
  865. return _Hermez.Contract.InitializeHermez(&_Hermez.TransactOpts, _verifiers, _verifiersParams, _withdrawVerifier, _hermezAuctionContract, _tokenHEZ, _forgeL1L2BatchTimeout, _feeAddToken, _poseidon2Elements, _poseidon3Elements, _poseidon4Elements, _hermezGovernanceDAOAddress, _safetyAddress, _withdrawalDelay, _withdrawDelayerContract)
  866. }
  867. // SafeMode is a paid mutator transaction binding the contract method 0xabe3219c.
  868. //
  869. // Solidity: function safeMode() returns()
  870. func (_Hermez *HermezTransactor) SafeMode(opts *bind.TransactOpts) (*types.Transaction, error) {
  871. return _Hermez.contract.Transact(opts, "safeMode")
  872. }
  873. // SafeMode is a paid mutator transaction binding the contract method 0xabe3219c.
  874. //
  875. // Solidity: function safeMode() returns()
  876. func (_Hermez *HermezSession) SafeMode() (*types.Transaction, error) {
  877. return _Hermez.Contract.SafeMode(&_Hermez.TransactOpts)
  878. }
  879. // SafeMode is a paid mutator transaction binding the contract method 0xabe3219c.
  880. //
  881. // Solidity: function safeMode() returns()
  882. func (_Hermez *HermezTransactorSession) SafeMode() (*types.Transaction, error) {
  883. return _Hermez.Contract.SafeMode(&_Hermez.TransactOpts)
  884. }
  885. // UpdateBucketsParameters is a paid mutator transaction binding the contract method 0x68e95e53.
  886. //
  887. // Solidity: function updateBucketsParameters(uint256[4][5] arrayBuckets) returns()
  888. func (_Hermez *HermezTransactor) UpdateBucketsParameters(opts *bind.TransactOpts, arrayBuckets [5][4]*big.Int) (*types.Transaction, error) {
  889. return _Hermez.contract.Transact(opts, "updateBucketsParameters", arrayBuckets)
  890. }
  891. // UpdateBucketsParameters is a paid mutator transaction binding the contract method 0x68e95e53.
  892. //
  893. // Solidity: function updateBucketsParameters(uint256[4][5] arrayBuckets) returns()
  894. func (_Hermez *HermezSession) UpdateBucketsParameters(arrayBuckets [5][4]*big.Int) (*types.Transaction, error) {
  895. return _Hermez.Contract.UpdateBucketsParameters(&_Hermez.TransactOpts, arrayBuckets)
  896. }
  897. // UpdateBucketsParameters is a paid mutator transaction binding the contract method 0x68e95e53.
  898. //
  899. // Solidity: function updateBucketsParameters(uint256[4][5] arrayBuckets) returns()
  900. func (_Hermez *HermezTransactorSession) UpdateBucketsParameters(arrayBuckets [5][4]*big.Int) (*types.Transaction, error) {
  901. return _Hermez.Contract.UpdateBucketsParameters(&_Hermez.TransactOpts, arrayBuckets)
  902. }
  903. // UpdateFeeAddToken is a paid mutator transaction binding the contract method 0x314e5eda.
  904. //
  905. // Solidity: function updateFeeAddToken(uint256 newFeeAddToken) returns()
  906. func (_Hermez *HermezTransactor) UpdateFeeAddToken(opts *bind.TransactOpts, newFeeAddToken *big.Int) (*types.Transaction, error) {
  907. return _Hermez.contract.Transact(opts, "updateFeeAddToken", newFeeAddToken)
  908. }
  909. // UpdateFeeAddToken is a paid mutator transaction binding the contract method 0x314e5eda.
  910. //
  911. // Solidity: function updateFeeAddToken(uint256 newFeeAddToken) returns()
  912. func (_Hermez *HermezSession) UpdateFeeAddToken(newFeeAddToken *big.Int) (*types.Transaction, error) {
  913. return _Hermez.Contract.UpdateFeeAddToken(&_Hermez.TransactOpts, newFeeAddToken)
  914. }
  915. // UpdateFeeAddToken is a paid mutator transaction binding the contract method 0x314e5eda.
  916. //
  917. // Solidity: function updateFeeAddToken(uint256 newFeeAddToken) returns()
  918. func (_Hermez *HermezTransactorSession) UpdateFeeAddToken(newFeeAddToken *big.Int) (*types.Transaction, error) {
  919. return _Hermez.Contract.UpdateFeeAddToken(&_Hermez.TransactOpts, newFeeAddToken)
  920. }
  921. // UpdateForgeL1L2BatchTimeout is a paid mutator transaction binding the contract method 0xcbd7b5fb.
  922. //
  923. // Solidity: function updateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout) returns()
  924. func (_Hermez *HermezTransactor) UpdateForgeL1L2BatchTimeout(opts *bind.TransactOpts, newForgeL1L2BatchTimeout uint8) (*types.Transaction, error) {
  925. return _Hermez.contract.Transact(opts, "updateForgeL1L2BatchTimeout", newForgeL1L2BatchTimeout)
  926. }
  927. // UpdateForgeL1L2BatchTimeout is a paid mutator transaction binding the contract method 0xcbd7b5fb.
  928. //
  929. // Solidity: function updateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout) returns()
  930. func (_Hermez *HermezSession) UpdateForgeL1L2BatchTimeout(newForgeL1L2BatchTimeout uint8) (*types.Transaction, error) {
  931. return _Hermez.Contract.UpdateForgeL1L2BatchTimeout(&_Hermez.TransactOpts, newForgeL1L2BatchTimeout)
  932. }
  933. // UpdateForgeL1L2BatchTimeout is a paid mutator transaction binding the contract method 0xcbd7b5fb.
  934. //
  935. // Solidity: function updateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout) returns()
  936. func (_Hermez *HermezTransactorSession) UpdateForgeL1L2BatchTimeout(newForgeL1L2BatchTimeout uint8) (*types.Transaction, error) {
  937. return _Hermez.Contract.UpdateForgeL1L2BatchTimeout(&_Hermez.TransactOpts, newForgeL1L2BatchTimeout)
  938. }
  939. // UpdateTokenExchange is a paid mutator transaction binding the contract method 0x1a748c2d.
  940. //
  941. // Solidity: function updateTokenExchange(address[] addressArray, uint64[] valueArray) returns()
  942. func (_Hermez *HermezTransactor) UpdateTokenExchange(opts *bind.TransactOpts, addressArray []common.Address, valueArray []uint64) (*types.Transaction, error) {
  943. return _Hermez.contract.Transact(opts, "updateTokenExchange", addressArray, valueArray)
  944. }
  945. // UpdateTokenExchange is a paid mutator transaction binding the contract method 0x1a748c2d.
  946. //
  947. // Solidity: function updateTokenExchange(address[] addressArray, uint64[] valueArray) returns()
  948. func (_Hermez *HermezSession) UpdateTokenExchange(addressArray []common.Address, valueArray []uint64) (*types.Transaction, error) {
  949. return _Hermez.Contract.UpdateTokenExchange(&_Hermez.TransactOpts, addressArray, valueArray)
  950. }
  951. // UpdateTokenExchange is a paid mutator transaction binding the contract method 0x1a748c2d.
  952. //
  953. // Solidity: function updateTokenExchange(address[] addressArray, uint64[] valueArray) returns()
  954. func (_Hermez *HermezTransactorSession) UpdateTokenExchange(addressArray []common.Address, valueArray []uint64) (*types.Transaction, error) {
  955. return _Hermez.Contract.UpdateTokenExchange(&_Hermez.TransactOpts, addressArray, valueArray)
  956. }
  957. // UpdateWithdrawalDelay is a paid mutator transaction binding the contract method 0xef4a5c4a.
  958. //
  959. // Solidity: function updateWithdrawalDelay(uint64 newWithdrawalDelay) returns()
  960. func (_Hermez *HermezTransactor) UpdateWithdrawalDelay(opts *bind.TransactOpts, newWithdrawalDelay uint64) (*types.Transaction, error) {
  961. return _Hermez.contract.Transact(opts, "updateWithdrawalDelay", newWithdrawalDelay)
  962. }
  963. // UpdateWithdrawalDelay is a paid mutator transaction binding the contract method 0xef4a5c4a.
  964. //
  965. // Solidity: function updateWithdrawalDelay(uint64 newWithdrawalDelay) returns()
  966. func (_Hermez *HermezSession) UpdateWithdrawalDelay(newWithdrawalDelay uint64) (*types.Transaction, error) {
  967. return _Hermez.Contract.UpdateWithdrawalDelay(&_Hermez.TransactOpts, newWithdrawalDelay)
  968. }
  969. // UpdateWithdrawalDelay is a paid mutator transaction binding the contract method 0xef4a5c4a.
  970. //
  971. // Solidity: function updateWithdrawalDelay(uint64 newWithdrawalDelay) returns()
  972. func (_Hermez *HermezTransactorSession) UpdateWithdrawalDelay(newWithdrawalDelay uint64) (*types.Transaction, error) {
  973. return _Hermez.Contract.UpdateWithdrawalDelay(&_Hermez.TransactOpts, newWithdrawalDelay)
  974. }
  975. // WithdrawCircuit is a paid mutator transaction binding the contract method 0xc63cc3a0.
  976. //
  977. // Solidity: function withdrawCircuit(uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC, uint32 tokenID, uint192 amount, uint48 numExitRoot, uint48 idx, bool instantWithdraw) returns()
  978. 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 *big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
  979. return _Hermez.contract.Transact(opts, "withdrawCircuit", proofA, proofB, proofC, tokenID, amount, numExitRoot, idx, instantWithdraw)
  980. }
  981. // WithdrawCircuit is a paid mutator transaction binding the contract method 0xc63cc3a0.
  982. //
  983. // Solidity: function withdrawCircuit(uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC, uint32 tokenID, uint192 amount, uint48 numExitRoot, uint48 idx, bool instantWithdraw) returns()
  984. func (_Hermez *HermezSession) WithdrawCircuit(proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int, tokenID uint32, amount *big.Int, numExitRoot *big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
  985. return _Hermez.Contract.WithdrawCircuit(&_Hermez.TransactOpts, proofA, proofB, proofC, tokenID, amount, numExitRoot, idx, instantWithdraw)
  986. }
  987. // WithdrawCircuit is a paid mutator transaction binding the contract method 0xc63cc3a0.
  988. //
  989. // Solidity: function withdrawCircuit(uint256[2] proofA, uint256[2][2] proofB, uint256[2] proofC, uint32 tokenID, uint192 amount, uint48 numExitRoot, uint48 idx, bool instantWithdraw) returns()
  990. func (_Hermez *HermezTransactorSession) WithdrawCircuit(proofA [2]*big.Int, proofB [2][2]*big.Int, proofC [2]*big.Int, tokenID uint32, amount *big.Int, numExitRoot *big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
  991. return _Hermez.Contract.WithdrawCircuit(&_Hermez.TransactOpts, proofA, proofB, proofC, tokenID, amount, numExitRoot, idx, instantWithdraw)
  992. }
  993. // WithdrawMerkleProof is a paid mutator transaction binding the contract method 0x432dd51f.
  994. //
  995. // Solidity: function withdrawMerkleProof(uint32 tokenID, uint192 amount, uint256 babyPubKey, uint48 numExitRoot, uint256[] siblings, uint48 idx, bool instantWithdraw) returns()
  996. func (_Hermez *HermezTransactor) WithdrawMerkleProof(opts *bind.TransactOpts, tokenID uint32, amount *big.Int, babyPubKey *big.Int, numExitRoot *big.Int, siblings []*big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
  997. return _Hermez.contract.Transact(opts, "withdrawMerkleProof", tokenID, amount, babyPubKey, numExitRoot, siblings, idx, instantWithdraw)
  998. }
  999. // WithdrawMerkleProof is a paid mutator transaction binding the contract method 0x432dd51f.
  1000. //
  1001. // Solidity: function withdrawMerkleProof(uint32 tokenID, uint192 amount, uint256 babyPubKey, uint48 numExitRoot, uint256[] siblings, uint48 idx, bool instantWithdraw) returns()
  1002. func (_Hermez *HermezSession) WithdrawMerkleProof(tokenID uint32, amount *big.Int, babyPubKey *big.Int, numExitRoot *big.Int, siblings []*big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
  1003. return _Hermez.Contract.WithdrawMerkleProof(&_Hermez.TransactOpts, tokenID, amount, babyPubKey, numExitRoot, siblings, idx, instantWithdraw)
  1004. }
  1005. // WithdrawMerkleProof is a paid mutator transaction binding the contract method 0x432dd51f.
  1006. //
  1007. // Solidity: function withdrawMerkleProof(uint32 tokenID, uint192 amount, uint256 babyPubKey, uint48 numExitRoot, uint256[] siblings, uint48 idx, bool instantWithdraw) returns()
  1008. func (_Hermez *HermezTransactorSession) WithdrawMerkleProof(tokenID uint32, amount *big.Int, babyPubKey *big.Int, numExitRoot *big.Int, siblings []*big.Int, idx *big.Int, instantWithdraw bool) (*types.Transaction, error) {
  1009. return _Hermez.Contract.WithdrawMerkleProof(&_Hermez.TransactOpts, tokenID, amount, babyPubKey, numExitRoot, siblings, idx, instantWithdraw)
  1010. }
  1011. // 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.
  1012. type HermezAddTokenIterator struct {
  1013. Event *HermezAddToken // Event containing the contract specifics and raw log
  1014. contract *bind.BoundContract // Generic contract to use for unpacking event data
  1015. event string // Event name to use for unpacking event data
  1016. logs chan types.Log // Log channel receiving the found contract events
  1017. sub ethereum.Subscription // Subscription for errors, completion and termination
  1018. done bool // Whether the subscription completed delivering logs
  1019. fail error // Occurred error to stop iteration
  1020. }
  1021. // Next advances the iterator to the subsequent event, returning whether there
  1022. // are any more events found. In case of a retrieval or parsing error, false is
  1023. // returned and Error() can be queried for the exact failure.
  1024. func (it *HermezAddTokenIterator) Next() bool {
  1025. // If the iterator failed, stop iterating
  1026. if it.fail != nil {
  1027. return false
  1028. }
  1029. // If the iterator completed, deliver directly whatever's available
  1030. if it.done {
  1031. select {
  1032. case log := <-it.logs:
  1033. it.Event = new(HermezAddToken)
  1034. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1035. it.fail = err
  1036. return false
  1037. }
  1038. it.Event.Raw = log
  1039. return true
  1040. default:
  1041. return false
  1042. }
  1043. }
  1044. // Iterator still in progress, wait for either a data or an error event
  1045. select {
  1046. case log := <-it.logs:
  1047. it.Event = new(HermezAddToken)
  1048. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1049. it.fail = err
  1050. return false
  1051. }
  1052. it.Event.Raw = log
  1053. return true
  1054. case err := <-it.sub.Err():
  1055. it.done = true
  1056. it.fail = err
  1057. return it.Next()
  1058. }
  1059. }
  1060. // Error returns any retrieval or parsing error occurred during filtering.
  1061. func (it *HermezAddTokenIterator) Error() error {
  1062. return it.fail
  1063. }
  1064. // Close terminates the iteration process, releasing any pending underlying
  1065. // resources.
  1066. func (it *HermezAddTokenIterator) Close() error {
  1067. it.sub.Unsubscribe()
  1068. return nil
  1069. }
  1070. // HermezAddToken represents a AddToken event raised by the Hermez contract.
  1071. type HermezAddToken struct {
  1072. TokenAddress common.Address
  1073. TokenID uint32
  1074. Raw types.Log // Blockchain specific contextual infos
  1075. }
  1076. // FilterAddToken is a free log retrieval operation binding the contract event 0xcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde.
  1077. //
  1078. // Solidity: event AddToken(address indexed tokenAddress, uint32 tokenID)
  1079. func (_Hermez *HermezFilterer) FilterAddToken(opts *bind.FilterOpts, tokenAddress []common.Address) (*HermezAddTokenIterator, error) {
  1080. var tokenAddressRule []interface{}
  1081. for _, tokenAddressItem := range tokenAddress {
  1082. tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  1083. }
  1084. logs, sub, err := _Hermez.contract.FilterLogs(opts, "AddToken", tokenAddressRule)
  1085. if err != nil {
  1086. return nil, err
  1087. }
  1088. return &HermezAddTokenIterator{contract: _Hermez.contract, event: "AddToken", logs: logs, sub: sub}, nil
  1089. }
  1090. // WatchAddToken is a free log subscription operation binding the contract event 0xcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde.
  1091. //
  1092. // Solidity: event AddToken(address indexed tokenAddress, uint32 tokenID)
  1093. func (_Hermez *HermezFilterer) WatchAddToken(opts *bind.WatchOpts, sink chan<- *HermezAddToken, tokenAddress []common.Address) (event.Subscription, error) {
  1094. var tokenAddressRule []interface{}
  1095. for _, tokenAddressItem := range tokenAddress {
  1096. tokenAddressRule = append(tokenAddressRule, tokenAddressItem)
  1097. }
  1098. logs, sub, err := _Hermez.contract.WatchLogs(opts, "AddToken", tokenAddressRule)
  1099. if err != nil {
  1100. return nil, err
  1101. }
  1102. return event.NewSubscription(func(quit <-chan struct{}) error {
  1103. defer sub.Unsubscribe()
  1104. for {
  1105. select {
  1106. case log := <-logs:
  1107. // New log arrived, parse the event and forward to the user
  1108. event := new(HermezAddToken)
  1109. if err := _Hermez.contract.UnpackLog(event, "AddToken", log); err != nil {
  1110. return err
  1111. }
  1112. event.Raw = log
  1113. select {
  1114. case sink <- event:
  1115. case err := <-sub.Err():
  1116. return err
  1117. case <-quit:
  1118. return nil
  1119. }
  1120. case err := <-sub.Err():
  1121. return err
  1122. case <-quit:
  1123. return nil
  1124. }
  1125. }
  1126. }), nil
  1127. }
  1128. // ParseAddToken is a log parse operation binding the contract event 0xcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde.
  1129. //
  1130. // Solidity: event AddToken(address indexed tokenAddress, uint32 tokenID)
  1131. func (_Hermez *HermezFilterer) ParseAddToken(log types.Log) (*HermezAddToken, error) {
  1132. event := new(HermezAddToken)
  1133. if err := _Hermez.contract.UnpackLog(event, "AddToken", log); err != nil {
  1134. return nil, err
  1135. }
  1136. return event, nil
  1137. }
  1138. // 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.
  1139. type HermezForgeBatchIterator struct {
  1140. Event *HermezForgeBatch // Event containing the contract specifics and raw log
  1141. contract *bind.BoundContract // Generic contract to use for unpacking event data
  1142. event string // Event name to use for unpacking event data
  1143. logs chan types.Log // Log channel receiving the found contract events
  1144. sub ethereum.Subscription // Subscription for errors, completion and termination
  1145. done bool // Whether the subscription completed delivering logs
  1146. fail error // Occurred error to stop iteration
  1147. }
  1148. // Next advances the iterator to the subsequent event, returning whether there
  1149. // are any more events found. In case of a retrieval or parsing error, false is
  1150. // returned and Error() can be queried for the exact failure.
  1151. func (it *HermezForgeBatchIterator) Next() bool {
  1152. // If the iterator failed, stop iterating
  1153. if it.fail != nil {
  1154. return false
  1155. }
  1156. // If the iterator completed, deliver directly whatever's available
  1157. if it.done {
  1158. select {
  1159. case log := <-it.logs:
  1160. it.Event = new(HermezForgeBatch)
  1161. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1162. it.fail = err
  1163. return false
  1164. }
  1165. it.Event.Raw = log
  1166. return true
  1167. default:
  1168. return false
  1169. }
  1170. }
  1171. // Iterator still in progress, wait for either a data or an error event
  1172. select {
  1173. case log := <-it.logs:
  1174. it.Event = new(HermezForgeBatch)
  1175. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1176. it.fail = err
  1177. return false
  1178. }
  1179. it.Event.Raw = log
  1180. return true
  1181. case err := <-it.sub.Err():
  1182. it.done = true
  1183. it.fail = err
  1184. return it.Next()
  1185. }
  1186. }
  1187. // Error returns any retrieval or parsing error occurred during filtering.
  1188. func (it *HermezForgeBatchIterator) Error() error {
  1189. return it.fail
  1190. }
  1191. // Close terminates the iteration process, releasing any pending underlying
  1192. // resources.
  1193. func (it *HermezForgeBatchIterator) Close() error {
  1194. it.sub.Unsubscribe()
  1195. return nil
  1196. }
  1197. // HermezForgeBatch represents a ForgeBatch event raised by the Hermez contract.
  1198. type HermezForgeBatch struct {
  1199. BatchNum uint64
  1200. Raw types.Log // Blockchain specific contextual infos
  1201. }
  1202. // FilterForgeBatch is a free log retrieval operation binding the contract event 0xd7ab70a9e6ed0d6985e74c5cb553d300a13a2217d58266922b275b72fe786982.
  1203. //
  1204. // Solidity: event ForgeBatch(uint64 indexed batchNum)
  1205. func (_Hermez *HermezFilterer) FilterForgeBatch(opts *bind.FilterOpts, batchNum []uint64) (*HermezForgeBatchIterator, error) {
  1206. var batchNumRule []interface{}
  1207. for _, batchNumItem := range batchNum {
  1208. batchNumRule = append(batchNumRule, batchNumItem)
  1209. }
  1210. logs, sub, err := _Hermez.contract.FilterLogs(opts, "ForgeBatch", batchNumRule)
  1211. if err != nil {
  1212. return nil, err
  1213. }
  1214. return &HermezForgeBatchIterator{contract: _Hermez.contract, event: "ForgeBatch", logs: logs, sub: sub}, nil
  1215. }
  1216. // WatchForgeBatch is a free log subscription operation binding the contract event 0xd7ab70a9e6ed0d6985e74c5cb553d300a13a2217d58266922b275b72fe786982.
  1217. //
  1218. // Solidity: event ForgeBatch(uint64 indexed batchNum)
  1219. func (_Hermez *HermezFilterer) WatchForgeBatch(opts *bind.WatchOpts, sink chan<- *HermezForgeBatch, batchNum []uint64) (event.Subscription, error) {
  1220. var batchNumRule []interface{}
  1221. for _, batchNumItem := range batchNum {
  1222. batchNumRule = append(batchNumRule, batchNumItem)
  1223. }
  1224. logs, sub, err := _Hermez.contract.WatchLogs(opts, "ForgeBatch", batchNumRule)
  1225. if err != nil {
  1226. return nil, err
  1227. }
  1228. return event.NewSubscription(func(quit <-chan struct{}) error {
  1229. defer sub.Unsubscribe()
  1230. for {
  1231. select {
  1232. case log := <-logs:
  1233. // New log arrived, parse the event and forward to the user
  1234. event := new(HermezForgeBatch)
  1235. if err := _Hermez.contract.UnpackLog(event, "ForgeBatch", log); err != nil {
  1236. return err
  1237. }
  1238. event.Raw = log
  1239. select {
  1240. case sink <- event:
  1241. case err := <-sub.Err():
  1242. return err
  1243. case <-quit:
  1244. return nil
  1245. }
  1246. case err := <-sub.Err():
  1247. return err
  1248. case <-quit:
  1249. return nil
  1250. }
  1251. }
  1252. }), nil
  1253. }
  1254. // ParseForgeBatch is a log parse operation binding the contract event 0xd7ab70a9e6ed0d6985e74c5cb553d300a13a2217d58266922b275b72fe786982.
  1255. //
  1256. // Solidity: event ForgeBatch(uint64 indexed batchNum)
  1257. func (_Hermez *HermezFilterer) ParseForgeBatch(log types.Log) (*HermezForgeBatch, error) {
  1258. event := new(HermezForgeBatch)
  1259. if err := _Hermez.contract.UnpackLog(event, "ForgeBatch", log); err != nil {
  1260. return nil, err
  1261. }
  1262. return event, nil
  1263. }
  1264. // 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.
  1265. type HermezL1UserTxEventIterator struct {
  1266. Event *HermezL1UserTxEvent // Event containing the contract specifics and raw log
  1267. contract *bind.BoundContract // Generic contract to use for unpacking event data
  1268. event string // Event name to use for unpacking event data
  1269. logs chan types.Log // Log channel receiving the found contract events
  1270. sub ethereum.Subscription // Subscription for errors, completion and termination
  1271. done bool // Whether the subscription completed delivering logs
  1272. fail error // Occurred error to stop iteration
  1273. }
  1274. // Next advances the iterator to the subsequent event, returning whether there
  1275. // are any more events found. In case of a retrieval or parsing error, false is
  1276. // returned and Error() can be queried for the exact failure.
  1277. func (it *HermezL1UserTxEventIterator) Next() bool {
  1278. // If the iterator failed, stop iterating
  1279. if it.fail != nil {
  1280. return false
  1281. }
  1282. // If the iterator completed, deliver directly whatever's available
  1283. if it.done {
  1284. select {
  1285. case log := <-it.logs:
  1286. it.Event = new(HermezL1UserTxEvent)
  1287. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1288. it.fail = err
  1289. return false
  1290. }
  1291. it.Event.Raw = log
  1292. return true
  1293. default:
  1294. return false
  1295. }
  1296. }
  1297. // Iterator still in progress, wait for either a data or an error event
  1298. select {
  1299. case log := <-it.logs:
  1300. it.Event = new(HermezL1UserTxEvent)
  1301. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1302. it.fail = err
  1303. return false
  1304. }
  1305. it.Event.Raw = log
  1306. return true
  1307. case err := <-it.sub.Err():
  1308. it.done = true
  1309. it.fail = err
  1310. return it.Next()
  1311. }
  1312. }
  1313. // Error returns any retrieval or parsing error occurred during filtering.
  1314. func (it *HermezL1UserTxEventIterator) Error() error {
  1315. return it.fail
  1316. }
  1317. // Close terminates the iteration process, releasing any pending underlying
  1318. // resources.
  1319. func (it *HermezL1UserTxEventIterator) Close() error {
  1320. it.sub.Unsubscribe()
  1321. return nil
  1322. }
  1323. // HermezL1UserTxEvent represents a L1UserTxEvent event raised by the Hermez contract.
  1324. type HermezL1UserTxEvent struct {
  1325. QueueIndex uint64
  1326. Position uint8
  1327. L1UserTx []byte
  1328. Raw types.Log // Blockchain specific contextual infos
  1329. }
  1330. // FilterL1UserTxEvent is a free log retrieval operation binding the contract event 0x7f40be4e420c002c02fa9cad961f6a7620769d32d272f3f8c15e3ff59de9310e.
  1331. //
  1332. // Solidity: event L1UserTxEvent(uint64 indexed queueIndex, uint8 indexed position, bytes l1UserTx)
  1333. func (_Hermez *HermezFilterer) FilterL1UserTxEvent(opts *bind.FilterOpts, queueIndex []uint64, position []uint8) (*HermezL1UserTxEventIterator, error) {
  1334. var queueIndexRule []interface{}
  1335. for _, queueIndexItem := range queueIndex {
  1336. queueIndexRule = append(queueIndexRule, queueIndexItem)
  1337. }
  1338. var positionRule []interface{}
  1339. for _, positionItem := range position {
  1340. positionRule = append(positionRule, positionItem)
  1341. }
  1342. logs, sub, err := _Hermez.contract.FilterLogs(opts, "L1UserTxEvent", queueIndexRule, positionRule)
  1343. if err != nil {
  1344. return nil, err
  1345. }
  1346. return &HermezL1UserTxEventIterator{contract: _Hermez.contract, event: "L1UserTxEvent", logs: logs, sub: sub}, nil
  1347. }
  1348. // WatchL1UserTxEvent is a free log subscription operation binding the contract event 0x7f40be4e420c002c02fa9cad961f6a7620769d32d272f3f8c15e3ff59de9310e.
  1349. //
  1350. // Solidity: event L1UserTxEvent(uint64 indexed queueIndex, uint8 indexed position, bytes l1UserTx)
  1351. func (_Hermez *HermezFilterer) WatchL1UserTxEvent(opts *bind.WatchOpts, sink chan<- *HermezL1UserTxEvent, queueIndex []uint64, position []uint8) (event.Subscription, error) {
  1352. var queueIndexRule []interface{}
  1353. for _, queueIndexItem := range queueIndex {
  1354. queueIndexRule = append(queueIndexRule, queueIndexItem)
  1355. }
  1356. var positionRule []interface{}
  1357. for _, positionItem := range position {
  1358. positionRule = append(positionRule, positionItem)
  1359. }
  1360. logs, sub, err := _Hermez.contract.WatchLogs(opts, "L1UserTxEvent", queueIndexRule, positionRule)
  1361. if err != nil {
  1362. return nil, err
  1363. }
  1364. return event.NewSubscription(func(quit <-chan struct{}) error {
  1365. defer sub.Unsubscribe()
  1366. for {
  1367. select {
  1368. case log := <-logs:
  1369. // New log arrived, parse the event and forward to the user
  1370. event := new(HermezL1UserTxEvent)
  1371. if err := _Hermez.contract.UnpackLog(event, "L1UserTxEvent", log); err != nil {
  1372. return err
  1373. }
  1374. event.Raw = log
  1375. select {
  1376. case sink <- event:
  1377. case err := <-sub.Err():
  1378. return err
  1379. case <-quit:
  1380. return nil
  1381. }
  1382. case err := <-sub.Err():
  1383. return err
  1384. case <-quit:
  1385. return nil
  1386. }
  1387. }
  1388. }), nil
  1389. }
  1390. // ParseL1UserTxEvent is a log parse operation binding the contract event 0x7f40be4e420c002c02fa9cad961f6a7620769d32d272f3f8c15e3ff59de9310e.
  1391. //
  1392. // Solidity: event L1UserTxEvent(uint64 indexed queueIndex, uint8 indexed position, bytes l1UserTx)
  1393. func (_Hermez *HermezFilterer) ParseL1UserTxEvent(log types.Log) (*HermezL1UserTxEvent, error) {
  1394. event := new(HermezL1UserTxEvent)
  1395. if err := _Hermez.contract.UnpackLog(event, "L1UserTxEvent", log); err != nil {
  1396. return nil, err
  1397. }
  1398. return event, nil
  1399. }
  1400. // 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.
  1401. type HermezUpdateFeeAddTokenIterator struct {
  1402. Event *HermezUpdateFeeAddToken // Event containing the contract specifics and raw log
  1403. contract *bind.BoundContract // Generic contract to use for unpacking event data
  1404. event string // Event name to use for unpacking event data
  1405. logs chan types.Log // Log channel receiving the found contract events
  1406. sub ethereum.Subscription // Subscription for errors, completion and termination
  1407. done bool // Whether the subscription completed delivering logs
  1408. fail error // Occurred error to stop iteration
  1409. }
  1410. // Next advances the iterator to the subsequent event, returning whether there
  1411. // are any more events found. In case of a retrieval or parsing error, false is
  1412. // returned and Error() can be queried for the exact failure.
  1413. func (it *HermezUpdateFeeAddTokenIterator) Next() bool {
  1414. // If the iterator failed, stop iterating
  1415. if it.fail != nil {
  1416. return false
  1417. }
  1418. // If the iterator completed, deliver directly whatever's available
  1419. if it.done {
  1420. select {
  1421. case log := <-it.logs:
  1422. it.Event = new(HermezUpdateFeeAddToken)
  1423. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1424. it.fail = err
  1425. return false
  1426. }
  1427. it.Event.Raw = log
  1428. return true
  1429. default:
  1430. return false
  1431. }
  1432. }
  1433. // Iterator still in progress, wait for either a data or an error event
  1434. select {
  1435. case log := <-it.logs:
  1436. it.Event = new(HermezUpdateFeeAddToken)
  1437. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1438. it.fail = err
  1439. return false
  1440. }
  1441. it.Event.Raw = log
  1442. return true
  1443. case err := <-it.sub.Err():
  1444. it.done = true
  1445. it.fail = err
  1446. return it.Next()
  1447. }
  1448. }
  1449. // Error returns any retrieval or parsing error occurred during filtering.
  1450. func (it *HermezUpdateFeeAddTokenIterator) Error() error {
  1451. return it.fail
  1452. }
  1453. // Close terminates the iteration process, releasing any pending underlying
  1454. // resources.
  1455. func (it *HermezUpdateFeeAddTokenIterator) Close() error {
  1456. it.sub.Unsubscribe()
  1457. return nil
  1458. }
  1459. // HermezUpdateFeeAddToken represents a UpdateFeeAddToken event raised by the Hermez contract.
  1460. type HermezUpdateFeeAddToken struct {
  1461. NewFeeAddToken *big.Int
  1462. Raw types.Log // Blockchain specific contextual infos
  1463. }
  1464. // FilterUpdateFeeAddToken is a free log retrieval operation binding the contract event 0xd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c1.
  1465. //
  1466. // Solidity: event UpdateFeeAddToken(uint256 newFeeAddToken)
  1467. func (_Hermez *HermezFilterer) FilterUpdateFeeAddToken(opts *bind.FilterOpts) (*HermezUpdateFeeAddTokenIterator, error) {
  1468. logs, sub, err := _Hermez.contract.FilterLogs(opts, "UpdateFeeAddToken")
  1469. if err != nil {
  1470. return nil, err
  1471. }
  1472. return &HermezUpdateFeeAddTokenIterator{contract: _Hermez.contract, event: "UpdateFeeAddToken", logs: logs, sub: sub}, nil
  1473. }
  1474. // WatchUpdateFeeAddToken is a free log subscription operation binding the contract event 0xd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c1.
  1475. //
  1476. // Solidity: event UpdateFeeAddToken(uint256 newFeeAddToken)
  1477. func (_Hermez *HermezFilterer) WatchUpdateFeeAddToken(opts *bind.WatchOpts, sink chan<- *HermezUpdateFeeAddToken) (event.Subscription, error) {
  1478. logs, sub, err := _Hermez.contract.WatchLogs(opts, "UpdateFeeAddToken")
  1479. if err != nil {
  1480. return nil, err
  1481. }
  1482. return event.NewSubscription(func(quit <-chan struct{}) error {
  1483. defer sub.Unsubscribe()
  1484. for {
  1485. select {
  1486. case log := <-logs:
  1487. // New log arrived, parse the event and forward to the user
  1488. event := new(HermezUpdateFeeAddToken)
  1489. if err := _Hermez.contract.UnpackLog(event, "UpdateFeeAddToken", log); err != nil {
  1490. return err
  1491. }
  1492. event.Raw = log
  1493. select {
  1494. case sink <- event:
  1495. case err := <-sub.Err():
  1496. return err
  1497. case <-quit:
  1498. return nil
  1499. }
  1500. case err := <-sub.Err():
  1501. return err
  1502. case <-quit:
  1503. return nil
  1504. }
  1505. }
  1506. }), nil
  1507. }
  1508. // ParseUpdateFeeAddToken is a log parse operation binding the contract event 0xd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c1.
  1509. //
  1510. // Solidity: event UpdateFeeAddToken(uint256 newFeeAddToken)
  1511. func (_Hermez *HermezFilterer) ParseUpdateFeeAddToken(log types.Log) (*HermezUpdateFeeAddToken, error) {
  1512. event := new(HermezUpdateFeeAddToken)
  1513. if err := _Hermez.contract.UnpackLog(event, "UpdateFeeAddToken", log); err != nil {
  1514. return nil, err
  1515. }
  1516. return event, nil
  1517. }
  1518. // 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.
  1519. type HermezUpdateForgeL1L2BatchTimeoutIterator struct {
  1520. Event *HermezUpdateForgeL1L2BatchTimeout // Event containing the contract specifics and raw log
  1521. contract *bind.BoundContract // Generic contract to use for unpacking event data
  1522. event string // Event name to use for unpacking event data
  1523. logs chan types.Log // Log channel receiving the found contract events
  1524. sub ethereum.Subscription // Subscription for errors, completion and termination
  1525. done bool // Whether the subscription completed delivering logs
  1526. fail error // Occurred error to stop iteration
  1527. }
  1528. // Next advances the iterator to the subsequent event, returning whether there
  1529. // are any more events found. In case of a retrieval or parsing error, false is
  1530. // returned and Error() can be queried for the exact failure.
  1531. func (it *HermezUpdateForgeL1L2BatchTimeoutIterator) Next() bool {
  1532. // If the iterator failed, stop iterating
  1533. if it.fail != nil {
  1534. return false
  1535. }
  1536. // If the iterator completed, deliver directly whatever's available
  1537. if it.done {
  1538. select {
  1539. case log := <-it.logs:
  1540. it.Event = new(HermezUpdateForgeL1L2BatchTimeout)
  1541. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1542. it.fail = err
  1543. return false
  1544. }
  1545. it.Event.Raw = log
  1546. return true
  1547. default:
  1548. return false
  1549. }
  1550. }
  1551. // Iterator still in progress, wait for either a data or an error event
  1552. select {
  1553. case log := <-it.logs:
  1554. it.Event = new(HermezUpdateForgeL1L2BatchTimeout)
  1555. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1556. it.fail = err
  1557. return false
  1558. }
  1559. it.Event.Raw = log
  1560. return true
  1561. case err := <-it.sub.Err():
  1562. it.done = true
  1563. it.fail = err
  1564. return it.Next()
  1565. }
  1566. }
  1567. // Error returns any retrieval or parsing error occurred during filtering.
  1568. func (it *HermezUpdateForgeL1L2BatchTimeoutIterator) Error() error {
  1569. return it.fail
  1570. }
  1571. // Close terminates the iteration process, releasing any pending underlying
  1572. // resources.
  1573. func (it *HermezUpdateForgeL1L2BatchTimeoutIterator) Close() error {
  1574. it.sub.Unsubscribe()
  1575. return nil
  1576. }
  1577. // HermezUpdateForgeL1L2BatchTimeout represents a UpdateForgeL1L2BatchTimeout event raised by the Hermez contract.
  1578. type HermezUpdateForgeL1L2BatchTimeout struct {
  1579. NewForgeL1L2BatchTimeout uint8
  1580. Raw types.Log // Blockchain specific contextual infos
  1581. }
  1582. // FilterUpdateForgeL1L2BatchTimeout is a free log retrieval operation binding the contract event 0xff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac974431.
  1583. //
  1584. // Solidity: event UpdateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout)
  1585. func (_Hermez *HermezFilterer) FilterUpdateForgeL1L2BatchTimeout(opts *bind.FilterOpts) (*HermezUpdateForgeL1L2BatchTimeoutIterator, error) {
  1586. logs, sub, err := _Hermez.contract.FilterLogs(opts, "UpdateForgeL1L2BatchTimeout")
  1587. if err != nil {
  1588. return nil, err
  1589. }
  1590. return &HermezUpdateForgeL1L2BatchTimeoutIterator{contract: _Hermez.contract, event: "UpdateForgeL1L2BatchTimeout", logs: logs, sub: sub}, nil
  1591. }
  1592. // WatchUpdateForgeL1L2BatchTimeout is a free log subscription operation binding the contract event 0xff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac974431.
  1593. //
  1594. // Solidity: event UpdateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout)
  1595. func (_Hermez *HermezFilterer) WatchUpdateForgeL1L2BatchTimeout(opts *bind.WatchOpts, sink chan<- *HermezUpdateForgeL1L2BatchTimeout) (event.Subscription, error) {
  1596. logs, sub, err := _Hermez.contract.WatchLogs(opts, "UpdateForgeL1L2BatchTimeout")
  1597. if err != nil {
  1598. return nil, err
  1599. }
  1600. return event.NewSubscription(func(quit <-chan struct{}) error {
  1601. defer sub.Unsubscribe()
  1602. for {
  1603. select {
  1604. case log := <-logs:
  1605. // New log arrived, parse the event and forward to the user
  1606. event := new(HermezUpdateForgeL1L2BatchTimeout)
  1607. if err := _Hermez.contract.UnpackLog(event, "UpdateForgeL1L2BatchTimeout", log); err != nil {
  1608. return err
  1609. }
  1610. event.Raw = log
  1611. select {
  1612. case sink <- event:
  1613. case err := <-sub.Err():
  1614. return err
  1615. case <-quit:
  1616. return nil
  1617. }
  1618. case err := <-sub.Err():
  1619. return err
  1620. case <-quit:
  1621. return nil
  1622. }
  1623. }
  1624. }), nil
  1625. }
  1626. // ParseUpdateForgeL1L2BatchTimeout is a log parse operation binding the contract event 0xff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac974431.
  1627. //
  1628. // Solidity: event UpdateForgeL1L2BatchTimeout(uint8 newForgeL1L2BatchTimeout)
  1629. func (_Hermez *HermezFilterer) ParseUpdateForgeL1L2BatchTimeout(log types.Log) (*HermezUpdateForgeL1L2BatchTimeout, error) {
  1630. event := new(HermezUpdateForgeL1L2BatchTimeout)
  1631. if err := _Hermez.contract.UnpackLog(event, "UpdateForgeL1L2BatchTimeout", log); err != nil {
  1632. return nil, err
  1633. }
  1634. return event, nil
  1635. }
  1636. // 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.
  1637. type HermezWithdrawEventIterator struct {
  1638. Event *HermezWithdrawEvent // Event containing the contract specifics and raw log
  1639. contract *bind.BoundContract // Generic contract to use for unpacking event data
  1640. event string // Event name to use for unpacking event data
  1641. logs chan types.Log // Log channel receiving the found contract events
  1642. sub ethereum.Subscription // Subscription for errors, completion and termination
  1643. done bool // Whether the subscription completed delivering logs
  1644. fail error // Occurred error to stop iteration
  1645. }
  1646. // Next advances the iterator to the subsequent event, returning whether there
  1647. // are any more events found. In case of a retrieval or parsing error, false is
  1648. // returned and Error() can be queried for the exact failure.
  1649. func (it *HermezWithdrawEventIterator) Next() bool {
  1650. // If the iterator failed, stop iterating
  1651. if it.fail != nil {
  1652. return false
  1653. }
  1654. // If the iterator completed, deliver directly whatever's available
  1655. if it.done {
  1656. select {
  1657. case log := <-it.logs:
  1658. it.Event = new(HermezWithdrawEvent)
  1659. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1660. it.fail = err
  1661. return false
  1662. }
  1663. it.Event.Raw = log
  1664. return true
  1665. default:
  1666. return false
  1667. }
  1668. }
  1669. // Iterator still in progress, wait for either a data or an error event
  1670. select {
  1671. case log := <-it.logs:
  1672. it.Event = new(HermezWithdrawEvent)
  1673. if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1674. it.fail = err
  1675. return false
  1676. }
  1677. it.Event.Raw = log
  1678. return true
  1679. case err := <-it.sub.Err():
  1680. it.done = true
  1681. it.fail = err
  1682. return it.Next()
  1683. }
  1684. }
  1685. // Error returns any retrieval or parsing error occurred during filtering.
  1686. func (it *HermezWithdrawEventIterator) Error() error {
  1687. return it.fail
  1688. }
  1689. // Close terminates the iteration process, releasing any pending underlying
  1690. // resources.
  1691. func (it *HermezWithdrawEventIterator) Close() error {
  1692. it.sub.Unsubscribe()
  1693. return nil
  1694. }
  1695. // HermezWithdrawEvent represents a WithdrawEvent event raised by the Hermez contract.
  1696. type HermezWithdrawEvent struct {
  1697. Idx *big.Int
  1698. NumExitRoot *big.Int
  1699. InstantWithdraw bool
  1700. Raw types.Log // Blockchain specific contextual infos
  1701. }
  1702. // FilterWithdrawEvent is a free log retrieval operation binding the contract event 0x92dd99230eaf5e3f1238fbbd0d72b34e8c2ad759886075bfc9f426ebeeea34f0.
  1703. //
  1704. // Solidity: event WithdrawEvent(uint48 indexed idx, uint48 indexed numExitRoot, bool indexed instantWithdraw)
  1705. func (_Hermez *HermezFilterer) FilterWithdrawEvent(opts *bind.FilterOpts, idx []*big.Int, numExitRoot []*big.Int, instantWithdraw []bool) (*HermezWithdrawEventIterator, error) {
  1706. var idxRule []interface{}
  1707. for _, idxItem := range idx {
  1708. idxRule = append(idxRule, idxItem)
  1709. }
  1710. var numExitRootRule []interface{}
  1711. for _, numExitRootItem := range numExitRoot {
  1712. numExitRootRule = append(numExitRootRule, numExitRootItem)
  1713. }
  1714. var instantWithdrawRule []interface{}
  1715. for _, instantWithdrawItem := range instantWithdraw {
  1716. instantWithdrawRule = append(instantWithdrawRule, instantWithdrawItem)
  1717. }
  1718. logs, sub, err := _Hermez.contract.FilterLogs(opts, "WithdrawEvent", idxRule, numExitRootRule, instantWithdrawRule)
  1719. if err != nil {
  1720. return nil, err
  1721. }
  1722. return &HermezWithdrawEventIterator{contract: _Hermez.contract, event: "WithdrawEvent", logs: logs, sub: sub}, nil
  1723. }
  1724. // WatchWithdrawEvent is a free log subscription operation binding the contract event 0x92dd99230eaf5e3f1238fbbd0d72b34e8c2ad759886075bfc9f426ebeeea34f0.
  1725. //
  1726. // Solidity: event WithdrawEvent(uint48 indexed idx, uint48 indexed numExitRoot, bool indexed instantWithdraw)
  1727. func (_Hermez *HermezFilterer) WatchWithdrawEvent(opts *bind.WatchOpts, sink chan<- *HermezWithdrawEvent, idx []*big.Int, numExitRoot []*big.Int, instantWithdraw []bool) (event.Subscription, error) {
  1728. var idxRule []interface{}
  1729. for _, idxItem := range idx {
  1730. idxRule = append(idxRule, idxItem)
  1731. }
  1732. var numExitRootRule []interface{}
  1733. for _, numExitRootItem := range numExitRoot {
  1734. numExitRootRule = append(numExitRootRule, numExitRootItem)
  1735. }
  1736. var instantWithdrawRule []interface{}
  1737. for _, instantWithdrawItem := range instantWithdraw {
  1738. instantWithdrawRule = append(instantWithdrawRule, instantWithdrawItem)
  1739. }
  1740. logs, sub, err := _Hermez.contract.WatchLogs(opts, "WithdrawEvent", idxRule, numExitRootRule, instantWithdrawRule)
  1741. if err != nil {
  1742. return nil, err
  1743. }
  1744. return event.NewSubscription(func(quit <-chan struct{}) error {
  1745. defer sub.Unsubscribe()
  1746. for {
  1747. select {
  1748. case log := <-logs:
  1749. // New log arrived, parse the event and forward to the user
  1750. event := new(HermezWithdrawEvent)
  1751. if err := _Hermez.contract.UnpackLog(event, "WithdrawEvent", log); err != nil {
  1752. return err
  1753. }
  1754. event.Raw = log
  1755. select {
  1756. case sink <- event:
  1757. case err := <-sub.Err():
  1758. return err
  1759. case <-quit:
  1760. return nil
  1761. }
  1762. case err := <-sub.Err():
  1763. return err
  1764. case <-quit:
  1765. return nil
  1766. }
  1767. }
  1768. }), nil
  1769. }
  1770. // ParseWithdrawEvent is a log parse operation binding the contract event 0x92dd99230eaf5e3f1238fbbd0d72b34e8c2ad759886075bfc9f426ebeeea34f0.
  1771. //
  1772. // Solidity: event WithdrawEvent(uint48 indexed idx, uint48 indexed numExitRoot, bool indexed instantWithdraw)
  1773. func (_Hermez *HermezFilterer) ParseWithdrawEvent(log types.Log) (*HermezWithdrawEvent, error) {
  1774. event := new(HermezWithdrawEvent)
  1775. if err := _Hermez.contract.UnpackLog(event, "WithdrawEvent", log); err != nil {
  1776. return nil, err
  1777. }
  1778. return event, nil
  1779. }