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\":\"tokenERC777\",\"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\":\"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\":\"contractIERC777\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"operatorData\",\"type\":\"bytes\"}],\"name\":\"tokensReceived\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
  31
  32// HermezAuctionProtocolBin is the compiled bytecode used for deploying new contracts.
  33var HermezAuctionProtocolBin = "0x608060405234801561001057600080fd5b506136da806100206000396000f3fe608060405234801561001057600080fd5b50600436106102105760003560e01c806379a135e311610125578063b3dc7bb1116100ad578063d92bdda31161007c578063d92bdda314610803578063dfd5281b14610824578063e606591414610845578063ec29159b1461084d578063ecdae41b1461088d57610210565b8063b3dc7bb114610755578063b5f7f2f01461077b578063bc41556714610783578063c63de515146107e257610210565b806387e6b6bb116100f457806387e6b6bb14610651578063a48af09614610671578063ac4b90121461071f578063ac5f658b14610727578063aebd6d981461074d57610210565b806379a135e3146105895780637c643b701461059157806382787405146105bf57806383b1f6a01461061157610210565b80634e5a5178116101a85780635cca4903116101775780635cca4903146104ba5780636074db64146104e057806362945af2146105355780636dfe47c91461055b5780636f48e79b1461056357610210565b80634e5a51781461044857806354c03ab71461046e57806355b442e614610492578063564e6a711461049a57610210565b80632243de47116101e45780632243de47146103f357806337d1bd0b146103fb5780634cdc9c63146104215780634da9639d1461042957610210565b806223de29146102155780630c4da4f6146102fd5780630eeaf0801461032157806313de9af2146103d5575b600080fd5b6102fb600480360360c081101561022b57600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b81111561026d57600080fd5b82018360208201111561027f57600080fd5b803590602001918460018302840111600160201b831117156102a057600080fd5b919390929091602081019035600160201b8111156102bd57600080fd5b8201836020820111156102cf57600080fd5b803590602001918460018302840111600160201b831117156102f057600080fd5b5090925090506108b3565b005b610305610baa565b604080516001600160801b039092168252519081900360200190f35b6102fb6004803603604081101561033757600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561036157600080fd5b82018360208201111561037357600080fd5b803590602001918460018302840111600160201b8311171561039457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bba945050505050565b6103dd610cab565b6040805160ff9092168252519081900360200190f35b6103dd610cba565b6103056004803603602081101561041157600080fd5b50356001600160801b0316610cbf565b610305610e7a565b610431610e89565b6040805161ffff9092168252519081900360200190f35b6102fb6004803603602081101561045e57600080fd5b50356001600160a01b0316610e9a565b6104766113e1565b604080516001600160a01b039092168252519081900360200190f35b6104316113f0565b610305600480360360208110156104b057600080fd5b503560ff166113fa565b610305600480360360208110156104d057600080fd5b50356001600160a01b0316611432565b6102fb600480360360c08110156104f657600080fd5b506001600160a01b0381358116916001600160801b036020820135169160408201358116916060810135821691608082013581169160a0013516611456565b6102fb6004803603602081101561054b57600080fd5b50356001600160a01b0316611746565b6102fb6117e3565b6102fb6004803603602081101561057957600080fd5b50356001600160a01b0316611934565b6104766119d1565b6102fb600480360360408110156105a757600080fd5b506001600160801b03813581169160200135166119e0565b6102fb600480360360608110156105d557600080fd5b8101908080606001906003806020026040519081016040528092919082600360200280828437600092019190915250919450611c6a9350505050565b61063d6004803603604081101561062757600080fd5b506001600160a01b038135169060200135611d9b565b604080519115158252519081900360200190f35b6102fb6004803603602081101561066757600080fd5b503560ff1661208c565b6106976004803603602081101561068757600080fd5b50356001600160a01b031661218c565b60405180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156106e35781810151838201526020016106cb565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b610431612240565b6103056004803603602081101561073d57600080fd5b50356001600160801b0316612251565b610476612267565b6103056004803603602081101561076b57600080fd5b50356001600160801b0316612276565b6104766122b0565b6107a96004803603602081101561079957600080fd5b50356001600160801b03166122bf565b604080516001600160a01b03909516855292151560208501526001600160801b0391821684840152166060830152519081900360800190f35b6102fb600480360360208110156107f857600080fd5b503561ffff16612302565b6102fb6004803603602081101561081957600080fd5b503561ffff16612413565b6102fb6004803603602081101561083a57600080fd5b503561ffff16612524565b6103056125c1565b6108556125cd565b6040518082606080838360005b8381101561087a578181015183820152602001610862565b5050505090500191505060405180910390f35b610305600480360360208110156108a357600080fd5b50356001600160a01b031661262f565b60335460ff1661090a576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6033805460ff191690556065546001600160a01b0316331461096a576040805162461bcd60e51b815260206004820152601460248201527324b73b30b634b21022a9219b9b9b903a37b5b2b760611b604482015290519081900360640190fd5b826109b4576040805162461bcd60e51b815260206004820152601560248201527453656e742048455a20776974686f7574206461746160581b604482015290519081900360640190fd5b600160801b8510610a0c576040805162461bcd60e51b815260206004820152601e60248201527f416d6f756e74206d757374206265206c657373207468616e20325f3132380000604482015290519081900360640190fd5b86600085856020811015610a1f57600080fd5b50356001600160e01b031916905063dc22283b60e01b811415610a8557600080610a4c876004818b6135ec565b6040811015610a5a57600080fd5b506001600160801b03813581169350602090910135169050610a7e8983838761264a565b5050610b91565b6001600160e01b03198116639eec96f960e01b1415610b4d57600080610aa96133b1565b600080610ab98a6004818e6135ec565b610140811015610ac857600080fd5b6040805160c081810183526001600160801b038535811695602081013590911694810193909261010084019290918401906006908390839080828437600092019190915250969b5094995097506001600160801b03813581169750602090910135169450610b4393508f92508891508790508686868d6128e6565b5050505050610b91565b6040805162461bcd60e51b81526020600482015260146024820152734e6f7420612076616c69642063616c6c6461746160601b604482015290519081900360640190fd5b50506033805460ff191660011790555050505050505050565b6000610bb543612276565b905090565b33600090815260726020908152604090912080546001600160a01b0319166001600160a01b0385161781558251610bf9926001909201918401906133cf565b50816001600160a01b0316336001600160a01b03167f5246b2ac9ee77efe2e64af6df00055d97e2d6e1b277f5a8d17ba5bca1a573da0836040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c6d578181015183820152602001610c55565b50505050905090810190601f168015610c9a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a35050565b606f5462010000900460ff1690565b602881565b606d54600090600160801b900461ffff16610cd8610baa565b016001600160801b0316826001600160801b03161015610d3f576040805162461bcd60e51b815260206004820152601f60248201527f41756374696f6e2068617320616c7265616479206265656e20636c6f73656400604482015290519081900360640190fd5b6000610d4a83612251565b6001600160801b038085166000908152607060205260409020600101549192501615610de457606f546001600160801b03808516600090815260706020526040902060010154610ddf92610dbb9261271092610dac9291169061ffff16612c6f565b6001600160801b031690612ce9565b6001600160801b038086166000908152607060205260409020600101541690612d2b565b610e73565b606f54610e7390610e379061271090610dac9061ffff16606a6001600160801b03871660068110610e1157fe5b60028104919091015460019091166010026101000a90046001600160801b031690612c6f565b606a836001600160801b031660068110610e4d57fe5b60028104919091015460019091166010026101000a90046001600160801b031690612d2b565b9392505050565b606d546001600160801b031681565b606d54600160801b900461ffff1690565b6066546001600160a01b03163314610ef9576040805162461bcd60e51b815260206004820152601a60248201527f4f6e6c79204865726d657a20526f6c6c75702041646472657373000000000000604482015290519081900360640190fd5b610f038143611d9b565b610f42576040805162461bcd60e51b815260206004820152600b60248201526a43616e277420666f72676560a81b604482015290519081900360640190fd5b6000610f4c610baa565b6001600160801b0381811660009081526070602052604081208054600190910154939450600160a01b900460ff16929091600160801b9091041615610fb5576001600160801b03808416600090815260706020526040902060010154600160801b900416610ff3565b606a610fc084612251565b6001600160801b031660068110610fd357fe5b600291828204019190066010029054906101000a90046001600160801b03165b90508161139c576001600160801b0383166000908152607060205260409020805460ff60a01b1916600160a01b1790556069546001600160a01b0390811690851614801561105d57506001600160801b038084166000908152607060205260409020600101541615155b801561108857506001600160801b038381166000908152607060205260409020600101548183169116105b1561112d576001600160801b0383811660009081526070602090815260408083206001810180548616600160801b88881602179081905590546001600160a01b031684526071909252909120546110e3929081169116612d2b565b6001600160801b038481166000908152607060209081526040808320546001600160a01b031683526071909152902080546001600160801b0319169290911691909117905561139c565b6069546001600160a01b0385811691161461139c576001600160801b03838116600090815260706020526040812060010180548316600160801b81021790819055606e54919261118a9261271092610dac92169061ffff16612c6f565b606e546001600160801b03868116600090815260706020526040812060010154939450926111cb9261271092610dac92169062010000900461ffff16612c6f565b606e546001600160801b038781166000908152607060205260408120600101549394509261120d9261271092610dac921690600160201b900461ffff16612c6f565b6065546040805163fe9d930360e01b81526001600160801b03871660048201526024810182905260006044820181905291519394506001600160a01b039092169263fe9d930392608480820193929182900301818387803b15801561127157600080fd5b505af1158015611285573d6000803e3d6000fd5b50506068546001600160a01b03166000908152607160205260409020546112b892506001600160801b0316905083612d2b565b6068546001600160a01b0390811660009081526071602052604080822080546001600160801b0319166001600160801b0395861617905560675490921681522054611304911682612d2b565b6067546001600160a01b03908116600090815260716020908152604080832080546001600160801b0319166001600160801b039687161790558a85168084526070835292819020548151898716815288871693810193909352948616828201525191938b84169316917fd64ebb43f4c2b91022b97389834432f1027ef55586129ba05a3a3065b2304f05916060908290030190a45050505b6040516001600160801b038416906001600160a01b038616907f7cae662d4cfa9d9c5575c65f0cc41a858c51ca14ebcbd02a802a62376c3ad23890600090a350505050565b6068546001600160a01b031690565b606f5461ffff1690565b6000606a8260ff166006811061140c57fe5b600291828204019190066010029054906101000a90046001600160801b03169050919050565b6001600160a01b03166000908152607160205260409020546001600160801b031690565b600054610100900460ff168061146f575061146f612d91565b8061147d575060005460ff16155b6114b85760405162461bcd60e51b815260040180806020018281038252602e815260200180613677602e913960400191505060405180910390fd5b600054610100900460ff161580156114e3576000805460ff1961ff0019909116610100171660011790555b6114eb612d97565b606f80546103e861ffff199091161762ff0000191662140000179055606d805461ffff60801b1916600160811b1761ffff60901b1916608760951b17905560408051606081018252610fa080825260208201526107d09181019190915261155690606e90600361344d565b506040805160c081018252678ac7230489e8000080825260208201819052918101829052606081018290526080810182905260a081019190915261159e90606a9060066134df565b50606580546001600160a01b0319166001600160a01b038916179055604080516329965a1d60e01b815230600482018190527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b602483015260448201529051731820a4b7618bde71dce8cdc73aab6c95905fad24916329965a1d91606480830192600092919082900301818387803b15801561163957600080fd5b505af115801561164d573d6000803e3d6000fd5b5050606d54600160801b900461ffff9081166028021643016001600160801b038916101591506116c69050576040805162461bcd60e51b815260206004820152601c60248201527f47656e6573697320736d616c6c6572207468616e206d696e696d616c00000000604482015290519081900360640190fd5b606d80546001600160801b0319166001600160801b038816179055606680546001600160a01b03199081166001600160a01b038881169190911790925560678054821687841617905560688054821686841617905560698054909116918416919091179055801561173d576000805461ff00191690555b50505050505050565b6067546001600160a01b03163314611793576040805162461bcd60e51b81526020600482018190526024820152600080516020613657833981519152604482015290519081900360640190fd5b606980546001600160a01b0319166001600160a01b0383811691909117918290556040519116907f2161bd0f0e056d18046a81683e5bc845980367451cf4ca5148523a147c51be5590600090a250565b60335460ff1661183a576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6033805460ff19169055600061184f33611432565b90506000816001600160801b0316116118af576040805162461bcd60e51b815260206004820152601b60248201527f446f65736e2774206861766520656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b33600081815260716020526040902080546001600160801b03191690556065546118e5916001600160a01b039091169083612e46565b604080516001600160801b0383168152905133917f199ef0cb54d2b296ff6eaec2721bacf0ca3fd8344a43f5bdf4548b34dfa2594f919081900360200190a2506033805460ff19166001179055565b6067546001600160a01b03163314611981576040805162461bcd60e51b81526020600482018190526024820152600080516020613657833981519152604482015290519081900360640190fd5b606880546001600160a01b0319166001600160a01b0383811691909117918290556040519116907fa62863cbad1647a2855e9cd39d04fa6dfd32e1b9cfaff1aaf6523f4aaafeccd790600090a250565b6065546001600160a01b031681565b6067546001600160a01b03163314611a2d576040805162461bcd60e51b81526020600482018190526024820152600080516020613657833981519152604482015290519081900360640190fd5b6006826001600160801b03161115611a82576040805162461bcd60e51b8152602060048201526013602482015272139bdd0818481d985b1a59081cdb1bdd14d95d606a1b604482015290519081900360640190fd5b606a826001600160801b031660068110611a9857fe5b60028104919091015460019091166010026101000a90046001600160801b0316611b09576040805162461bcd60e51b815260206004820152601e60248201527f5468697320736c6f742073657420697320646563656e7472616c697a65640000604482015290519081900360640190fd5b6000611b13610baa565b9050805b606d54600160801b900461ffff1682016001600160801b0390811690821611611bcd576001600160801b03808216600090815260706020526040902060010154600160801b900416611bc557606a611b6e82612251565b6001600160801b031660068110611b8157fe5b6002810491909101546001600160801b038381166000908152607060205260409020600190810180548316919094166010026101000a90920416600160801b021790555b600101611b17565b5081606a846001600160801b031660068110611be557fe5b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b031602179055507fa922aa010d1ff8e70b2aa9247d891836795c3d3ba2a543c37c91a44dc4a50172838360405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390a1505050565b6067546001600160a01b03163314611cb7576040805162461bcd60e51b81526020600482018190526024820152600080516020613657833981519152604482015290519081900360640190fd5b806002602002015181600160200201518260006020020151010161ffff1661271014611d145760405162461bcd60e51b81526004018080602001828103825260218152602001806136156021913960400191505060405180910390fd5b611d21606e82600361344d565b506040517f0bb59eceb12f1bdb63e4a7d57c70d6473fefd7c3f51af5a3604f7e97197073e490606e9060608101826000835b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411611d53579050505091505060405180910390a150565b6000600160801b8210611df5576040805162461bcd60e51b815260206004820152601d60248201527f626c6f636b4e756d62657220686967686572207468616e20325f313238000000604482015290519081900360640190fd5b606d546001600160801b0316821015611e55576040805162461bcd60e51b815260206004820152601b60248201527f41756374696f6e20686173206e6f742073746172746564207965740000000000604482015290519081900360640190fd5b6000611e6083612276565b606d54909150600090611ea990611e99906001600160801b0390811690611e8a9086166028612c6f565b6001600160801b031690612d2b565b6001600160801b03861690612ff0565b6001600160801b0380841660009081526070602052604081206001015492935091600160801b90041615611f01576001600160801b03808416600090815260706020526040902060010154600160801b900416611f3f565b606a611f0c84612251565b6001600160801b031660068110611f1f57fe5b600291828204019190066010029054906101000a90046001600160801b03165b6001600160801b038416600090815260706020526040902054909150600160a01b900460ff16158015611f865750606f5462010000900460ff166001600160801b03831610155b15611f975760019350505050612086565b6001600160801b0383166000908152607060209081526040808320546001600160a01b0390811684526072909252909120548116908716148015611ffb57506001600160801b03838116600090815260706020526040902060010154818316911610155b1561200c5760019350505050612086565b6069546001600160a01b03878116911614801561206d57506001600160801b038381166000908152607060205260409020600101548183169116108061206d57506001600160801b0380841660009081526070602052604090206001015416155b1561207e5760019350505050612086565b600093505050505b92915050565b6067546001600160a01b031633146120d9576040805162461bcd60e51b81526020600482018190526024820152600080516020613657833981519152604482015290519081900360640190fd5b602860ff82161115612132576040805162461bcd60e51b815260206004820152601c60248201527f47726561746572207468616e20424c4f434b535f5045525f534c4f5400000000604482015290519081900360640190fd5b606f805460ff8084166201000090810262ff0000199093169290921792839055604080519290930416815290517f4a0d90b611c15e02dbf23b10f35b936cf2c77665f8c77822d3eca131f9d986d39181900360200190a150565b6072602090815260009182526040918290208054600180830180548651600261010094831615949094026000190190911692909204601f81018690048602830186019096528582526001600160a01b039092169492939092908301828280156122365780601f1061220b57610100808354040283529160200191612236565b820191906000526020600020905b81548152906001019060200180831161221957829003601f168201915b5050505050905082565b606d54600160901b900461ffff1690565b60006120866001600160801b0383166006613032565b6066546001600160a01b031681565b606d546000906001600160801b039081169083161015612297576000612086565b50606d5460286001600160801b03918216909203160490565b6069546001600160a01b031690565b607060205260009081526040902080546001909101546001600160a01b03821691600160a01b900460ff16906001600160801b0380821691600160801b90041684565b6067546001600160a01b0316331461234f576040805162461bcd60e51b81526020600482018190526024820152600080516020613657833981519152604482015290519081900360640190fd5b606d5461ffff600160801b909104811690821610156123b5576040805162461bcd60e51b815260206004820152601f60248201527f536d616c6c6572207468616e20636c6f73656441756374696f6e536c6f747300604482015290519081900360640190fd5b606d805461ffff808416600160901b90810261ffff60901b199093169290921792839055604080519290930416815290517f3da0492dea7298351bc14d1c0699905fd0657c33487449751af50fc0c8b593f19181900360200190a150565b6067546001600160a01b03163314612460576040805162461bcd60e51b81526020600482018190526024820152600080516020613657833981519152604482015290519081900360640190fd5b606d5461ffff600160901b909104811690821611156124c6576040805162461bcd60e51b815260206004820152601f60248201527f47726561746572207468616e20636c6f73656441756374696f6e536c6f747300604482015290519081900360640190fd5b606d805461ffff808416600160801b90810261ffff60801b199093169290921792839055604080519290930416815290517fc78051d3757db196b1e445f3a9a1380944518c69b5d7922ec747c54f0340a4ea9181900360200190a150565b6067546001600160a01b03163314612571576040805162461bcd60e51b81526020600482018190526024820152600080516020613657833981519152604482015290519081900360640190fd5b606f805461ffff191661ffff838116919091179182905560408051929091168252517fd3748b8c326e93d12af934fbf87471e315a89bc3f7b8222343acf0210edf248e916020908290030190a150565b678ac7230489e8000081565b6125d5613580565b60408051606081019182905290606e90600390826000855b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116125ed5790505050505050905090565b6071602052600090815260409020546001600160801b031681565b6001600160a01b03818116600090815260726020526040902054166126b6576040805162461bcd60e51b815260206004820152601a60248201527f436f6f7264696e61746f72206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b606d54600160801b900461ffff166126cc610baa565b016001600160801b0316836001600160801b03161015612733576040805162461bcd60e51b815260206004820152601f60248201527f41756374696f6e2068617320616c7265616479206265656e20636c6f73656400604482015290519081900360640190fd5b61273c83610cbf565b6001600160801b0316826001600160801b03161015612796576040805162461bcd60e51b81526020600482015260116024820152704269642062656c6f77206d696e696d756d60781b604482015290519081900360640190fd5b606d5461ffff600160901b8204811691600160801b9004166127b6610baa565b01016001600160801b0316836001600160801b03161061281d576040805162461bcd60e51b815260206004820152601b60248201527f42696420686173206e6f74206265656e206f70656e6564207965740000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260716020526040902054612849906001600160801b031685612d2b565b6001600160a01b038216600090815260716020526040902080546001600160801b0319166001600160801b039283161790819055838216911610156128d5576040805162461bcd60e51b815260206004820152601a60248201527f446f206e6f74206861766520656e6f7567682062616c616e6365000000000000604482015290519081900360640190fd5b6128e0838383613074565b50505050565b606d54600160801b900461ffff166128fc610baa565b016001600160801b0316866001600160801b03161015612963576040805162461bcd60e51b815260206004820152601f60248201527f41756374696f6e2068617320616c7265616479206265656e20636c6f73656400604482015290519081900360640190fd5b606d5461ffff600160901b8204811691600160801b900416612983610baa565b01016001600160801b0316856001600160801b0316106129ea576040805162461bcd60e51b815260206004820152601b60248201527f42696420686173206e6f74206265656e206f70656e6564207965740000000000604482015290519081900360640190fd5b816001600160801b0316836001600160801b03161015612a51576040805162461bcd60e51b815260206004820152601a60248201527f6d61784269642073686f756c64206265203e3d206d696e426964000000000000604482015290519081900360640190fd5b6001600160a01b0381811660009081526072602052604090205416612abd576040805162461bcd60e51b815260206004820152601a60248201527f436f6f7264696e61746f72206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260716020526040902054612ae9906001600160801b031688612d2b565b6001600160a01b038216600090815260716020526040812080546001600160801b0319166001600160801b039390931692909217909155865b866001600160801b0316816001600160801b031611612c64576000612b4682610cbf565b9050846001600160801b0316816001600160801b031611612b6957849250612baf565b846001600160801b0316816001600160801b0316118015612b9c5750856001600160801b0316816001600160801b031611155b15612ba957809250612baf565b50612c5c565b86612bb983612251565b6001600160801b031660068110612bcc57fe5b602002015115612c5a576001600160a01b0384166000908152607160205260409020546001600160801b0380851691161015612c4f576040805162461bcd60e51b815260206004820152601a60248201527f446f206e6f74206861766520656e6f7567682062616c616e6365000000000000604482015290519081900360640190fd5b612c5a828486613074565b505b600101612b22565b505050505050505050565b60006001600160801b038316612c8757506000612086565b8282026001600160801b038084169080861690831681612ca357fe5b046001600160801b031614610e735760405162461bcd60e51b81526004018080602001828103825260218152602001806136366021913960400191505060405180910390fd5b6000610e7383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061320a565b60008282016001600160801b038085169082161015610e73576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b303b1590565b600054610100900460ff1680612db05750612db0612d91565b80612dbe575060005460ff16155b612df95760405162461bcd60e51b815260040180806020018281038252602e815260200180613677602e913960400191505060405180910390fd5b600054610100900460ff16158015612e24576000805460ff1961ff0019909116610100171660011790555b6033805460ff191660011790558015612e43576000805461ff00191690555b50565b604080518082018252601b81527f73656e6428616464726573732c75696e743235362c627974657329000000000060209182015281516001600160a01b0385811660248301526001600160801b0385166044830152606060648301819052600060848401819052855180850360a401815260c4909401865293830180516001600160e01b0316634decdde360e11b17815294518351949591949289169392909182918083835b60208310612f0b5780518252601f199092019160209182019101612eec565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612f6d576040519150601f19603f3d011682016040523d82523d6000602084013e612f72565b606091505b5091509150818015612fa0575080511580612fa05750808060200190516020811015612f9d57600080fd5b50515b612fe9576040805162461bcd60e51b8152602060048201526015602482015274151bdad95b88151c985b9cd9995c8811985a5b1959605a1b604482015290519081900360640190fd5b5050505050565b6000610e7383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132c7565b6000610e7383836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613334565b6001600160801b03808416600090815260706020908152604080832080546001909101546001600160a01b038781168652607190945291909320549190921692918216916130c3911685612ff0565b6001600160a01b03848116600081815260716020908152604080832080546001600160801b03199081166001600160801b03988916179091558b87168452607090925290912080546001600160a01b031916909217825560019190910180549091169287169290921790915582161580159061314757506001600160801b03811615155b156131af576001600160a01b038216600090815260716020526040902054613178906001600160801b031682612d2b565b6001600160a01b038316600090815260716020526040902080546001600160801b0319166001600160801b03929092169190911790555b826001600160a01b0316856001600160801b03167fd48e8329cdb2fb109b4fe445d7b681a74b256bff16e6f7f33b9d4fbe9038e4338660405180826001600160801b0316815260200191505060405180910390a35050505050565b6000816001600160801b03841661329f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561326457818101518382015260200161324c565b50505050905090810190601f1680156132915780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000836001600160801b0316856001600160801b0316816132bd57fe5b0495945050505050565b6000836001600160801b0316836001600160801b03161115829061332c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561326457818101518382015260200161324c565b505050900390565b6000816001600160801b03841661338c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561326457818101518382015260200161324c565b50826001600160801b0316846001600160801b0316816133a857fe5b06949350505050565b6040518060c001604052806006906020820280368337509192915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061341057805160ff191683800117855561343d565b8280016001018555821561343d579182015b8281111561343d578251825591602001919060010190613422565b5061344992915061359e565b5090565b6001830191839082156134d35791602002820160005b838211156134a357835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302613463565b80156134d15782816101000a81549061ffff02191690556002016020816001010492830192600103026134a3565b505b506134499291506135b3565b6003830191839082156135745791602002820160005b8382111561353f57835183826101000a8154816001600160801b0302191690836001600160801b031602179055509260200192601001602081600f010492830192600103026134f5565b80156135725782816101000a8154906001600160801b030219169055601001602081600f0104928301926001030261353f565b505b506134499291506135cd565b60405180606001604052806003906020820280368337509192915050565b5b80821115613449576000815560010161359f565b5b8082111561344957805461ffff191681556001016135b4565b5b808211156134495780546001600160801b03191681556001016135ce565b600080858511156135fb578182fd5b83861115613607578182fd5b505082019391909203915056fe416c6c6f636174696f6e526174696f2068617320746f206265203130302e303025536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a26469706673582212202c466d8d4e52482a767ae41ddef468ac109833fb436225bb6bb0dcaf72fe83ca64736f6c634300060c0033"
  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 tokenERC777, uint128 genesis, address hermezRollupAddress, address governanceAddress, address donationAddress, address bootCoordinatorAddress) returns()
 857func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) HermezAuctionProtocolInitializer(opts *bind.TransactOpts, tokenERC777 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", tokenERC777, 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 tokenERC777, uint128 genesis, address hermezRollupAddress, address governanceAddress, address donationAddress, address bootCoordinatorAddress) returns()
 864func (_HermezAuctionProtocol *HermezAuctionProtocolSession) HermezAuctionProtocolInitializer(tokenERC777 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, tokenERC777, 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 tokenERC777, uint128 genesis, address hermezRollupAddress, address governanceAddress, address donationAddress, address bootCoordinatorAddress) returns()
 871func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) HermezAuctionProtocolInitializer(tokenERC777 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, tokenERC777, genesis, hermezRollupAddress, governanceAddress, donationAddress, bootCoordinatorAddress)
 873}
 874
 875// SetAllocationRatio is a paid mutator transaction binding the contract method 0x82787405.
 876//
 877// Solidity: function setAllocationRatio(uint16[3] newAllocationRatio) returns()
 878func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetAllocationRatio(opts *bind.TransactOpts, newAllocationRatio [3]uint16) (*types.Transaction, error) {
 879	return _HermezAuctionProtocol.contract.Transact(opts, "setAllocationRatio", newAllocationRatio)
 880}
 881
 882// SetAllocationRatio is a paid mutator transaction binding the contract method 0x82787405.
 883//
 884// Solidity: function setAllocationRatio(uint16[3] newAllocationRatio) returns()
 885func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetAllocationRatio(newAllocationRatio [3]uint16) (*types.Transaction, error) {
 886	return _HermezAuctionProtocol.Contract.SetAllocationRatio(&_HermezAuctionProtocol.TransactOpts, newAllocationRatio)
 887}
 888
 889// SetAllocationRatio is a paid mutator transaction binding the contract method 0x82787405.
 890//
 891// Solidity: function setAllocationRatio(uint16[3] newAllocationRatio) returns()
 892func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetAllocationRatio(newAllocationRatio [3]uint16) (*types.Transaction, error) {
 893	return _HermezAuctionProtocol.Contract.SetAllocationRatio(&_HermezAuctionProtocol.TransactOpts, newAllocationRatio)
 894}
 895
 896// SetBootCoordinator is a paid mutator transaction binding the contract method 0x62945af2.
 897//
 898// Solidity: function setBootCoordinator(address newBootCoordinator) returns()
 899func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetBootCoordinator(opts *bind.TransactOpts, newBootCoordinator common.Address) (*types.Transaction, error) {
 900	return _HermezAuctionProtocol.contract.Transact(opts, "setBootCoordinator", newBootCoordinator)
 901}
 902
 903// SetBootCoordinator is a paid mutator transaction binding the contract method 0x62945af2.
 904//
 905// Solidity: function setBootCoordinator(address newBootCoordinator) returns()
 906func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetBootCoordinator(newBootCoordinator common.Address) (*types.Transaction, error) {
 907	return _HermezAuctionProtocol.Contract.SetBootCoordinator(&_HermezAuctionProtocol.TransactOpts, newBootCoordinator)
 908}
 909
 910// SetBootCoordinator is a paid mutator transaction binding the contract method 0x62945af2.
 911//
 912// Solidity: function setBootCoordinator(address newBootCoordinator) returns()
 913func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetBootCoordinator(newBootCoordinator common.Address) (*types.Transaction, error) {
 914	return _HermezAuctionProtocol.Contract.SetBootCoordinator(&_HermezAuctionProtocol.TransactOpts, newBootCoordinator)
 915}
 916
 917// SetClosedAuctionSlots is a paid mutator transaction binding the contract method 0xd92bdda3.
 918//
 919// Solidity: function setClosedAuctionSlots(uint16 newClosedAuctionSlots) returns()
 920func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetClosedAuctionSlots(opts *bind.TransactOpts, newClosedAuctionSlots uint16) (*types.Transaction, error) {
 921	return _HermezAuctionProtocol.contract.Transact(opts, "setClosedAuctionSlots", newClosedAuctionSlots)
 922}
 923
 924// SetClosedAuctionSlots is a paid mutator transaction binding the contract method 0xd92bdda3.
 925//
 926// Solidity: function setClosedAuctionSlots(uint16 newClosedAuctionSlots) returns()
 927func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetClosedAuctionSlots(newClosedAuctionSlots uint16) (*types.Transaction, error) {
 928	return _HermezAuctionProtocol.Contract.SetClosedAuctionSlots(&_HermezAuctionProtocol.TransactOpts, newClosedAuctionSlots)
 929}
 930
 931// SetClosedAuctionSlots is a paid mutator transaction binding the contract method 0xd92bdda3.
 932//
 933// Solidity: function setClosedAuctionSlots(uint16 newClosedAuctionSlots) returns()
 934func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetClosedAuctionSlots(newClosedAuctionSlots uint16) (*types.Transaction, error) {
 935	return _HermezAuctionProtocol.Contract.SetClosedAuctionSlots(&_HermezAuctionProtocol.TransactOpts, newClosedAuctionSlots)
 936}
 937
 938// SetCoordinator is a paid mutator transaction binding the contract method 0x0eeaf080.
 939//
 940// Solidity: function setCoordinator(address forger, string coordinatorURL) returns()
 941func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetCoordinator(opts *bind.TransactOpts, forger common.Address, coordinatorURL string) (*types.Transaction, error) {
 942	return _HermezAuctionProtocol.contract.Transact(opts, "setCoordinator", forger, coordinatorURL)
 943}
 944
 945// SetCoordinator is a paid mutator transaction binding the contract method 0x0eeaf080.
 946//
 947// Solidity: function setCoordinator(address forger, string coordinatorURL) returns()
 948func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetCoordinator(forger common.Address, coordinatorURL string) (*types.Transaction, error) {
 949	return _HermezAuctionProtocol.Contract.SetCoordinator(&_HermezAuctionProtocol.TransactOpts, forger, coordinatorURL)
 950}
 951
 952// SetCoordinator is a paid mutator transaction binding the contract method 0x0eeaf080.
 953//
 954// Solidity: function setCoordinator(address forger, string coordinatorURL) returns()
 955func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetCoordinator(forger common.Address, coordinatorURL string) (*types.Transaction, error) {
 956	return _HermezAuctionProtocol.Contract.SetCoordinator(&_HermezAuctionProtocol.TransactOpts, forger, coordinatorURL)
 957}
 958
 959// SetDonationAddress is a paid mutator transaction binding the contract method 0x6f48e79b.
 960//
 961// Solidity: function setDonationAddress(address newDonationAddress) returns()
 962func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetDonationAddress(opts *bind.TransactOpts, newDonationAddress common.Address) (*types.Transaction, error) {
 963	return _HermezAuctionProtocol.contract.Transact(opts, "setDonationAddress", newDonationAddress)
 964}
 965
 966// SetDonationAddress is a paid mutator transaction binding the contract method 0x6f48e79b.
 967//
 968// Solidity: function setDonationAddress(address newDonationAddress) returns()
 969func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetDonationAddress(newDonationAddress common.Address) (*types.Transaction, error) {
 970	return _HermezAuctionProtocol.Contract.SetDonationAddress(&_HermezAuctionProtocol.TransactOpts, newDonationAddress)
 971}
 972
 973// SetDonationAddress is a paid mutator transaction binding the contract method 0x6f48e79b.
 974//
 975// Solidity: function setDonationAddress(address newDonationAddress) returns()
 976func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetDonationAddress(newDonationAddress common.Address) (*types.Transaction, error) {
 977	return _HermezAuctionProtocol.Contract.SetDonationAddress(&_HermezAuctionProtocol.TransactOpts, newDonationAddress)
 978}
 979
 980// SetOpenAuctionSlots is a paid mutator transaction binding the contract method 0xc63de515.
 981//
 982// Solidity: function setOpenAuctionSlots(uint16 newOpenAuctionSlots) returns()
 983func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetOpenAuctionSlots(opts *bind.TransactOpts, newOpenAuctionSlots uint16) (*types.Transaction, error) {
 984	return _HermezAuctionProtocol.contract.Transact(opts, "setOpenAuctionSlots", newOpenAuctionSlots)
 985}
 986
 987// SetOpenAuctionSlots is a paid mutator transaction binding the contract method 0xc63de515.
 988//
 989// Solidity: function setOpenAuctionSlots(uint16 newOpenAuctionSlots) returns()
 990func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetOpenAuctionSlots(newOpenAuctionSlots uint16) (*types.Transaction, error) {
 991	return _HermezAuctionProtocol.Contract.SetOpenAuctionSlots(&_HermezAuctionProtocol.TransactOpts, newOpenAuctionSlots)
 992}
 993
 994// SetOpenAuctionSlots is a paid mutator transaction binding the contract method 0xc63de515.
 995//
 996// Solidity: function setOpenAuctionSlots(uint16 newOpenAuctionSlots) returns()
 997func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetOpenAuctionSlots(newOpenAuctionSlots uint16) (*types.Transaction, error) {
 998	return _HermezAuctionProtocol.Contract.SetOpenAuctionSlots(&_HermezAuctionProtocol.TransactOpts, newOpenAuctionSlots)
 999}
1000
1001// SetOutbidding is a paid mutator transaction binding the contract method 0xdfd5281b.
1002//
1003// Solidity: function setOutbidding(uint16 newOutbidding) returns()
1004func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetOutbidding(opts *bind.TransactOpts, newOutbidding uint16) (*types.Transaction, error) {
1005	return _HermezAuctionProtocol.contract.Transact(opts, "setOutbidding", newOutbidding)
1006}
1007
1008// SetOutbidding is a paid mutator transaction binding the contract method 0xdfd5281b.
1009//
1010// Solidity: function setOutbidding(uint16 newOutbidding) returns()
1011func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetOutbidding(newOutbidding uint16) (*types.Transaction, error) {
1012	return _HermezAuctionProtocol.Contract.SetOutbidding(&_HermezAuctionProtocol.TransactOpts, newOutbidding)
1013}
1014
1015// SetOutbidding is a paid mutator transaction binding the contract method 0xdfd5281b.
1016//
1017// Solidity: function setOutbidding(uint16 newOutbidding) returns()
1018func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetOutbidding(newOutbidding uint16) (*types.Transaction, error) {
1019	return _HermezAuctionProtocol.Contract.SetOutbidding(&_HermezAuctionProtocol.TransactOpts, newOutbidding)
1020}
1021
1022// SetSlotDeadline is a paid mutator transaction binding the contract method 0x87e6b6bb.
1023//
1024// Solidity: function setSlotDeadline(uint8 newDeadline) returns()
1025func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetSlotDeadline(opts *bind.TransactOpts, newDeadline uint8) (*types.Transaction, error) {
1026	return _HermezAuctionProtocol.contract.Transact(opts, "setSlotDeadline", newDeadline)
1027}
1028
1029// SetSlotDeadline is a paid mutator transaction binding the contract method 0x87e6b6bb.
1030//
1031// Solidity: function setSlotDeadline(uint8 newDeadline) returns()
1032func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetSlotDeadline(newDeadline uint8) (*types.Transaction, error) {
1033	return _HermezAuctionProtocol.Contract.SetSlotDeadline(&_HermezAuctionProtocol.TransactOpts, newDeadline)
1034}
1035
1036// SetSlotDeadline is a paid mutator transaction binding the contract method 0x87e6b6bb.
1037//
1038// Solidity: function setSlotDeadline(uint8 newDeadline) returns()
1039func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetSlotDeadline(newDeadline uint8) (*types.Transaction, error) {
1040	return _HermezAuctionProtocol.Contract.SetSlotDeadline(&_HermezAuctionProtocol.TransactOpts, newDeadline)
1041}
1042
1043// TokensReceived is a paid mutator transaction binding the contract method 0x0023de29.
1044//
1045// Solidity: function tokensReceived(address operator, address from, address to, uint256 amount, bytes userData, bytes operatorData) returns()
1046func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) TokensReceived(opts *bind.TransactOpts, operator common.Address, from common.Address, to common.Address, amount *big.Int, userData []byte, operatorData []byte) (*types.Transaction, error) {
1047	return _HermezAuctionProtocol.contract.Transact(opts, "tokensReceived", operator, from, to, amount, userData, operatorData)
1048}
1049
1050// TokensReceived is a paid mutator transaction binding the contract method 0x0023de29.
1051//
1052// Solidity: function tokensReceived(address operator, address from, address to, uint256 amount, bytes userData, bytes operatorData) returns()
1053func (_HermezAuctionProtocol *HermezAuctionProtocolSession) TokensReceived(operator common.Address, from common.Address, to common.Address, amount *big.Int, userData []byte, operatorData []byte) (*types.Transaction, error) {
1054	return _HermezAuctionProtocol.Contract.TokensReceived(&_HermezAuctionProtocol.TransactOpts, operator, from, to, amount, userData, operatorData)
1055}
1056
1057// TokensReceived is a paid mutator transaction binding the contract method 0x0023de29.
1058//
1059// Solidity: function tokensReceived(address operator, address from, address to, uint256 amount, bytes userData, bytes operatorData) returns()
1060func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) TokensReceived(operator common.Address, from common.Address, to common.Address, amount *big.Int, userData []byte, operatorData []byte) (*types.Transaction, error) {
1061	return _HermezAuctionProtocol.Contract.TokensReceived(&_HermezAuctionProtocol.TransactOpts, operator, from, to, amount, userData, operatorData)
1062}
1063
1064// 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.
1065type HermezAuctionProtocolHEZClaimedIterator struct {
1066	Event *HermezAuctionProtocolHEZClaimed // Event containing the contract specifics and raw log
1067
1068	contract *bind.BoundContract // Generic contract to use for unpacking event data
1069	event    string              // Event name to use for unpacking event data
1070
1071	logs chan types.Log        // Log channel receiving the found contract events
1072	sub  ethereum.Subscription // Subscription for errors, completion and termination
1073	done bool                  // Whether the subscription completed delivering logs
1074	fail error                 // Occurred error to stop iteration
1075}
1076
1077// Next advances the iterator to the subsequent event, returning whether there
1078// are any more events found. In case of a retrieval or parsing error, false is
1079// returned and Error() can be queried for the exact failure.
1080func (it *HermezAuctionProtocolHEZClaimedIterator) Next() bool {
1081	// If the iterator failed, stop iterating
1082	if it.fail != nil {
1083		return false
1084	}
1085	// If the iterator completed, deliver directly whatever's available
1086	if it.done {
1087		select {
1088		case log := <-it.logs:
1089			it.Event = new(HermezAuctionProtocolHEZClaimed)
1090			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1091				it.fail = err
1092				return false
1093			}
1094			it.Event.Raw = log
1095			return true
1096
1097		default:
1098			return false
1099		}
1100	}
1101	// Iterator still in progress, wait for either a data or an error event
1102	select {
1103	case log := <-it.logs:
1104		it.Event = new(HermezAuctionProtocolHEZClaimed)
1105		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1106			it.fail = err
1107			return false
1108		}
1109		it.Event.Raw = log
1110		return true
1111
1112	case err := <-it.sub.Err():
1113		it.done = true
1114		it.fail = err
1115		return it.Next()
1116	}
1117}
1118
1119// Error returns any retrieval or parsing error occurred during filtering.
1120func (it *HermezAuctionProtocolHEZClaimedIterator) Error() error {
1121	return it.fail
1122}
1123
1124// Close terminates the iteration process, releasing any pending underlying
1125// resources.
1126func (it *HermezAuctionProtocolHEZClaimedIterator) Close() error {
1127	it.sub.Unsubscribe()
1128	return nil
1129}
1130
1131// HermezAuctionProtocolHEZClaimed represents a HEZClaimed event raised by the HermezAuctionProtocol contract.
1132type HermezAuctionProtocolHEZClaimed struct {
1133	Owner  common.Address
1134	Amount *big.Int
1135	Raw    types.Log // Blockchain specific contextual infos
1136}
1137
1138// FilterHEZClaimed is a free log retrieval operation binding the contract event 0x199ef0cb54d2b296ff6eaec2721bacf0ca3fd8344a43f5bdf4548b34dfa2594f.
1139//
1140// Solidity: event HEZClaimed(address indexed owner, uint128 amount)
1141func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterHEZClaimed(opts *bind.FilterOpts, owner []common.Address) (*HermezAuctionProtocolHEZClaimedIterator, error) {
1142
1143	var ownerRule []interface{}
1144	for _, ownerItem := range owner {
1145		ownerRule = append(ownerRule, ownerItem)
1146	}
1147
1148	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "HEZClaimed", ownerRule)
1149	if err != nil {
1150		return nil, err
1151	}
1152	return &HermezAuctionProtocolHEZClaimedIterator{contract: _HermezAuctionProtocol.contract, event: "HEZClaimed", logs: logs, sub: sub}, nil
1153}
1154
1155// WatchHEZClaimed is a free log subscription operation binding the contract event 0x199ef0cb54d2b296ff6eaec2721bacf0ca3fd8344a43f5bdf4548b34dfa2594f.
1156//
1157// Solidity: event HEZClaimed(address indexed owner, uint128 amount)
1158func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchHEZClaimed(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolHEZClaimed, owner []common.Address) (event.Subscription, error) {
1159
1160	var ownerRule []interface{}
1161	for _, ownerItem := range owner {
1162		ownerRule = append(ownerRule, ownerItem)
1163	}
1164
1165	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "HEZClaimed", ownerRule)
1166	if err != nil {
1167		return nil, err
1168	}
1169	return event.NewSubscription(func(quit <-chan struct{}) error {
1170		defer sub.Unsubscribe()
1171		for {
1172			select {
1173			case log := <-logs:
1174				// New log arrived, parse the event and forward to the user
1175				event := new(HermezAuctionProtocolHEZClaimed)
1176				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "HEZClaimed", log); err != nil {
1177					return err
1178				}
1179				event.Raw = log
1180
1181				select {
1182				case sink <- event:
1183				case err := <-sub.Err():
1184					return err
1185				case <-quit:
1186					return nil
1187				}
1188			case err := <-sub.Err():
1189				return err
1190			case <-quit:
1191				return nil
1192			}
1193		}
1194	}), nil
1195}
1196
1197// ParseHEZClaimed is a log parse operation binding the contract event 0x199ef0cb54d2b296ff6eaec2721bacf0ca3fd8344a43f5bdf4548b34dfa2594f.
1198//
1199// Solidity: event HEZClaimed(address indexed owner, uint128 amount)
1200func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseHEZClaimed(log types.Log) (*HermezAuctionProtocolHEZClaimed, error) {
1201	event := new(HermezAuctionProtocolHEZClaimed)
1202	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "HEZClaimed", log); err != nil {
1203		return nil, err
1204	}
1205	return event, nil
1206}
1207
1208// 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.
1209type HermezAuctionProtocolNewAllocationRatioIterator struct {
1210	Event *HermezAuctionProtocolNewAllocationRatio // Event containing the contract specifics and raw log
1211
1212	contract *bind.BoundContract // Generic contract to use for unpacking event data
1213	event    string              // Event name to use for unpacking event data
1214
1215	logs chan types.Log        // Log channel receiving the found contract events
1216	sub  ethereum.Subscription // Subscription for errors, completion and termination
1217	done bool                  // Whether the subscription completed delivering logs
1218	fail error                 // Occurred error to stop iteration
1219}
1220
1221// Next advances the iterator to the subsequent event, returning whether there
1222// are any more events found. In case of a retrieval or parsing error, false is
1223// returned and Error() can be queried for the exact failure.
1224func (it *HermezAuctionProtocolNewAllocationRatioIterator) Next() bool {
1225	// If the iterator failed, stop iterating
1226	if it.fail != nil {
1227		return false
1228	}
1229	// If the iterator completed, deliver directly whatever's available
1230	if it.done {
1231		select {
1232		case log := <-it.logs:
1233			it.Event = new(HermezAuctionProtocolNewAllocationRatio)
1234			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1235				it.fail = err
1236				return false
1237			}
1238			it.Event.Raw = log
1239			return true
1240
1241		default:
1242			return false
1243		}
1244	}
1245	// Iterator still in progress, wait for either a data or an error event
1246	select {
1247	case log := <-it.logs:
1248		it.Event = new(HermezAuctionProtocolNewAllocationRatio)
1249		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1250			it.fail = err
1251			return false
1252		}
1253		it.Event.Raw = log
1254		return true
1255
1256	case err := <-it.sub.Err():
1257		it.done = true
1258		it.fail = err
1259		return it.Next()
1260	}
1261}
1262
1263// Error returns any retrieval or parsing error occurred during filtering.
1264func (it *HermezAuctionProtocolNewAllocationRatioIterator) Error() error {
1265	return it.fail
1266}
1267
1268// Close terminates the iteration process, releasing any pending underlying
1269// resources.
1270func (it *HermezAuctionProtocolNewAllocationRatioIterator) Close() error {
1271	it.sub.Unsubscribe()
1272	return nil
1273}
1274
1275// HermezAuctionProtocolNewAllocationRatio represents a NewAllocationRatio event raised by the HermezAuctionProtocol contract.
1276type HermezAuctionProtocolNewAllocationRatio struct {
1277	NewAllocationRatio [3]uint16
1278	Raw                types.Log // Blockchain specific contextual infos
1279}
1280
1281// FilterNewAllocationRatio is a free log retrieval operation binding the contract event 0x0bb59eceb12f1bdb63e4a7d57c70d6473fefd7c3f51af5a3604f7e97197073e4.
1282//
1283// Solidity: event NewAllocationRatio(uint16[3] newAllocationRatio)
1284func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewAllocationRatio(opts *bind.FilterOpts) (*HermezAuctionProtocolNewAllocationRatioIterator, error) {
1285
1286	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewAllocationRatio")
1287	if err != nil {
1288		return nil, err
1289	}
1290	return &HermezAuctionProtocolNewAllocationRatioIterator{contract: _HermezAuctionProtocol.contract, event: "NewAllocationRatio", logs: logs, sub: sub}, nil
1291}
1292
1293// WatchNewAllocationRatio is a free log subscription operation binding the contract event 0x0bb59eceb12f1bdb63e4a7d57c70d6473fefd7c3f51af5a3604f7e97197073e4.
1294//
1295// Solidity: event NewAllocationRatio(uint16[3] newAllocationRatio)
1296func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewAllocationRatio(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewAllocationRatio) (event.Subscription, error) {
1297
1298	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewAllocationRatio")
1299	if err != nil {
1300		return nil, err
1301	}
1302	return event.NewSubscription(func(quit <-chan struct{}) error {
1303		defer sub.Unsubscribe()
1304		for {
1305			select {
1306			case log := <-logs:
1307				// New log arrived, parse the event and forward to the user
1308				event := new(HermezAuctionProtocolNewAllocationRatio)
1309				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewAllocationRatio", log); err != nil {
1310					return err
1311				}
1312				event.Raw = log
1313
1314				select {
1315				case sink <- event:
1316				case err := <-sub.Err():
1317					return err
1318				case <-quit:
1319					return nil
1320				}
1321			case err := <-sub.Err():
1322				return err
1323			case <-quit:
1324				return nil
1325			}
1326		}
1327	}), nil
1328}
1329
1330// ParseNewAllocationRatio is a log parse operation binding the contract event 0x0bb59eceb12f1bdb63e4a7d57c70d6473fefd7c3f51af5a3604f7e97197073e4.
1331//
1332// Solidity: event NewAllocationRatio(uint16[3] newAllocationRatio)
1333func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewAllocationRatio(log types.Log) (*HermezAuctionProtocolNewAllocationRatio, error) {
1334	event := new(HermezAuctionProtocolNewAllocationRatio)
1335	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewAllocationRatio", log); err != nil {
1336		return nil, err
1337	}
1338	return event, nil
1339}
1340
1341// 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.
1342type HermezAuctionProtocolNewBidIterator struct {
1343	Event *HermezAuctionProtocolNewBid // Event containing the contract specifics and raw log
1344
1345	contract *bind.BoundContract // Generic contract to use for unpacking event data
1346	event    string              // Event name to use for unpacking event data
1347
1348	logs chan types.Log        // Log channel receiving the found contract events
1349	sub  ethereum.Subscription // Subscription for errors, completion and termination
1350	done bool                  // Whether the subscription completed delivering logs
1351	fail error                 // Occurred error to stop iteration
1352}
1353
1354// Next advances the iterator to the subsequent event, returning whether there
1355// are any more events found. In case of a retrieval or parsing error, false is
1356// returned and Error() can be queried for the exact failure.
1357func (it *HermezAuctionProtocolNewBidIterator) Next() bool {
1358	// If the iterator failed, stop iterating
1359	if it.fail != nil {
1360		return false
1361	}
1362	// If the iterator completed, deliver directly whatever's available
1363	if it.done {
1364		select {
1365		case log := <-it.logs:
1366			it.Event = new(HermezAuctionProtocolNewBid)
1367			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1368				it.fail = err
1369				return false
1370			}
1371			it.Event.Raw = log
1372			return true
1373
1374		default:
1375			return false
1376		}
1377	}
1378	// Iterator still in progress, wait for either a data or an error event
1379	select {
1380	case log := <-it.logs:
1381		it.Event = new(HermezAuctionProtocolNewBid)
1382		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1383			it.fail = err
1384			return false
1385		}
1386		it.Event.Raw = log
1387		return true
1388
1389	case err := <-it.sub.Err():
1390		it.done = true
1391		it.fail = err
1392		return it.Next()
1393	}
1394}
1395
1396// Error returns any retrieval or parsing error occurred during filtering.
1397func (it *HermezAuctionProtocolNewBidIterator) Error() error {
1398	return it.fail
1399}
1400
1401// Close terminates the iteration process, releasing any pending underlying
1402// resources.
1403func (it *HermezAuctionProtocolNewBidIterator) Close() error {
1404	it.sub.Unsubscribe()
1405	return nil
1406}
1407
1408// HermezAuctionProtocolNewBid represents a NewBid event raised by the HermezAuctionProtocol contract.
1409type HermezAuctionProtocolNewBid struct {
1410	Slot      *big.Int
1411	BidAmount *big.Int
1412	Bidder    common.Address
1413	Raw       types.Log // Blockchain specific contextual infos
1414}
1415
1416// FilterNewBid is a free log retrieval operation binding the contract event 0xd48e8329cdb2fb109b4fe445d7b681a74b256bff16e6f7f33b9d4fbe9038e433.
1417//
1418// Solidity: event NewBid(uint128 indexed slot, uint128 bidAmount, address indexed bidder)
1419func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewBid(opts *bind.FilterOpts, slot []*big.Int, bidder []common.Address) (*HermezAuctionProtocolNewBidIterator, error) {
1420
1421	var slotRule []interface{}
1422	for _, slotItem := range slot {
1423		slotRule = append(slotRule, slotItem)
1424	}
1425
1426	var bidderRule []interface{}
1427	for _, bidderItem := range bidder {
1428		bidderRule = append(bidderRule, bidderItem)
1429	}
1430
1431	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewBid", slotRule, bidderRule)
1432	if err != nil {
1433		return nil, err
1434	}
1435	return &HermezAuctionProtocolNewBidIterator{contract: _HermezAuctionProtocol.contract, event: "NewBid", logs: logs, sub: sub}, nil
1436}
1437
1438// WatchNewBid is a free log subscription operation binding the contract event 0xd48e8329cdb2fb109b4fe445d7b681a74b256bff16e6f7f33b9d4fbe9038e433.
1439//
1440// Solidity: event NewBid(uint128 indexed slot, uint128 bidAmount, address indexed bidder)
1441func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewBid(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewBid, slot []*big.Int, bidder []common.Address) (event.Subscription, error) {
1442
1443	var slotRule []interface{}
1444	for _, slotItem := range slot {
1445		slotRule = append(slotRule, slotItem)
1446	}
1447
1448	var bidderRule []interface{}
1449	for _, bidderItem := range bidder {
1450		bidderRule = append(bidderRule, bidderItem)
1451	}
1452
1453	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewBid", slotRule, bidderRule)
1454	if err != nil {
1455		return nil, err
1456	}
1457	return event.NewSubscription(func(quit <-chan struct{}) error {
1458		defer sub.Unsubscribe()
1459		for {
1460			select {
1461			case log := <-logs:
1462				// New log arrived, parse the event and forward to the user
1463				event := new(HermezAuctionProtocolNewBid)
1464				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewBid", log); err != nil {
1465					return err
1466				}
1467				event.Raw = log
1468
1469				select {
1470				case sink <- event:
1471				case err := <-sub.Err():
1472					return err
1473				case <-quit:
1474					return nil
1475				}
1476			case err := <-sub.Err():
1477				return err
1478			case <-quit:
1479				return nil
1480			}
1481		}
1482	}), nil
1483}
1484
1485// ParseNewBid is a log parse operation binding the contract event 0xd48e8329cdb2fb109b4fe445d7b681a74b256bff16e6f7f33b9d4fbe9038e433.
1486//
1487// Solidity: event NewBid(uint128 indexed slot, uint128 bidAmount, address indexed bidder)
1488func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewBid(log types.Log) (*HermezAuctionProtocolNewBid, error) {
1489	event := new(HermezAuctionProtocolNewBid)
1490	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewBid", log); err != nil {
1491		return nil, err
1492	}
1493	return event, nil
1494}
1495
1496// 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.
1497type HermezAuctionProtocolNewBootCoordinatorIterator struct {
1498	Event *HermezAuctionProtocolNewBootCoordinator // Event containing the contract specifics and raw log
1499
1500	contract *bind.BoundContract // Generic contract to use for unpacking event data
1501	event    string              // Event name to use for unpacking event data
1502
1503	logs chan types.Log        // Log channel receiving the found contract events
1504	sub  ethereum.Subscription // Subscription for errors, completion and termination
1505	done bool                  // Whether the subscription completed delivering logs
1506	fail error                 // Occurred error to stop iteration
1507}
1508
1509// Next advances the iterator to the subsequent event, returning whether there
1510// are any more events found. In case of a retrieval or parsing error, false is
1511// returned and Error() can be queried for the exact failure.
1512func (it *HermezAuctionProtocolNewBootCoordinatorIterator) Next() bool {
1513	// If the iterator failed, stop iterating
1514	if it.fail != nil {
1515		return false
1516	}
1517	// If the iterator completed, deliver directly whatever's available
1518	if it.done {
1519		select {
1520		case log := <-it.logs:
1521			it.Event = new(HermezAuctionProtocolNewBootCoordinator)
1522			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1523				it.fail = err
1524				return false
1525			}
1526			it.Event.Raw = log
1527			return true
1528
1529		default:
1530			return false
1531		}
1532	}
1533	// Iterator still in progress, wait for either a data or an error event
1534	select {
1535	case log := <-it.logs:
1536		it.Event = new(HermezAuctionProtocolNewBootCoordinator)
1537		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1538			it.fail = err
1539			return false
1540		}
1541		it.Event.Raw = log
1542		return true
1543
1544	case err := <-it.sub.Err():
1545		it.done = true
1546		it.fail = err
1547		return it.Next()
1548	}
1549}
1550
1551// Error returns any retrieval or parsing error occurred during filtering.
1552func (it *HermezAuctionProtocolNewBootCoordinatorIterator) Error() error {
1553	return it.fail
1554}
1555
1556// Close terminates the iteration process, releasing any pending underlying
1557// resources.
1558func (it *HermezAuctionProtocolNewBootCoordinatorIterator) Close() error {
1559	it.sub.Unsubscribe()
1560	return nil
1561}
1562
1563// HermezAuctionProtocolNewBootCoordinator represents a NewBootCoordinator event raised by the HermezAuctionProtocol contract.
1564type HermezAuctionProtocolNewBootCoordinator struct {
1565	NewBootCoordinator common.Address
1566	Raw                types.Log // Blockchain specific contextual infos
1567}
1568
1569// FilterNewBootCoordinator is a free log retrieval operation binding the contract event 0x2161bd0f0e056d18046a81683e5bc845980367451cf4ca5148523a147c51be55.
1570//
1571// Solidity: event NewBootCoordinator(address indexed newBootCoordinator)
1572func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewBootCoordinator(opts *bind.FilterOpts, newBootCoordinator []common.Address) (*HermezAuctionProtocolNewBootCoordinatorIterator, error) {
1573
1574	var newBootCoordinatorRule []interface{}
1575	for _, newBootCoordinatorItem := range newBootCoordinator {
1576		newBootCoordinatorRule = append(newBootCoordinatorRule, newBootCoordinatorItem)
1577	}
1578
1579	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewBootCoordinator", newBootCoordinatorRule)
1580	if err != nil {
1581		return nil, err
1582	}
1583	return &HermezAuctionProtocolNewBootCoordinatorIterator{contract: _HermezAuctionProtocol.contract, event: "NewBootCoordinator", logs: logs, sub: sub}, nil
1584}
1585
1586// WatchNewBootCoordinator is a free log subscription operation binding the contract event 0x2161bd0f0e056d18046a81683e5bc845980367451cf4ca5148523a147c51be55.
1587//
1588// Solidity: event NewBootCoordinator(address indexed newBootCoordinator)
1589func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewBootCoordinator(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewBootCoordinator, newBootCoordinator []common.Address) (event.Subscription, error) {
1590
1591	var newBootCoordinatorRule []interface{}
1592	for _, newBootCoordinatorItem := range newBootCoordinator {
1593		newBootCoordinatorRule = append(newBootCoordinatorRule, newBootCoordinatorItem)
1594	}
1595
1596	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewBootCoordinator", newBootCoordinatorRule)
1597	if err != nil {
1598		return nil, err
1599	}
1600	return event.NewSubscription(func(quit <-chan struct{}) error {
1601		defer sub.Unsubscribe()
1602		for {
1603			select {
1604			case log := <-logs:
1605				// New log arrived, parse the event and forward to the user
1606				event := new(HermezAuctionProtocolNewBootCoordinator)
1607				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewBootCoordinator", log); err != nil {
1608					return err
1609				}
1610				event.Raw = log
1611
1612				select {
1613				case sink <- event:
1614				case err := <-sub.Err():
1615					return err
1616				case <-quit:
1617					return nil
1618				}
1619			case err := <-sub.Err():
1620				return err
1621			case <-quit:
1622				return nil
1623			}
1624		}
1625	}), nil
1626}
1627
1628// ParseNewBootCoordinator is a log parse operation binding the contract event 0x2161bd0f0e056d18046a81683e5bc845980367451cf4ca5148523a147c51be55.
1629//
1630// Solidity: event NewBootCoordinator(address indexed newBootCoordinator)
1631func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewBootCoordinator(log types.Log) (*HermezAuctionProtocolNewBootCoordinator, error) {
1632	event := new(HermezAuctionProtocolNewBootCoordinator)
1633	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewBootCoordinator", log); err != nil {
1634		return nil, err
1635	}
1636	return event, nil
1637}
1638
1639// 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.
1640type HermezAuctionProtocolNewClosedAuctionSlotsIterator struct {
1641	Event *HermezAuctionProtocolNewClosedAuctionSlots // Event containing the contract specifics and raw log
1642
1643	contract *bind.BoundContract // Generic contract to use for unpacking event data
1644	event    string              // Event name to use for unpacking event data
1645
1646	logs chan types.Log        // Log channel receiving the found contract events
1647	sub  ethereum.Subscription // Subscription for errors, completion and termination
1648	done bool                  // Whether the subscription completed delivering logs
1649	fail error                 // Occurred error to stop iteration
1650}
1651
1652// Next advances the iterator to the subsequent event, returning whether there
1653// are any more events found. In case of a retrieval or parsing error, false is
1654// returned and Error() can be queried for the exact failure.
1655func (it *HermezAuctionProtocolNewClosedAuctionSlotsIterator) Next() bool {
1656	// If the iterator failed, stop iterating
1657	if it.fail != nil {
1658		return false
1659	}
1660	// If the iterator completed, deliver directly whatever's available
1661	if it.done {
1662		select {
1663		case log := <-it.logs:
1664			it.Event = new(HermezAuctionProtocolNewClosedAuctionSlots)
1665			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1666				it.fail = err
1667				return false
1668			}
1669			it.Event.Raw = log
1670			return true
1671
1672		default:
1673			return false
1674		}
1675	}
1676	// Iterator still in progress, wait for either a data or an error event
1677	select {
1678	case log := <-it.logs:
1679		it.Event = new(HermezAuctionProtocolNewClosedAuctionSlots)
1680		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1681			it.fail = err
1682			return false
1683		}
1684		it.Event.Raw = log
1685		return true
1686
1687	case err := <-it.sub.Err():
1688		it.done = true
1689		it.fail = err
1690		return it.Next()
1691	}
1692}
1693
1694// Error returns any retrieval or parsing error occurred during filtering.
1695func (it *HermezAuctionProtocolNewClosedAuctionSlotsIterator) Error() error {
1696	return it.fail
1697}
1698
1699// Close terminates the iteration process, releasing any pending underlying
1700// resources.
1701func (it *HermezAuctionProtocolNewClosedAuctionSlotsIterator) Close() error {
1702	it.sub.Unsubscribe()
1703	return nil
1704}
1705
1706// HermezAuctionProtocolNewClosedAuctionSlots represents a NewClosedAuctionSlots event raised by the HermezAuctionProtocol contract.
1707type HermezAuctionProtocolNewClosedAuctionSlots struct {
1708	NewClosedAuctionSlots uint16
1709	Raw                   types.Log // Blockchain specific contextual infos
1710}
1711
1712// FilterNewClosedAuctionSlots is a free log retrieval operation binding the contract event 0xc78051d3757db196b1e445f3a9a1380944518c69b5d7922ec747c54f0340a4ea.
1713//
1714// Solidity: event NewClosedAuctionSlots(uint16 newClosedAuctionSlots)
1715func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewClosedAuctionSlots(opts *bind.FilterOpts) (*HermezAuctionProtocolNewClosedAuctionSlotsIterator, error) {
1716
1717	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewClosedAuctionSlots")
1718	if err != nil {
1719		return nil, err
1720	}
1721	return &HermezAuctionProtocolNewClosedAuctionSlotsIterator{contract: _HermezAuctionProtocol.contract, event: "NewClosedAuctionSlots", logs: logs, sub: sub}, nil
1722}
1723
1724// WatchNewClosedAuctionSlots is a free log subscription operation binding the contract event 0xc78051d3757db196b1e445f3a9a1380944518c69b5d7922ec747c54f0340a4ea.
1725//
1726// Solidity: event NewClosedAuctionSlots(uint16 newClosedAuctionSlots)
1727func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewClosedAuctionSlots(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewClosedAuctionSlots) (event.Subscription, error) {
1728
1729	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewClosedAuctionSlots")
1730	if err != nil {
1731		return nil, err
1732	}
1733	return event.NewSubscription(func(quit <-chan struct{}) error {
1734		defer sub.Unsubscribe()
1735		for {
1736			select {
1737			case log := <-logs:
1738				// New log arrived, parse the event and forward to the user
1739				event := new(HermezAuctionProtocolNewClosedAuctionSlots)
1740				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewClosedAuctionSlots", log); err != nil {
1741					return err
1742				}
1743				event.Raw = log
1744
1745				select {
1746				case sink <- event:
1747				case err := <-sub.Err():
1748					return err
1749				case <-quit:
1750					return nil
1751				}
1752			case err := <-sub.Err():
1753				return err
1754			case <-quit:
1755				return nil
1756			}
1757		}
1758	}), nil
1759}
1760
1761// ParseNewClosedAuctionSlots is a log parse operation binding the contract event 0xc78051d3757db196b1e445f3a9a1380944518c69b5d7922ec747c54f0340a4ea.
1762//
1763// Solidity: event NewClosedAuctionSlots(uint16 newClosedAuctionSlots)
1764func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewClosedAuctionSlots(log types.Log) (*HermezAuctionProtocolNewClosedAuctionSlots, error) {
1765	event := new(HermezAuctionProtocolNewClosedAuctionSlots)
1766	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewClosedAuctionSlots", log); err != nil {
1767		return nil, err
1768	}
1769	return event, nil
1770}
1771
1772// 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.
1773type HermezAuctionProtocolNewDefaultSlotSetBidIterator struct {
1774	Event *HermezAuctionProtocolNewDefaultSlotSetBid // Event containing the contract specifics and raw log
1775
1776	contract *bind.BoundContract // Generic contract to use for unpacking event data
1777	event    string              // Event name to use for unpacking event data
1778
1779	logs chan types.Log        // Log channel receiving the found contract events
1780	sub  ethereum.Subscription // Subscription for errors, completion and termination
1781	done bool                  // Whether the subscription completed delivering logs
1782	fail error                 // Occurred error to stop iteration
1783}
1784
1785// Next advances the iterator to the subsequent event, returning whether there
1786// are any more events found. In case of a retrieval or parsing error, false is
1787// returned and Error() can be queried for the exact failure.
1788func (it *HermezAuctionProtocolNewDefaultSlotSetBidIterator) Next() bool {
1789	// If the iterator failed, stop iterating
1790	if it.fail != nil {
1791		return false
1792	}
1793	// If the iterator completed, deliver directly whatever's available
1794	if it.done {
1795		select {
1796		case log := <-it.logs:
1797			it.Event = new(HermezAuctionProtocolNewDefaultSlotSetBid)
1798			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1799				it.fail = err
1800				return false
1801			}
1802			it.Event.Raw = log
1803			return true
1804
1805		default:
1806			return false
1807		}
1808	}
1809	// Iterator still in progress, wait for either a data or an error event
1810	select {
1811	case log := <-it.logs:
1812		it.Event = new(HermezAuctionProtocolNewDefaultSlotSetBid)
1813		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1814			it.fail = err
1815			return false
1816		}
1817		it.Event.Raw = log
1818		return true
1819
1820	case err := <-it.sub.Err():
1821		it.done = true
1822		it.fail = err
1823		return it.Next()
1824	}
1825}
1826
1827// Error returns any retrieval or parsing error occurred during filtering.
1828func (it *HermezAuctionProtocolNewDefaultSlotSetBidIterator) Error() error {
1829	return it.fail
1830}
1831
1832// Close terminates the iteration process, releasing any pending underlying
1833// resources.
1834func (it *HermezAuctionProtocolNewDefaultSlotSetBidIterator) Close() error {
1835	it.sub.Unsubscribe()
1836	return nil
1837}
1838
1839// HermezAuctionProtocolNewDefaultSlotSetBid represents a NewDefaultSlotSetBid event raised by the HermezAuctionProtocol contract.
1840type HermezAuctionProtocolNewDefaultSlotSetBid struct {
1841	SlotSet          *big.Int
1842	NewInitialMinBid *big.Int
1843	Raw              types.Log // Blockchain specific contextual infos
1844}
1845
1846// FilterNewDefaultSlotSetBid is a free log retrieval operation binding the contract event 0xa922aa010d1ff8e70b2aa9247d891836795c3d3ba2a543c37c91a44dc4a50172.
1847//
1848// Solidity: event NewDefaultSlotSetBid(uint128 slotSet, uint128 newInitialMinBid)
1849func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewDefaultSlotSetBid(opts *bind.FilterOpts) (*HermezAuctionProtocolNewDefaultSlotSetBidIterator, error) {
1850
1851	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewDefaultSlotSetBid")
1852	if err != nil {
1853		return nil, err
1854	}
1855	return &HermezAuctionProtocolNewDefaultSlotSetBidIterator{contract: _HermezAuctionProtocol.contract, event: "NewDefaultSlotSetBid", logs: logs, sub: sub}, nil
1856}
1857
1858// WatchNewDefaultSlotSetBid is a free log subscription operation binding the contract event 0xa922aa010d1ff8e70b2aa9247d891836795c3d3ba2a543c37c91a44dc4a50172.
1859//
1860// Solidity: event NewDefaultSlotSetBid(uint128 slotSet, uint128 newInitialMinBid)
1861func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewDefaultSlotSetBid(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewDefaultSlotSetBid) (event.Subscription, error) {
1862
1863	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewDefaultSlotSetBid")
1864	if err != nil {
1865		return nil, err
1866	}
1867	return event.NewSubscription(func(quit <-chan struct{}) error {
1868		defer sub.Unsubscribe()
1869		for {
1870			select {
1871			case log := <-logs:
1872				// New log arrived, parse the event and forward to the user
1873				event := new(HermezAuctionProtocolNewDefaultSlotSetBid)
1874				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewDefaultSlotSetBid", log); err != nil {
1875					return err
1876				}
1877				event.Raw = log
1878
1879				select {
1880				case sink <- event:
1881				case err := <-sub.Err():
1882					return err
1883				case <-quit:
1884					return nil
1885				}
1886			case err := <-sub.Err():
1887				return err
1888			case <-quit:
1889				return nil
1890			}
1891		}
1892	}), nil
1893}
1894
1895// ParseNewDefaultSlotSetBid is a log parse operation binding the contract event 0xa922aa010d1ff8e70b2aa9247d891836795c3d3ba2a543c37c91a44dc4a50172.
1896//
1897// Solidity: event NewDefaultSlotSetBid(uint128 slotSet, uint128 newInitialMinBid)
1898func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewDefaultSlotSetBid(log types.Log) (*HermezAuctionProtocolNewDefaultSlotSetBid, error) {
1899	event := new(HermezAuctionProtocolNewDefaultSlotSetBid)
1900	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewDefaultSlotSetBid", log); err != nil {
1901		return nil, err
1902	}
1903	return event, nil
1904}
1905
1906// 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.
1907type HermezAuctionProtocolNewDonationAddressIterator struct {
1908	Event *HermezAuctionProtocolNewDonationAddress // Event containing the contract specifics and raw log
1909
1910	contract *bind.BoundContract // Generic contract to use for unpacking event data
1911	event    string              // Event name to use for unpacking event data
1912
1913	logs chan types.Log        // Log channel receiving the found contract events
1914	sub  ethereum.Subscription // Subscription for errors, completion and termination
1915	done bool                  // Whether the subscription completed delivering logs
1916	fail error                 // Occurred error to stop iteration
1917}
1918
1919// Next advances the iterator to the subsequent event, returning whether there
1920// are any more events found. In case of a retrieval or parsing error, false is
1921// returned and Error() can be queried for the exact failure.
1922func (it *HermezAuctionProtocolNewDonationAddressIterator) Next() bool {
1923	// If the iterator failed, stop iterating
1924	if it.fail != nil {
1925		return false
1926	}
1927	// If the iterator completed, deliver directly whatever's available
1928	if it.done {
1929		select {
1930		case log := <-it.logs:
1931			it.Event = new(HermezAuctionProtocolNewDonationAddress)
1932			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1933				it.fail = err
1934				return false
1935			}
1936			it.Event.Raw = log
1937			return true
1938
1939		default:
1940			return false
1941		}
1942	}
1943	// Iterator still in progress, wait for either a data or an error event
1944	select {
1945	case log := <-it.logs:
1946		it.Event = new(HermezAuctionProtocolNewDonationAddress)
1947		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1948			it.fail = err
1949			return false
1950		}
1951		it.Event.Raw = log
1952		return true
1953
1954	case err := <-it.sub.Err():
1955		it.done = true
1956		it.fail = err
1957		return it.Next()
1958	}
1959}
1960
1961// Error returns any retrieval or parsing error occurred during filtering.
1962func (it *HermezAuctionProtocolNewDonationAddressIterator) Error() error {
1963	return it.fail
1964}
1965
1966// Close terminates the iteration process, releasing any pending underlying
1967// resources.
1968func (it *HermezAuctionProtocolNewDonationAddressIterator) Close() error {
1969	it.sub.Unsubscribe()
1970	return nil
1971}
1972
1973// HermezAuctionProtocolNewDonationAddress represents a NewDonationAddress event raised by the HermezAuctionProtocol contract.
1974type HermezAuctionProtocolNewDonationAddress struct {
1975	NewDonationAddress common.Address
1976	Raw                types.Log // Blockchain specific contextual infos
1977}
1978
1979// FilterNewDonationAddress is a free log retrieval operation binding the contract event 0xa62863cbad1647a2855e9cd39d04fa6dfd32e1b9cfaff1aaf6523f4aaafeccd7.
1980//
1981// Solidity: event NewDonationAddress(address indexed newDonationAddress)
1982func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewDonationAddress(opts *bind.FilterOpts, newDonationAddress []common.Address) (*HermezAuctionProtocolNewDonationAddressIterator, error) {
1983
1984	var newDonationAddressRule []interface{}
1985	for _, newDonationAddressItem := range newDonationAddress {
1986		newDonationAddressRule = append(newDonationAddressRule, newDonationAddressItem)
1987	}
1988
1989	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewDonationAddress", newDonationAddressRule)
1990	if err != nil {
1991		return nil, err
1992	}
1993	return &HermezAuctionProtocolNewDonationAddressIterator{contract: _HermezAuctionProtocol.contract, event: "NewDonationAddress", logs: logs, sub: sub}, nil
1994}
1995
1996// WatchNewDonationAddress is a free log subscription operation binding the contract event 0xa62863cbad1647a2855e9cd39d04fa6dfd32e1b9cfaff1aaf6523f4aaafeccd7.
1997//
1998// Solidity: event NewDonationAddress(address indexed newDonationAddress)
1999func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewDonationAddress(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewDonationAddress, newDonationAddress []common.Address) (event.Subscription, error) {
2000
2001	var newDonationAddressRule []interface{}
2002	for _, newDonationAddressItem := range newDonationAddress {
2003		newDonationAddressRule = append(newDonationAddressRule, newDonationAddressItem)
2004	}
2005
2006	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewDonationAddress", newDonationAddressRule)
2007	if err != nil {
2008		return nil, err
2009	}
2010	return event.NewSubscription(func(quit <-chan struct{}) error {
2011		defer sub.Unsubscribe()
2012		for {
2013			select {
2014			case log := <-logs:
2015				// New log arrived, parse the event and forward to the user
2016				event := new(HermezAuctionProtocolNewDonationAddress)
2017				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewDonationAddress", log); err != nil {
2018					return err
2019				}
2020				event.Raw = log
2021
2022				select {
2023				case sink <- event:
2024				case err := <-sub.Err():
2025					return err
2026				case <-quit:
2027					return nil
2028				}
2029			case err := <-sub.Err():
2030				return err
2031			case <-quit:
2032				return nil
2033			}
2034		}
2035	}), nil
2036}
2037
2038// ParseNewDonationAddress is a log parse operation binding the contract event 0xa62863cbad1647a2855e9cd39d04fa6dfd32e1b9cfaff1aaf6523f4aaafeccd7.
2039//
2040// Solidity: event NewDonationAddress(address indexed newDonationAddress)
2041func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewDonationAddress(log types.Log) (*HermezAuctionProtocolNewDonationAddress, error) {
2042	event := new(HermezAuctionProtocolNewDonationAddress)
2043	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewDonationAddress", log); err != nil {
2044		return nil, err
2045	}
2046	return event, nil
2047}
2048
2049// 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.
2050type HermezAuctionProtocolNewForgeIterator struct {
2051	Event *HermezAuctionProtocolNewForge // Event containing the contract specifics and raw log
2052
2053	contract *bind.BoundContract // Generic contract to use for unpacking event data
2054	event    string              // Event name to use for unpacking event data
2055
2056	logs chan types.Log        // Log channel receiving the found contract events
2057	sub  ethereum.Subscription // Subscription for errors, completion and termination
2058	done bool                  // Whether the subscription completed delivering logs
2059	fail error                 // Occurred error to stop iteration
2060}
2061
2062// Next advances the iterator to the subsequent event, returning whether there
2063// are any more events found. In case of a retrieval or parsing error, false is
2064// returned and Error() can be queried for the exact failure.
2065func (it *HermezAuctionProtocolNewForgeIterator) Next() bool {
2066	// If the iterator failed, stop iterating
2067	if it.fail != nil {
2068		return false
2069	}
2070	// If the iterator completed, deliver directly whatever's available
2071	if it.done {
2072		select {
2073		case log := <-it.logs:
2074			it.Event = new(HermezAuctionProtocolNewForge)
2075			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2076				it.fail = err
2077				return false
2078			}
2079			it.Event.Raw = log
2080			return true
2081
2082		default:
2083			return false
2084		}
2085	}
2086	// Iterator still in progress, wait for either a data or an error event
2087	select {
2088	case log := <-it.logs:
2089		it.Event = new(HermezAuctionProtocolNewForge)
2090		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2091			it.fail = err
2092			return false
2093		}
2094		it.Event.Raw = log
2095		return true
2096
2097	case err := <-it.sub.Err():
2098		it.done = true
2099		it.fail = err
2100		return it.Next()
2101	}
2102}
2103
2104// Error returns any retrieval or parsing error occurred during filtering.
2105func (it *HermezAuctionProtocolNewForgeIterator) Error() error {
2106	return it.fail
2107}
2108
2109// Close terminates the iteration process, releasing any pending underlying
2110// resources.
2111func (it *HermezAuctionProtocolNewForgeIterator) Close() error {
2112	it.sub.Unsubscribe()
2113	return nil
2114}
2115
2116// HermezAuctionProtocolNewForge represents a NewForge event raised by the HermezAuctionProtocol contract.
2117type HermezAuctionProtocolNewForge struct {
2118	Forger      common.Address
2119	SlotToForge *big.Int
2120	Raw         types.Log // Blockchain specific contextual infos
2121}
2122
2123// FilterNewForge is a free log retrieval operation binding the contract event 0x7cae662d4cfa9d9c5575c65f0cc41a858c51ca14ebcbd02a802a62376c3ad238.
2124//
2125// Solidity: event NewForge(address indexed forger, uint128 indexed slotToForge)
2126func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewForge(opts *bind.FilterOpts, forger []common.Address, slotToForge []*big.Int) (*HermezAuctionProtocolNewForgeIterator, error) {
2127
2128	var forgerRule []interface{}
2129	for _, forgerItem := range forger {
2130		forgerRule = append(forgerRule, forgerItem)
2131	}
2132	var slotToForgeRule []interface{}
2133	for _, slotToForgeItem := range slotToForge {
2134		slotToForgeRule = append(slotToForgeRule, slotToForgeItem)
2135	}
2136
2137	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewForge", forgerRule, slotToForgeRule)
2138	if err != nil {
2139		return nil, err
2140	}
2141	return &HermezAuctionProtocolNewForgeIterator{contract: _HermezAuctionProtocol.contract, event: "NewForge", logs: logs, sub: sub}, nil
2142}
2143
2144// WatchNewForge is a free log subscription operation binding the contract event 0x7cae662d4cfa9d9c5575c65f0cc41a858c51ca14ebcbd02a802a62376c3ad238.
2145//
2146// Solidity: event NewForge(address indexed forger, uint128 indexed slotToForge)
2147func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewForge(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewForge, forger []common.Address, slotToForge []*big.Int) (event.Subscription, 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.WatchLogs(opts, "NewForge", forgerRule, slotToForgeRule)
2159	if err != nil {
2160		return nil, err
2161	}
2162	return event.NewSubscription(func(quit <-chan struct{}) error {
2163		defer sub.Unsubscribe()
2164		for {
2165			select {
2166			case log := <-logs:
2167				// New log arrived, parse the event and forward to the user
2168				event := new(HermezAuctionProtocolNewForge)
2169				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewForge", log); err != nil {
2170					return err
2171				}
2172				event.Raw = log
2173
2174				select {
2175				case sink <- event:
2176				case err := <-sub.Err():
2177					return err
2178				case <-quit:
2179					return nil
2180				}
2181			case err := <-sub.Err():
2182				return err
2183			case <-quit:
2184				return nil
2185			}
2186		}
2187	}), nil
2188}
2189
2190// ParseNewForge is a log parse operation binding the contract event 0x7cae662d4cfa9d9c5575c65f0cc41a858c51ca14ebcbd02a802a62376c3ad238.
2191//
2192// Solidity: event NewForge(address indexed forger, uint128 indexed slotToForge)
2193func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewForge(log types.Log) (*HermezAuctionProtocolNewForge, error) {
2194	event := new(HermezAuctionProtocolNewForge)
2195	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewForge", log); err != nil {
2196		return nil, err
2197	}
2198	return event, nil
2199}
2200
2201// 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.
2202type HermezAuctionProtocolNewForgeAllocatedIterator struct {
2203	Event *HermezAuctionProtocolNewForgeAllocated // Event containing the contract specifics and raw log
2204
2205	contract *bind.BoundContract // Generic contract to use for unpacking event data
2206	event    string              // Event name to use for unpacking event data
2207
2208	logs chan types.Log        // Log channel receiving the found contract events
2209	sub  ethereum.Subscription // Subscription for errors, completion and termination
2210	done bool                  // Whether the subscription completed delivering logs
2211	fail error                 // Occurred error to stop iteration
2212}
2213
2214// Next advances the iterator to the subsequent event, returning whether there
2215// are any more events found. In case of a retrieval or parsing error, false is
2216// returned and Error() can be queried for the exact failure.
2217func (it *HermezAuctionProtocolNewForgeAllocatedIterator) Next() bool {
2218	// If the iterator failed, stop iterating
2219	if it.fail != nil {
2220		return false
2221	}
2222	// If the iterator completed, deliver directly whatever's available
2223	if it.done {
2224		select {
2225		case log := <-it.logs:
2226			it.Event = new(HermezAuctionProtocolNewForgeAllocated)
2227			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2228				it.fail = err
2229				return false
2230			}
2231			it.Event.Raw = log
2232			return true
2233
2234		default:
2235			return false
2236		}
2237	}
2238	// Iterator still in progress, wait for either a data or an error event
2239	select {
2240	case log := <-it.logs:
2241		it.Event = new(HermezAuctionProtocolNewForgeAllocated)
2242		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2243			it.fail = err
2244			return false
2245		}
2246		it.Event.Raw = log
2247		return true
2248
2249	case err := <-it.sub.Err():
2250		it.done = true
2251		it.fail = err
2252		return it.Next()
2253	}
2254}
2255
2256// Error returns any retrieval or parsing error occurred during filtering.
2257func (it *HermezAuctionProtocolNewForgeAllocatedIterator) Error() error {
2258	return it.fail
2259}
2260
2261// Close terminates the iteration process, releasing any pending underlying
2262// resources.
2263func (it *HermezAuctionProtocolNewForgeAllocatedIterator) Close() error {
2264	it.sub.Unsubscribe()
2265	return nil
2266}
2267
2268// HermezAuctionProtocolNewForgeAllocated represents a NewForgeAllocated event raised by the HermezAuctionProtocol contract.
2269type HermezAuctionProtocolNewForgeAllocated struct {
2270	Bidder           common.Address
2271	Forger           common.Address
2272	SlotToForge      *big.Int
2273	BurnAmount       *big.Int
2274	DonationAmount   *big.Int
2275	GovernanceAmount *big.Int
2276	Raw              types.Log // Blockchain specific contextual infos
2277}
2278
2279// FilterNewForgeAllocated is a free log retrieval operation binding the contract event 0xd64ebb43f4c2b91022b97389834432f1027ef55586129ba05a3a3065b2304f05.
2280//
2281// Solidity: event NewForgeAllocated(address indexed bidder, address indexed forger, uint128 indexed slotToForge, uint128 burnAmount, uint128 donationAmount, uint128 governanceAmount)
2282func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewForgeAllocated(opts *bind.FilterOpts, bidder []common.Address, forger []common.Address, slotToForge []*big.Int) (*HermezAuctionProtocolNewForgeAllocatedIterator, error) {
2283
2284	var bidderRule []interface{}
2285	for _, bidderItem := range bidder {
2286		bidderRule = append(bidderRule, bidderItem)
2287	}
2288	var forgerRule []interface{}
2289	for _, forgerItem := range forger {
2290		forgerRule = append(forgerRule, forgerItem)
2291	}
2292	var slotToForgeRule []interface{}
2293	for _, slotToForgeItem := range slotToForge {
2294		slotToForgeRule = append(slotToForgeRule, slotToForgeItem)
2295	}
2296
2297	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewForgeAllocated", bidderRule, forgerRule, slotToForgeRule)
2298	if err != nil {
2299		return nil, err
2300	}
2301	return &HermezAuctionProtocolNewForgeAllocatedIterator{contract: _HermezAuctionProtocol.contract, event: "NewForgeAllocated", logs: logs, sub: sub}, nil
2302}
2303
2304// WatchNewForgeAllocated is a free log subscription operation binding the contract event 0xd64ebb43f4c2b91022b97389834432f1027ef55586129ba05a3a3065b2304f05.
2305//
2306// Solidity: event NewForgeAllocated(address indexed bidder, address indexed forger, uint128 indexed slotToForge, uint128 burnAmount, uint128 donationAmount, uint128 governanceAmount)
2307func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewForgeAllocated(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewForgeAllocated, bidder []common.Address, forger []common.Address, slotToForge []*big.Int) (event.Subscription, error) {
2308
2309	var bidderRule []interface{}
2310	for _, bidderItem := range bidder {
2311		bidderRule = append(bidderRule, bidderItem)
2312	}
2313	var forgerRule []interface{}
2314	for _, forgerItem := range forger {
2315		forgerRule = append(forgerRule, forgerItem)
2316	}
2317	var slotToForgeRule []interface{}
2318	for _, slotToForgeItem := range slotToForge {
2319		slotToForgeRule = append(slotToForgeRule, slotToForgeItem)
2320	}
2321
2322	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewForgeAllocated", bidderRule, forgerRule, slotToForgeRule)
2323	if err != nil {
2324		return nil, err
2325	}
2326	return event.NewSubscription(func(quit <-chan struct{}) error {
2327		defer sub.Unsubscribe()
2328		for {
2329			select {
2330			case log := <-logs:
2331				// New log arrived, parse the event and forward to the user
2332				event := new(HermezAuctionProtocolNewForgeAllocated)
2333				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewForgeAllocated", log); err != nil {
2334					return err
2335				}
2336				event.Raw = log
2337
2338				select {
2339				case sink <- event:
2340				case err := <-sub.Err():
2341					return err
2342				case <-quit:
2343					return nil
2344				}
2345			case err := <-sub.Err():
2346				return err
2347			case <-quit:
2348				return nil
2349			}
2350		}
2351	}), nil
2352}
2353
2354// ParseNewForgeAllocated is a log parse operation binding the contract event 0xd64ebb43f4c2b91022b97389834432f1027ef55586129ba05a3a3065b2304f05.
2355//
2356// Solidity: event NewForgeAllocated(address indexed bidder, address indexed forger, uint128 indexed slotToForge, uint128 burnAmount, uint128 donationAmount, uint128 governanceAmount)
2357func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewForgeAllocated(log types.Log) (*HermezAuctionProtocolNewForgeAllocated, error) {
2358	event := new(HermezAuctionProtocolNewForgeAllocated)
2359	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewForgeAllocated", log); err != nil {
2360		return nil, err
2361	}
2362	return event, nil
2363}
2364
2365// 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.
2366type HermezAuctionProtocolNewOpenAuctionSlotsIterator struct {
2367	Event *HermezAuctionProtocolNewOpenAuctionSlots // Event containing the contract specifics and raw log
2368
2369	contract *bind.BoundContract // Generic contract to use for unpacking event data
2370	event    string              // Event name to use for unpacking event data
2371
2372	logs chan types.Log        // Log channel receiving the found contract events
2373	sub  ethereum.Subscription // Subscription for errors, completion and termination
2374	done bool                  // Whether the subscription completed delivering logs
2375	fail error                 // Occurred error to stop iteration
2376}
2377
2378// Next advances the iterator to the subsequent event, returning whether there
2379// are any more events found. In case of a retrieval or parsing error, false is
2380// returned and Error() can be queried for the exact failure.
2381func (it *HermezAuctionProtocolNewOpenAuctionSlotsIterator) Next() bool {
2382	// If the iterator failed, stop iterating
2383	if it.fail != nil {
2384		return false
2385	}
2386	// If the iterator completed, deliver directly whatever's available
2387	if it.done {
2388		select {
2389		case log := <-it.logs:
2390			it.Event = new(HermezAuctionProtocolNewOpenAuctionSlots)
2391			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2392				it.fail = err
2393				return false
2394			}
2395			it.Event.Raw = log
2396			return true
2397
2398		default:
2399			return false
2400		}
2401	}
2402	// Iterator still in progress, wait for either a data or an error event
2403	select {
2404	case log := <-it.logs:
2405		it.Event = new(HermezAuctionProtocolNewOpenAuctionSlots)
2406		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2407			it.fail = err
2408			return false
2409		}
2410		it.Event.Raw = log
2411		return true
2412
2413	case err := <-it.sub.Err():
2414		it.done = true
2415		it.fail = err
2416		return it.Next()
2417	}
2418}
2419
2420// Error returns any retrieval or parsing error occurred during filtering.
2421func (it *HermezAuctionProtocolNewOpenAuctionSlotsIterator) Error() error {
2422	return it.fail
2423}
2424
2425// Close terminates the iteration process, releasing any pending underlying
2426// resources.
2427func (it *HermezAuctionProtocolNewOpenAuctionSlotsIterator) Close() error {
2428	it.sub.Unsubscribe()
2429	return nil
2430}
2431
2432// HermezAuctionProtocolNewOpenAuctionSlots represents a NewOpenAuctionSlots event raised by the HermezAuctionProtocol contract.
2433type HermezAuctionProtocolNewOpenAuctionSlots struct {
2434	NewOpenAuctionSlots uint16
2435	Raw                 types.Log // Blockchain specific contextual infos
2436}
2437
2438// FilterNewOpenAuctionSlots is a free log retrieval operation binding the contract event 0x3da0492dea7298351bc14d1c0699905fd0657c33487449751af50fc0c8b593f1.
2439//
2440// Solidity: event NewOpenAuctionSlots(uint16 newOpenAuctionSlots)
2441func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewOpenAuctionSlots(opts *bind.FilterOpts) (*HermezAuctionProtocolNewOpenAuctionSlotsIterator, error) {
2442
2443	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewOpenAuctionSlots")
2444	if err != nil {
2445		return nil, err
2446	}
2447	return &HermezAuctionProtocolNewOpenAuctionSlotsIterator{contract: _HermezAuctionProtocol.contract, event: "NewOpenAuctionSlots", logs: logs, sub: sub}, nil
2448}
2449
2450// WatchNewOpenAuctionSlots is a free log subscription operation binding the contract event 0x3da0492dea7298351bc14d1c0699905fd0657c33487449751af50fc0c8b593f1.
2451//
2452// Solidity: event NewOpenAuctionSlots(uint16 newOpenAuctionSlots)
2453func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewOpenAuctionSlots(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewOpenAuctionSlots) (event.Subscription, error) {
2454
2455	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewOpenAuctionSlots")
2456	if err != nil {
2457		return nil, err
2458	}
2459	return event.NewSubscription(func(quit <-chan struct{}) error {
2460		defer sub.Unsubscribe()
2461		for {
2462			select {
2463			case log := <-logs:
2464				// New log arrived, parse the event and forward to the user
2465				event := new(HermezAuctionProtocolNewOpenAuctionSlots)
2466				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewOpenAuctionSlots", log); err != nil {
2467					return err
2468				}
2469				event.Raw = log
2470
2471				select {
2472				case sink <- event:
2473				case err := <-sub.Err():
2474					return err
2475				case <-quit:
2476					return nil
2477				}
2478			case err := <-sub.Err():
2479				return err
2480			case <-quit:
2481				return nil
2482			}
2483		}
2484	}), nil
2485}
2486
2487// ParseNewOpenAuctionSlots is a log parse operation binding the contract event 0x3da0492dea7298351bc14d1c0699905fd0657c33487449751af50fc0c8b593f1.
2488//
2489// Solidity: event NewOpenAuctionSlots(uint16 newOpenAuctionSlots)
2490func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewOpenAuctionSlots(log types.Log) (*HermezAuctionProtocolNewOpenAuctionSlots, error) {
2491	event := new(HermezAuctionProtocolNewOpenAuctionSlots)
2492	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewOpenAuctionSlots", log); err != nil {
2493		return nil, err
2494	}
2495	return event, nil
2496}
2497
2498// 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.
2499type HermezAuctionProtocolNewOutbiddingIterator struct {
2500	Event *HermezAuctionProtocolNewOutbidding // Event containing the contract specifics and raw log
2501
2502	contract *bind.BoundContract // Generic contract to use for unpacking event data
2503	event    string              // Event name to use for unpacking event data
2504
2505	logs chan types.Log        // Log channel receiving the found contract events
2506	sub  ethereum.Subscription // Subscription for errors, completion and termination
2507	done bool                  // Whether the subscription completed delivering logs
2508	fail error                 // Occurred error to stop iteration
2509}
2510
2511// Next advances the iterator to the subsequent event, returning whether there
2512// are any more events found. In case of a retrieval or parsing error, false is
2513// returned and Error() can be queried for the exact failure.
2514func (it *HermezAuctionProtocolNewOutbiddingIterator) Next() bool {
2515	// If the iterator failed, stop iterating
2516	if it.fail != nil {
2517		return false
2518	}
2519	// If the iterator completed, deliver directly whatever's available
2520	if it.done {
2521		select {
2522		case log := <-it.logs:
2523			it.Event = new(HermezAuctionProtocolNewOutbidding)
2524			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2525				it.fail = err
2526				return false
2527			}
2528			it.Event.Raw = log
2529			return true
2530
2531		default:
2532			return false
2533		}
2534	}
2535	// Iterator still in progress, wait for either a data or an error event
2536	select {
2537	case log := <-it.logs:
2538		it.Event = new(HermezAuctionProtocolNewOutbidding)
2539		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2540			it.fail = err
2541			return false
2542		}
2543		it.Event.Raw = log
2544		return true
2545
2546	case err := <-it.sub.Err():
2547		it.done = true
2548		it.fail = err
2549		return it.Next()
2550	}
2551}
2552
2553// Error returns any retrieval or parsing error occurred during filtering.
2554func (it *HermezAuctionProtocolNewOutbiddingIterator) Error() error {
2555	return it.fail
2556}
2557
2558// Close terminates the iteration process, releasing any pending underlying
2559// resources.
2560func (it *HermezAuctionProtocolNewOutbiddingIterator) Close() error {
2561	it.sub.Unsubscribe()
2562	return nil
2563}
2564
2565// HermezAuctionProtocolNewOutbidding represents a NewOutbidding event raised by the HermezAuctionProtocol contract.
2566type HermezAuctionProtocolNewOutbidding struct {
2567	NewOutbidding uint16
2568	Raw           types.Log // Blockchain specific contextual infos
2569}
2570
2571// FilterNewOutbidding is a free log retrieval operation binding the contract event 0xd3748b8c326e93d12af934fbf87471e315a89bc3f7b8222343acf0210edf248e.
2572//
2573// Solidity: event NewOutbidding(uint16 newOutbidding)
2574func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewOutbidding(opts *bind.FilterOpts) (*HermezAuctionProtocolNewOutbiddingIterator, error) {
2575
2576	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewOutbidding")
2577	if err != nil {
2578		return nil, err
2579	}
2580	return &HermezAuctionProtocolNewOutbiddingIterator{contract: _HermezAuctionProtocol.contract, event: "NewOutbidding", logs: logs, sub: sub}, nil
2581}
2582
2583// WatchNewOutbidding is a free log subscription operation binding the contract event 0xd3748b8c326e93d12af934fbf87471e315a89bc3f7b8222343acf0210edf248e.
2584//
2585// Solidity: event NewOutbidding(uint16 newOutbidding)
2586func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewOutbidding(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewOutbidding) (event.Subscription, error) {
2587
2588	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewOutbidding")
2589	if err != nil {
2590		return nil, err
2591	}
2592	return event.NewSubscription(func(quit <-chan struct{}) error {
2593		defer sub.Unsubscribe()
2594		for {
2595			select {
2596			case log := <-logs:
2597				// New log arrived, parse the event and forward to the user
2598				event := new(HermezAuctionProtocolNewOutbidding)
2599				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewOutbidding", log); err != nil {
2600					return err
2601				}
2602				event.Raw = log
2603
2604				select {
2605				case sink <- event:
2606				case err := <-sub.Err():
2607					return err
2608				case <-quit:
2609					return nil
2610				}
2611			case err := <-sub.Err():
2612				return err
2613			case <-quit:
2614				return nil
2615			}
2616		}
2617	}), nil
2618}
2619
2620// ParseNewOutbidding is a log parse operation binding the contract event 0xd3748b8c326e93d12af934fbf87471e315a89bc3f7b8222343acf0210edf248e.
2621//
2622// Solidity: event NewOutbidding(uint16 newOutbidding)
2623func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewOutbidding(log types.Log) (*HermezAuctionProtocolNewOutbidding, error) {
2624	event := new(HermezAuctionProtocolNewOutbidding)
2625	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewOutbidding", log); err != nil {
2626		return nil, err
2627	}
2628	return event, nil
2629}
2630
2631// 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.
2632type HermezAuctionProtocolNewSlotDeadlineIterator struct {
2633	Event *HermezAuctionProtocolNewSlotDeadline // Event containing the contract specifics and raw log
2634
2635	contract *bind.BoundContract // Generic contract to use for unpacking event data
2636	event    string              // Event name to use for unpacking event data
2637
2638	logs chan types.Log        // Log channel receiving the found contract events
2639	sub  ethereum.Subscription // Subscription for errors, completion and termination
2640	done bool                  // Whether the subscription completed delivering logs
2641	fail error                 // Occurred error to stop iteration
2642}
2643
2644// Next advances the iterator to the subsequent event, returning whether there
2645// are any more events found. In case of a retrieval or parsing error, false is
2646// returned and Error() can be queried for the exact failure.
2647func (it *HermezAuctionProtocolNewSlotDeadlineIterator) Next() bool {
2648	// If the iterator failed, stop iterating
2649	if it.fail != nil {
2650		return false
2651	}
2652	// If the iterator completed, deliver directly whatever's available
2653	if it.done {
2654		select {
2655		case log := <-it.logs:
2656			it.Event = new(HermezAuctionProtocolNewSlotDeadline)
2657			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2658				it.fail = err
2659				return false
2660			}
2661			it.Event.Raw = log
2662			return true
2663
2664		default:
2665			return false
2666		}
2667	}
2668	// Iterator still in progress, wait for either a data or an error event
2669	select {
2670	case log := <-it.logs:
2671		it.Event = new(HermezAuctionProtocolNewSlotDeadline)
2672		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2673			it.fail = err
2674			return false
2675		}
2676		it.Event.Raw = log
2677		return true
2678
2679	case err := <-it.sub.Err():
2680		it.done = true
2681		it.fail = err
2682		return it.Next()
2683	}
2684}
2685
2686// Error returns any retrieval or parsing error occurred during filtering.
2687func (it *HermezAuctionProtocolNewSlotDeadlineIterator) Error() error {
2688	return it.fail
2689}
2690
2691// Close terminates the iteration process, releasing any pending underlying
2692// resources.
2693func (it *HermezAuctionProtocolNewSlotDeadlineIterator) Close() error {
2694	it.sub.Unsubscribe()
2695	return nil
2696}
2697
2698// HermezAuctionProtocolNewSlotDeadline represents a NewSlotDeadline event raised by the HermezAuctionProtocol contract.
2699type HermezAuctionProtocolNewSlotDeadline struct {
2700	NewSlotDeadline uint8
2701	Raw             types.Log // Blockchain specific contextual infos
2702}
2703
2704// FilterNewSlotDeadline is a free log retrieval operation binding the contract event 0x4a0d90b611c15e02dbf23b10f35b936cf2c77665f8c77822d3eca131f9d986d3.
2705//
2706// Solidity: event NewSlotDeadline(uint8 newSlotDeadline)
2707func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewSlotDeadline(opts *bind.FilterOpts) (*HermezAuctionProtocolNewSlotDeadlineIterator, error) {
2708
2709	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewSlotDeadline")
2710	if err != nil {
2711		return nil, err
2712	}
2713	return &HermezAuctionProtocolNewSlotDeadlineIterator{contract: _HermezAuctionProtocol.contract, event: "NewSlotDeadline", logs: logs, sub: sub}, nil
2714}
2715
2716// WatchNewSlotDeadline is a free log subscription operation binding the contract event 0x4a0d90b611c15e02dbf23b10f35b936cf2c77665f8c77822d3eca131f9d986d3.
2717//
2718// Solidity: event NewSlotDeadline(uint8 newSlotDeadline)
2719func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewSlotDeadline(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewSlotDeadline) (event.Subscription, error) {
2720
2721	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewSlotDeadline")
2722	if err != nil {
2723		return nil, err
2724	}
2725	return event.NewSubscription(func(quit <-chan struct{}) error {
2726		defer sub.Unsubscribe()
2727		for {
2728			select {
2729			case log := <-logs:
2730				// New log arrived, parse the event and forward to the user
2731				event := new(HermezAuctionProtocolNewSlotDeadline)
2732				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewSlotDeadline", log); err != nil {
2733					return err
2734				}
2735				event.Raw = log
2736
2737				select {
2738				case sink <- event:
2739				case err := <-sub.Err():
2740					return err
2741				case <-quit:
2742					return nil
2743				}
2744			case err := <-sub.Err():
2745				return err
2746			case <-quit:
2747				return nil
2748			}
2749		}
2750	}), nil
2751}
2752
2753// ParseNewSlotDeadline is a log parse operation binding the contract event 0x4a0d90b611c15e02dbf23b10f35b936cf2c77665f8c77822d3eca131f9d986d3.
2754//
2755// Solidity: event NewSlotDeadline(uint8 newSlotDeadline)
2756func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewSlotDeadline(log types.Log) (*HermezAuctionProtocolNewSlotDeadline, error) {
2757	event := new(HermezAuctionProtocolNewSlotDeadline)
2758	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewSlotDeadline", log); err != nil {
2759		return nil, err
2760	}
2761	return event, nil
2762}
2763
2764// 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.
2765type HermezAuctionProtocolSetCoordinatorIterator struct {
2766	Event *HermezAuctionProtocolSetCoordinator // Event containing the contract specifics and raw log
2767
2768	contract *bind.BoundContract // Generic contract to use for unpacking event data
2769	event    string              // Event name to use for unpacking event data
2770
2771	logs chan types.Log        // Log channel receiving the found contract events
2772	sub  ethereum.Subscription // Subscription for errors, completion and termination
2773	done bool                  // Whether the subscription completed delivering logs
2774	fail error                 // Occurred error to stop iteration
2775}
2776
2777// Next advances the iterator to the subsequent event, returning whether there
2778// are any more events found. In case of a retrieval or parsing error, false is
2779// returned and Error() can be queried for the exact failure.
2780func (it *HermezAuctionProtocolSetCoordinatorIterator) Next() bool {
2781	// If the iterator failed, stop iterating
2782	if it.fail != nil {
2783		return false
2784	}
2785	// If the iterator completed, deliver directly whatever's available
2786	if it.done {
2787		select {
2788		case log := <-it.logs:
2789			it.Event = new(HermezAuctionProtocolSetCoordinator)
2790			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2791				it.fail = err
2792				return false
2793			}
2794			it.Event.Raw = log
2795			return true
2796
2797		default:
2798			return false
2799		}
2800	}
2801	// Iterator still in progress, wait for either a data or an error event
2802	select {
2803	case log := <-it.logs:
2804		it.Event = new(HermezAuctionProtocolSetCoordinator)
2805		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2806			it.fail = err
2807			return false
2808		}
2809		it.Event.Raw = log
2810		return true
2811
2812	case err := <-it.sub.Err():
2813		it.done = true
2814		it.fail = err
2815		return it.Next()
2816	}
2817}
2818
2819// Error returns any retrieval or parsing error occurred during filtering.
2820func (it *HermezAuctionProtocolSetCoordinatorIterator) Error() error {
2821	return it.fail
2822}
2823
2824// Close terminates the iteration process, releasing any pending underlying
2825// resources.
2826func (it *HermezAuctionProtocolSetCoordinatorIterator) Close() error {
2827	it.sub.Unsubscribe()
2828	return nil
2829}
2830
2831// HermezAuctionProtocolSetCoordinator represents a SetCoordinator event raised by the HermezAuctionProtocol contract.
2832type HermezAuctionProtocolSetCoordinator struct {
2833	Bidder         common.Address
2834	Forger         common.Address
2835	CoordinatorURL string
2836	Raw            types.Log // Blockchain specific contextual infos
2837}
2838
2839// FilterSetCoordinator is a free log retrieval operation binding the contract event 0x5246b2ac9ee77efe2e64af6df00055d97e2d6e1b277f5a8d17ba5bca1a573da0.
2840//
2841// Solidity: event SetCoordinator(address indexed bidder, address indexed forger, string coordinatorURL)
2842func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterSetCoordinator(opts *bind.FilterOpts, bidder []common.Address, forger []common.Address) (*HermezAuctionProtocolSetCoordinatorIterator, error) {
2843
2844	var bidderRule []interface{}
2845	for _, bidderItem := range bidder {
2846		bidderRule = append(bidderRule, bidderItem)
2847	}
2848	var forgerRule []interface{}
2849	for _, forgerItem := range forger {
2850		forgerRule = append(forgerRule, forgerItem)
2851	}
2852
2853	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "SetCoordinator", bidderRule, forgerRule)
2854	if err != nil {
2855		return nil, err
2856	}
2857	return &HermezAuctionProtocolSetCoordinatorIterator{contract: _HermezAuctionProtocol.contract, event: "SetCoordinator", logs: logs, sub: sub}, nil
2858}
2859
2860// WatchSetCoordinator is a free log subscription operation binding the contract event 0x5246b2ac9ee77efe2e64af6df00055d97e2d6e1b277f5a8d17ba5bca1a573da0.
2861//
2862// Solidity: event SetCoordinator(address indexed bidder, address indexed forger, string coordinatorURL)
2863func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchSetCoordinator(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolSetCoordinator, bidder []common.Address, forger []common.Address) (event.Subscription, 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.WatchLogs(opts, "SetCoordinator", bidderRule, forgerRule)
2875	if err != nil {
2876		return nil, err
2877	}
2878	return event.NewSubscription(func(quit <-chan struct{}) error {
2879		defer sub.Unsubscribe()
2880		for {
2881			select {
2882			case log := <-logs:
2883				// New log arrived, parse the event and forward to the user
2884				event := new(HermezAuctionProtocolSetCoordinator)
2885				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "SetCoordinator", log); err != nil {
2886					return err
2887				}
2888				event.Raw = log
2889
2890				select {
2891				case sink <- event:
2892				case err := <-sub.Err():
2893					return err
2894				case <-quit:
2895					return nil
2896				}
2897			case err := <-sub.Err():
2898				return err
2899			case <-quit:
2900				return nil
2901			}
2902		}
2903	}), nil
2904}
2905
2906// ParseSetCoordinator is a log parse operation binding the contract event 0x5246b2ac9ee77efe2e64af6df00055d97e2d6e1b277f5a8d17ba5bca1a573da0.
2907//
2908// Solidity: event SetCoordinator(address indexed bidder, address indexed forger, string coordinatorURL)
2909func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseSetCoordinator(log types.Log) (*HermezAuctionProtocolSetCoordinator, error) {
2910	event := new(HermezAuctionProtocolSetCoordinator)
2911	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "SetCoordinator", log); err != nil {
2912		return nil, err
2913	}
2914	return event, nil
2915}