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.

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