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