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\":false,\"internalType\":\"address\",\"name\":\"forgerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawalAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"coordinatorURL\",\"type\":\"string\"}],\"name\":\"CoordinatorUpdated\",\"type\":\"event\"},{\"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\":\"uint8[3]\",\"name\":\"newAllocationRatio\",\"type\":\"uint8[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\":\"coordinatorForger\",\"type\":\"address\"}],\"name\":\"NewBid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"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\":\"address\",\"name\":\"forgerAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"withdrawalAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"coordinatorURL\",\"type\":\"string\"}],\"name\":\"NewCoordinator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"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\":\"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\":\"uint128\",\"name\":\"slotEpoch\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"newInitialMinBid\",\"type\":\"uint128\"}],\"name\":\"NewMinBidEpoch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"newOpenAuctionSlots\",\"type\":\"uint16\"}],\"name\":\"NewOpenAuctionSlots\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"newOutbidding\",\"type\":\"uint8\"}],\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BLOCKS_PER_SLOT\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DELAY_GENESIS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"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\":\"slotEpoch\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"newInitialMinBid\",\"type\":\"uint128\"}],\"name\":\"changeEpochMinBid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimAddress\",\"type\":\"address\"}],\"name\":\"claimHEZ\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"coordinators\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"withdrawalAddress\",\"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\":\"uint8[3]\",\"name\":\"\",\"type\":\"uint8[3]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBootCoordinator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"claimAddress\",\"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\":[],\"name\":\"getDonationAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"slot\",\"type\":\"uint128\"}],\"name\":\"getEpoch\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"slot\",\"type\":\"uint128\"}],\"name\":\"getMinBidBySlot\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"epoch\",\"type\":\"uint8\"}],\"name\":\"getMinBidEpoch\",\"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\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"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\":[],\"name\":\"hermezRollup\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenERC777\",\"type\":\"address\"},{\"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\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forgerAddress\",\"type\":\"address\"}],\"name\":\"isRegisteredCoordinator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"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\":\"address\",\"name\":\"forgerAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"coordinatorURL\",\"type\":\"string\"}],\"name\":\"registerCoordinator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8[3]\",\"name\":\"newAllocationRatio\",\"type\":\"uint8[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\":\"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\":\"uint8\",\"name\":\"newOutbidding\",\"type\":\"uint8\"}],\"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\":\"forger\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"bidAmount\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"closedMinBid\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"fulfilled\",\"type\":\"bool\"}],\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forgerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newWithdrawAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newURL\",\"type\":\"string\"}],\"name\":\"updateCoordinatorInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
  31
  32// HermezAuctionProtocolBin is the compiled bytecode used for deploying new contracts.
  33var HermezAuctionProtocolBin = "0x610140604052678ac7230489e80000608081815260a082905260c082905260e0829052610100829052610120919091526200003f90603a906006620000b7565b503480156200004d57600080fd5b50600160335560006200005f620000b3565b603480546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35062000184565b3390565b600383019183908215620001515791602002820160005b838211156200011a57835183826101000a8154816001600160801b0302191690836001600160801b031602179055509260200192601001602081600f01049283019260010302620000ce565b80156200014f5782816101000a8154906001600160801b030219169055601001602081600f010492830192600103026200011a565b505b506200015f92915062000163565b5090565b5b808211156200015f5780546001600160801b031916815560010162000164565b613b6880620001946000396000f3fe608060405234801561001057600080fd5b50600436106102525760003560e01c806379a135e311610146578063b3f69047116100c3578063d92bdda311610087578063d92bdda314610922578063e3498da714610943578063e606591414610995578063ec29159b1461099d578063ecdae41b146109dd578063f2fde38b14610a0357610252565b8063b3f69047146107db578063b5f7f2f01461088f578063bc41556714610897578063bf06b765146108f9578063c63de5151461090157610252565b8063a0c477a11161010a578063a0c477a1146106d7578063a48af096146106f7578063ac4b9012146107a5578063aebd6d98146107ad578063b3dc7bb1146107b557610252565b806379a135e3146105be57806383b1f6a0146105c657806387e6b6bb146105f2578063892075c8146106125780638da5cb5b146106cf57610252565b80634cdc9c63116101d45780635cca4903116101985780635cca49031461051e57806362945af2146105445780636f48e79b1461056a578063715018a614610590578063763889fa1461059857610252565b80634cdc9c63146104a55780634da9639d146104ad5780634e5a5178146104cc57806354c03ab7146104f257806355b442e61461051657610252565b80632243de471161021b5780632243de47146103e95780632d9bfd3a146103f157806337d1bd0b1461041f5780633bebeb06146104455780633f2d0c7b1461047f57610252565b806223de291461025757806307e38ac61461033f5780630c4da4f61461035f57806313de9af2146103835780631459457a146103a1575b600080fd5b61033d600480360360c081101561026d57600080fd5b6001600160a01b03823581169260208101358216926040820135909216916060820135919081019060a081016080820135600160201b8111156102af57600080fd5b8201836020820111156102c157600080fd5b803590602001918460018302840111600160201b831117156102e257600080fd5b919390929091602081019035600160201b8111156102ff57600080fd5b82018360208201111561031157600080fd5b803590602001918460018302840111600160201b8311171561033257600080fd5b509092509050610a29565b005b61033d6004803603602081101561035557600080fd5b503560ff16610c35565b610367610cdb565b604080516001600160801b039092168252519081900360200190f35b61038b610ceb565b6040805160ff9092168252519081900360200190f35b61033d600480360360a08110156103b757600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013582169160809091013516610cf9565b61038b610f24565b61033d6004803603604081101561040757600080fd5b506001600160801b0381358116916020013516610f29565b6103676004803603602081101561043557600080fd5b50356001600160801b03166111c0565b61046b6004803603602081101561045b57600080fd5b50356001600160a01b0316611377565b604080519115158252519081900360200190f35b61033d6004803603602081101561049557600080fd5b50356001600160a01b0316611397565b6103676114e6565b6104b56114f5565b6040805161ffff9092168252519081900360200190f35b61033d600480360360208110156104e257600080fd5b50356001600160a01b0316611506565b6104fa611a18565b604080516001600160a01b039092168252519081900360200190f35b61038b611a27565b6103676004803603602081101561053457600080fd5b50356001600160a01b0316611a30565b61033d6004803603602081101561055a57600080fd5b50356001600160a01b0316611a54565b61033d6004803603602081101561058057600080fd5b50356001600160a01b0316611b06565b61033d611bb8565b610367600480360360208110156105ae57600080fd5b50356001600160801b0316611c5a565b6104fa611c76565b61046b600480360360408110156105dc57600080fd5b506001600160a01b038135169060200135611c85565b61033d6004803603602081101561060857600080fd5b503560ff16611f61565b61033d6004803603606081101561062857600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561065b57600080fd5b82018360208201111561066d57600080fd5b803590602001918460018302840111600160201b8311171561068e57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061206a945050505050565b6104fa6122b4565b610367600480360360208110156106ed57600080fd5b503560ff166122c3565b61071d6004803603602081101561070d57600080fd5b50356001600160a01b03166122fb565b60405180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610769578181015183820152602001610751565b50505050905090810190601f1680156107965780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b6104b56123af565b6104fa6123c0565b610367600480360360208110156107cb57600080fd5b50356001600160801b03166123cf565b61033d600480360360408110156107f157600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561081b57600080fd5b82018360208201111561082d57600080fd5b803590602001918460018302840111600160201b8311171561084e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612409945050505050565b6104fa612583565b6108bd600480360360208110156108ad57600080fd5b50356001600160801b0316612592565b604080516001600160a01b0390951685526001600160801b03938416602086015291909216838201529015156060830152519081900360800190f35b6104b56125d5565b61033d6004803603602081101561091757600080fd5b503561ffff166125db565b61033d6004803603602081101561093857600080fd5b503561ffff166126f7565b61033d6004803603606081101561095957600080fd5b81019080806060019060038060200260405190810160405280929190826003602002808284376000920191909152509194506128139350505050565b610367612959565b6109a5612965565b6040518082606080838360005b838110156109ca5781810151838201526020016109b2565b5050505090500191505060405180910390f35b610367600480360360208110156109f357600080fd5b50356001600160a01b03166129bd565b61033d60048036036020811015610a1957600080fd5b50356001600160a01b03166129d8565b60026033541415610a81576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026033556035546001600160a01b03163314610adc576040805162461bcd60e51b815260206004820152601460248201527324b73b30b634b21022a9219b9b9b903a37b5b2b760611b604482015290519081900360640190fd5b82610b26576040805162461bcd60e51b815260206004820152601560248201527453656e642048455a20776974686f7574206461746160581b604482015290519081900360640190fd5b600160801b8510610b7e576040805162461bcd60e51b815260206004820152601e60248201527f416d6f756e74206d757374206265206c657373207468616e20325f3132380000604482015290519081900360640190fd5b600084846020811015610b9057600080fd5b50356001600160e01b0319169050636007a2af60e01b811415610bbd57610bb8868686612ad1565b610c25565b6001600160e01b03198116637a5b973560e11b1415610be157610bb8868686612dc3565b6040805162461bcd60e51b81526020600482015260146024820152734e6f7420612076616c69642063616c6c6461746160601b604482015290519081900360640190fd5b5050600160335550505050505050565b610c3d613243565b6034546001600160a01b03908116911614610c8d576040805162461bcd60e51b81526020600482018190526024820152600080516020613ae5833981519152604482015290519081900360640190fd5b603f805460ff191660ff838116919091179182905560408051929091168252517fbb54a221330f9969afbf14ba2ad1a2301a279cb9a86dc639af155c8af6eb5479916020908290030190a150565b6000610ce6436123cf565b905090565b603f54610100900460ff1690565b600054610100900460ff1680610d125750610d12613247565b80610d20575060005460ff16155b610d5b5760405162461bcd60e51b815260040180806020018281038252602e815260200180613b05602e913960400191505060405180910390fd5b600054610100900460ff16158015610d86576000805460ff1961ff0019909116610100171660011790555b603d8054603f8054600a60ff199091161761ff0019166114001790556001600160801b0319166103e843016001600160801b03161761ffff60801b1916600160811b1761ffff60901b1916608760951b179055603580546001600160a01b0319166001600160a01b0388161790556040805160608101825260288082526020820152601491810191909152610e1f90603e9060036138fe565b50603680546001600160a01b03199081166001600160a01b0388811691909117909255603980548216858416179055603880548216868416179055603780549091168683161790819055610e7391166129d8565b604080516329965a1d60e01b815230600482018190527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b602483015260448201529051731820a4b7618bde71dce8cdc73aab6c95905fad24916329965a1d91606480830192600092919082900301818387803b158015610ef257600080fd5b505af1158015610f06573d6000803e3d6000fd5b505050508015610f1c576000805461ff00191690555b505050505050565b602881565b610f31613243565b6034546001600160a01b03908116911614610f81576040805162461bcd60e51b81526020600482018190526024820152600080516020613ae5833981519152604482015290519081900360640190fd5b6006826001600160801b03161115610fd8576040805162461bcd60e51b815260206004820152601560248201527409cdee840c240ecc2d8d2c840e6d8dee88ae0dec6d605b1b604482015290519081900360640190fd5b603a826001600160801b031660068110610fee57fe5b60028104919091015460019091166010026101000a90046001600160801b031661105f576040805162461bcd60e51b815260206004820152601b60248201527f546869732045706f636820697320646563656e7472616c697a65640000000000604482015290519081900360640190fd5b6000611069610cdb565b9050805b603d54600160801b900461ffff1682016001600160801b0390811690821611611123576001600160801b03808216600090815260406020819052902060010154600160801b90041661111b57603a6110c482611c5a565b6001600160801b0316600681106110d757fe5b6002810491909101546001600160801b038381166000908152604060208190529020600190810180548316919094166010026101000a90920416600160801b021790555b60010161106d565b5081603a846001600160801b03166006811061113b57fe5b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b031602179055507f7eaf5be1f9cd1e33195565552e1b0a6fedc1a225aa861987e3c64f463060449a838360405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390a1505050565b603d54600090600160801b900461ffff166111d9610cdb565b016001600160801b0316826001600160801b03161015611240576040805162461bcd60e51b815260206004820152601f60248201527f41756374696f6e2068617320616c7265616479206265656e20636c6f73656400604482015290519081900360640190fd5b600061124b83611c5a565b6001600160801b0380851660009081526040602081905290206001015491925016156112e357603f546001600160801b038085166000908152604060208190529020600101546112de926112ba926064926112ab9291169060ff1661324d565b6001600160801b0316906132c7565b6001600160801b038086166000908152604060208190529020600101541690613309565b611370565b603f5461137090611334906064906112ab9060ff16603a6001600160801b0387166006811061130e57fe5b60028104919091015460019091166010026101000a90046001600160801b03169061324d565b603a836001600160801b03166006811061134a57fe5b60028104919091015460019091166010026101000a90046001600160801b031690613309565b9392505050565b6001600160a01b0390811660009081526042602052604090205416151590565b600260335414156113ef576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260335560006113ff82611a30565b90506000816001600160801b03161161145f576040805162461bcd60e51b815260206004820152601b60248201527f446f65736e2774206861766520656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b6001600160a01b03808316600090815260416020526040902080546001600160801b03191690556035546114959116838361336f565b604080516001600160801b038316815290516001600160a01b038416917f199ef0cb54d2b296ff6eaec2721bacf0ca3fd8344a43f5bdf4548b34dfa2594f919081900360200190a250506001603355565b603d546001600160801b031681565b603d54600160801b900461ffff1690565b6036546001600160a01b03163314611565576040805162461bcd60e51b815260206004820152601a60248201527f4f6e6c79204865726d657a20526f6c6c75702041646472657373000000000000604482015290519081900360640190fd5b61156f8143611c85565b6115ae576040805162461bcd60e51b815260206004820152600b60248201526a43616e277420666f72676560a81b604482015290519081900360640190fd5b60006115b8610cdb565b6001600160801b038181166000908152604060208190528120600281018054600160ff198216811790925591015493945060ff16929091600160801b909104161561162957506001600160801b03808316600090815260406020819052902060010154600160801b9004168061166a565b603a61163484611c5a565b6001600160801b03166006811061164757fe5b600291828204019190066010029054906101000a90046001600160801b03169050805b50816119d3576039546001600160a01b0385811691161480156116a957506001600160801b038084166000908152604060208190529020600101541615155b80156116d457506001600160801b038381166000908152604060208190529020600101548183169116105b15611779576001600160801b038381166000908152604060208181528183206001810180548616600160801b88881602179081905590546001600160a01b03908116855260428352838520541680855260419092529190922054919261173d9281169116613309565b6001600160a01b0391909116600090815260416020526040902080546001600160801b0319166001600160801b039092169190911790556119d3565b6039546001600160a01b038581169116146119d3576001600160801b03838116600090815260406020819052812060010180548316600160801b81021790819055603e5491926117d4926064926112ab92169060ff1661324d565b603e546001600160801b0386811660009081526040602081905281206001015493945092611812926064926112ab921690610100900460ff1661324d565b603e546001600160801b0387811660009081526040602081905281206001015493945092611851926064926112ab92169062010000900460ff1661324d565b6035546040805163fe9d930360e01b81526001600160801b03871660048201526024810182905260006044820181905291519394506001600160a01b039092169263fe9d930392608480820193929182900301818387803b1580156118b557600080fd5b505af11580156118c9573d6000803e3d6000fd5b50506038546001600160a01b03166000908152604160205260409020546118fc92506001600160801b0316905083613309565b6038546001600160a01b0390811660009081526041602052604080822080546001600160801b0319166001600160801b0395861617905560375490921681522054611948911682613309565b6037546001600160a01b0390811660009081526041602090815260409182902080546001600160801b0319166001600160801b03958616179055815187851681528685169181019190915284841681830152905192891692918a16917f9c1175e346e9ec25b59d991c43dd2c3c982970d169dbd7315ad3d8bb91e0acf5916060908290030190a35050505b6040516001600160801b038416906001600160a01b038616907f7cae662d4cfa9d9c5575c65f0cc41a858c51ca14ebcbd02a802a62376c3ad23890600090a350505050565b6038546001600160a01b031690565b603f5460ff1690565b6001600160a01b03166000908152604160205260409020546001600160801b031690565b611a5c613243565b6034546001600160a01b03908116911614611aac576040805162461bcd60e51b81526020600482018190526024820152600080516020613ae5833981519152604482015290519081900360640190fd5b603980546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f2161bd0f0e056d18046a81683e5bc845980367451cf4ca5148523a147c51be55916020908290030190a150565b611b0e613243565b6034546001600160a01b03908116911614611b5e576040805162461bcd60e51b81526020600482018190526024820152600080516020613ae5833981519152604482015290519081900360640190fd5b603880546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517fa62863cbad1647a2855e9cd39d04fa6dfd32e1b9cfaff1aaf6523f4aaafeccd7916020908290030190a150565b611bc0613243565b6034546001600160a01b03908116911614611c10576040805162461bcd60e51b81526020600482018190526024820152600080516020613ae5833981519152604482015290519081900360640190fd5b6034546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3603480546001600160a01b0319169055565b6000611c706001600160801b038316600661350c565b92915050565b6035546001600160a01b031681565b6000600160801b8210611cdf576040805162461bcd60e51b815260206004820152601d60248201527f626c6f636b4e756d62657220686967686572207468616e20325f313238000000604482015290519081900360640190fd5b603d546001600160801b0316821015611d3f576040805162461bcd60e51b815260206004820152601b60248201527f41756374696f6e20686173206e6f742073746172746564207965740000000000604482015290519081900360640190fd5b6000611d4a836123cf565b603d54909150600090611d9390611d83906001600160801b0390811690611d74908616602861324d565b6001600160801b031690613309565b6001600160801b0386169061354e565b6001600160801b0380841660009081526040602081905281206001015492935091600160801b90041615611ded57506001600160801b03808316600090815260406020819052902060010154600160801b90041680611e2e565b603a611df884611c5a565b6001600160801b031660068110611e0b57fe5b600291828204019190066010029054906101000a90046001600160801b03169050805b506001600160801b03831660009081526040602081905290206002015460ff16158015611e6e5750603f54610100900460ff166001600160801b03831610155b15611e7f5760019350505050611c70565b6001600160801b0383166000908152604060208190529020546001600160a01b038781169116148015611ed257506001600160801b03838116600090815260406020819052902060010154818316911610155b15611ee35760019350505050611c70565b6039546001600160a01b038781169116148015611f4457506001600160801b0383811660009081526040602081905290206001015481831691161080611f4457506001600160801b0380841660009081526040602081905290206001015416155b15611f555760019350505050611c70565b50600095945050505050565b611f69613243565b6034546001600160a01b03908116911614611fb9576040805162461bcd60e51b81526020600482018190526024820152600080516020613ae5833981519152604482015290519081900360640190fd5b602860ff82161115612012576040805162461bcd60e51b815260206004820152601c60248201527f47726561746572207468616e20424c4f434b535f5045525f534c4f5400000000604482015290519081900360640190fd5b603f805460ff80841661010090810261ff00199093169290921792839055604080519290930416815290517f4a0d90b611c15e02dbf23b10f35b936cf2c77665f8c77822d3eca131f9d986d39181900360200190a150565b61207383611377565b6120bc576040805162461bcd60e51b8152602060048201526015602482015274466f7267657220646f65736e27742065786973747360581b604482015290519081900360640190fd5b6001600160a01b0383811660009081526042602052604090205416331461212a576040805162461bcd60e51b815260206004820152601a60248201527f4f6e6c7920746865207769746864726177616c41646472657373000000000000604482015290519081900360640190fd5b6001600160a01b038216612185576040805162461bcd60e51b815260206004820152601e60248201527f5769746864726177616c416464726573732063616e2774206265203078300000604482015290519081900360640190fd5b6001600160a01b03838116600090815260426020908152604090912080546001600160a01b03191692851692909217825582516121c89260010191840190613991565b506001600160a01b0380841660008181526042602090815260409182902080548351948552909416908301819052606091830182815260019485018054600260001997821615610100029790970116959095049284018390527f384460dae6dd1682b71131272b0e47bcd8ecef844d632c5062db277378a868c594889492939092919060808301908490801561229f5780601f106122745761010080835404028352916020019161229f565b820191906000526020600020905b81548152906001019060200180831161228257829003601f168201915b505094505050505060405180910390a1505050565b6034546001600160a01b031690565b6000603a8260ff16600681106122d557fe5b600291828204019190066010029054906101000a90046001600160801b03169050919050565b6042602090815260009182526040918290208054600180830180548651600261010094831615949094026000190190911692909204601f81018690048602830186019096528582526001600160a01b039092169492939092908301828280156123a55780601f1061237a576101008083540402835291602001916123a5565b820191906000526020600020905b81548152906001019060200180831161238857829003601f168201915b5050505050905082565b603d54600160901b900461ffff1690565b6036546001600160a01b031681565b603d546000906001600160801b0390811690831610156123f0576000611c70565b50603d5460286001600160801b03918216909203160490565b61241282611377565b15612459576040805162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481c9959da5cdd195c995960721b604482015290519081900360640190fd5b6001600160a01b038216600090815260426020908152604090912080546001600160a01b03191633178155825161249892600190920191840190613991565b506001600160a01b0380831660008181526042602090815260409182902080548351948552909416908301819052606091830182815260019485018054600260001997821615610100029790970116959095049284018390527f669c2ad52258689ce95b5b33025822b1afde214fff3a61dd00007d98b5b2ca3694879492939092919060808301908490801561256f5780601f106125445761010080835404028352916020019161256f565b820191906000526020600020905b81548152906001019060200180831161255257829003601f168201915b505094505050505060405180910390a15050565b6039546001600160a01b031690565b6040602081905260009182529020805460018201546002909201546001600160a01b03909116916001600160801b0380821692600160801b909204169060ff1684565b6103e881565b6125e3613243565b6034546001600160a01b03908116911614612633576040805162461bcd60e51b81526020600482018190526024820152600080516020613ae5833981519152604482015290519081900360640190fd5b603d5461ffff600160801b90910481169082161015612699576040805162461bcd60e51b815260206004820152601f60248201527f536d616c6c6572207468616e20636c6f73656441756374696f6e536c6f747300604482015290519081900360640190fd5b603d805461ffff808416600160901b90810261ffff60901b199093169290921792839055604080519290930416815290517f3da0492dea7298351bc14d1c0699905fd0657c33487449751af50fc0c8b593f19181900360200190a150565b6126ff613243565b6034546001600160a01b0390811691161461274f576040805162461bcd60e51b81526020600482018190526024820152600080516020613ae5833981519152604482015290519081900360640190fd5b603d5461ffff600160901b909104811690821611156127b5576040805162461bcd60e51b815260206004820152601f60248201527f47726561746572207468616e20636c6f73656441756374696f6e536c6f747300604482015290519081900360640190fd5b603d805461ffff808416600160801b90810261ffff60801b199093169290921792839055604080519290930416815290517fc78051d3757db196b1e445f3a9a1380944518c69b5d7922ec747c54f0340a4ea9181900360200190a150565b61281b613243565b6034546001600160a01b0390811691161461286b576040805162461bcd60e51b81526020600482018190526024820152600080516020613ae5833981519152604482015290519081900360640190fd5b806002602002015181600160200201518260006020020151010160ff166064146128dc576040805162461bcd60e51b815260206004820152601e60248201527f416c6c6f636174696f6e526174696f2068617320746f20626520313030250000604482015290519081900360640190fd5b6128e9603e8260036138fe565b506040517f065446964eb025d703d01a33acfb9cf2aa2a362fc961d7e92ca0a7d927f3d44d90603e9060608101826000835b825461010083900a900460ff1681526020600192830181810494850194909303909202910180841161291b579050505091505060405180910390a150565b678ac7230489e8000081565b61296d613a0b565b60408051606081019182905290603e90600390826000855b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116129855790505050505050905090565b6041602052600090815260409020546001600160801b031681565b6129e0613243565b6034546001600160a01b03908116911614612a30576040805162461bcd60e51b81526020600482018190526024820152600080516020613ae5833981519152604482015290519081900360640190fd5b6001600160a01b038116612a755760405162461bcd60e51b8152600401808060200182810382526026815260200180613a9e6026913960400191505060405180910390fd5b6034546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3603480546001600160a01b0319166001600160a01b0392909216919091179055565b60008080612ae28460048188613a75565b6060811015612af057600080fd5b5080356001600160801b0390811694506020820135169250604001356001600160a01b03169050612b2081611377565b612b71576040805162461bcd60e51b815260206004820152601a60248201527f436f6f7264696e61746f72206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b603d54600160801b900461ffff16612b87610cdb565b016001600160801b0316836001600160801b03161015612bee576040805162461bcd60e51b815260206004820152601f60248201527f41756374696f6e2068617320616c7265616479206265656e20636c6f73656400604482015290519081900360640190fd5b612bf7836111c0565b6001600160801b0316826001600160801b03161015612c51576040805162461bcd60e51b81526020600482015260116024820152704269642062656c6f77206d696e696d756d60781b604482015290519081900360640190fd5b603d5461ffff600160901b8204811691600160801b900416612c71610cdb565b01016001600160801b0316836001600160801b031610612cd8576040805162461bcd60e51b815260206004820152601b60248201527f42696420686173206e6f74206265656e206f70656e6564207965740000000000604482015290519081900360640190fd5b6001600160a01b038082166000908152604260209081526040808320549093168252604190522054612d13906001600160801b031687613309565b6001600160a01b038281166000908152604260209081526040808320805485168452604190925280832080546001600160801b0319166001600160801b0396871617905590549092168152205483821691161015612db8576040805162461bcd60e51b815260206004820152601a60248201527f446f206e6f74206861766520656e6f7567682062616c616e6365000000000000604482015290519081900360640190fd5b610f1c838383613590565b600080612dce613a29565b60008080612ddf876004818b613a75565b610160811015612dee57600080fd5b6040805160c081810183526001600160801b03853581169560208101359091169481019390926101008401929091840190600690839083908082843760009201919091525050603d54969c50949a50985080356001600160801b0390811698506020820135169650604001356001600160a01b031694505050600160801b90910461ffff169050612e7d610cdb565b016001600160801b0316866001600160801b03161015612ee4576040805162461bcd60e51b815260206004820152601f60248201527f41756374696f6e2068617320616c7265616479206265656e20636c6f73656400604482015290519081900360640190fd5b603d5461ffff600160901b8204811691600160801b900416612f04610cdb565b01016001600160801b0316856001600160801b031610612f6b576040805162461bcd60e51b815260206004820152601b60248201527f42696420686173206e6f74206265656e206f70656e6564207965740000000000604482015290519081900360640190fd5b816001600160801b0316836001600160801b03161015612fd2576040805162461bcd60e51b815260206004820181905260248201527f6d61784269642073686f756c64206265203e3d20636c6f7365644d696e426964604482015290519081900360640190fd5b612fdb81611377565b61302c576040805162461bcd60e51b815260206004820152601a60248201527f436f6f7264696e61746f72206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b6000805b600681101561305e5785816006811061304557fe5b602002015115613056576001909101905b600101613030565b506001600160a01b03808316600090815260426020908152604080832054909316825260419052205461309a906001600160801b03168b613309565b6001600160a01b0383811660009081526042602090815260408083205490931682526041905290812080546001600160801b0319166001600160801b039390931692909217909155875b876001600160801b0316816001600160801b031611613235576000613108826111c0565b9050856001600160801b0316816001600160801b03161161312b57859250613171565b856001600160801b0316816001600160801b031611801561315e5750866001600160801b0316816001600160801b031611155b1561316b57809250613171565b5061322d565b8761317b83611c5a565b6001600160801b03166006811061318e57fe5b60200201511561322b576001600160a01b0380861660009081526042602090815260408083205490931682526041905220546001600160801b0380851691161015613220576040805162461bcd60e51b815260206004820152601a60248201527f446f206e6f74206861766520656e6f7567682062616c616e6365000000000000604482015290519081900360640190fd5b61322b828487613590565b505b6001016130e4565b505050505050505050505050565b3390565b303b1590565b60006001600160801b03831661326557506000611c70565b8282026001600160801b03808416908086169083168161328157fe5b046001600160801b0316146113705760405162461bcd60e51b8152600401808060200182810382526021815260200180613ac46021913960400191505060405180910390fd5b600061137083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613757565b60008282016001600160801b038085169082161015611370576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526001600160801b038516604480840191909152845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b602083106134275780518252601f199092019160209182019101613408565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613489576040519150601f19603f3d011682016040523d82523d6000602084013e61348e565b606091505b50915091508180156134bc5750805115806134bc57508080602001905160208110156134b957600080fd5b50515b613505576040805162461bcd60e51b8152602060048201526015602482015274151bdad95b88151c985b9cd9995c8811985a5b1959605a1b604482015290519081900360640190fd5b5050505050565b600061137083836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250613814565b600061137083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613891565b6001600160801b0380841660009081526040602081815281832080546001909101546001600160a01b03878116865260428452848620548116865260419093529290932054921692908116916135e791168561354e565b6001600160a01b03848116600081815260426020908152604080832054851683526041825280832080546001600160801b03199081166001600160801b03988916179091558b871684529181905290912080546001600160a01b031916909217825560019190910180549091169287169290921790915582161580159061367657506001600160801b03811615155b156136fc576001600160a01b0380831660009081526042602090815260408083205490931682526041905220546136b6906001600160801b031682613309565b6001600160a01b038381166000908152604260209081526040808320549093168252604190522080546001600160801b0319166001600160801b03929092169190911790555b826001600160a01b0316856001600160801b03167fd48e8329cdb2fb109b4fe445d7b681a74b256bff16e6f7f33b9d4fbe9038e4338660405180826001600160801b0316815260200191505060405180910390a35050505050565b6000816001600160801b0384166137ec5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137b1578181015183820152602001613799565b50505050905090810190601f1680156137de5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000836001600160801b0316856001600160801b03168161380a57fe5b0495945050505050565b6000816001600160801b03841661386c5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156137b1578181015183820152602001613799565b50826001600160801b0316846001600160801b03168161388857fe5b06949350505050565b6000836001600160801b0316836001600160801b0316111582906138f65760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156137b1578181015183820152602001613799565b505050900390565b6001830191839082156139815791602002820160005b8382111561395257835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613914565b801561397f5782816101000a81549060ff0219169055600101602081600001049283019260010302613952565b505b5061398d929150613a47565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106139d257805160ff19168380011785556139ff565b828001600101855582156139ff579182015b828111156139ff5782518255916020019190600101906139e4565b5061398d929150613a60565b60405180606001604052806003906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b5b8082111561398d57805460ff19168155600101613a48565b5b8082111561398d5760008155600101613a61565b60008085851115613a84578182fd5b83861115613a90578182fd5b505082019391909203915056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a26469706673582212206fc0f7f42a55361590382c9b9e2cc5069ccdd7a72b18ef6d99aedc4cf091bacb64736f6c634300060c0033"
  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// DELAYGENESIS is a free data retrieval call binding the contract method 0xbf06b765.
 218//
 219// Solidity: function DELAY_GENESIS() view returns(uint16)
 220func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) DELAYGENESIS(opts *bind.CallOpts) (uint16, error) {
 221	var (
 222		ret0 = new(uint16)
 223	)
 224	out := ret0
 225	err := _HermezAuctionProtocol.contract.Call(opts, out, "DELAY_GENESIS")
 226	return *ret0, err
 227}
 228
 229// DELAYGENESIS is a free data retrieval call binding the contract method 0xbf06b765.
 230//
 231// Solidity: function DELAY_GENESIS() view returns(uint16)
 232func (_HermezAuctionProtocol *HermezAuctionProtocolSession) DELAYGENESIS() (uint16, error) {
 233	return _HermezAuctionProtocol.Contract.DELAYGENESIS(&_HermezAuctionProtocol.CallOpts)
 234}
 235
 236// DELAYGENESIS is a free data retrieval call binding the contract method 0xbf06b765.
 237//
 238// Solidity: function DELAY_GENESIS() view returns(uint16)
 239func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) DELAYGENESIS() (uint16, error) {
 240	return _HermezAuctionProtocol.Contract.DELAYGENESIS(&_HermezAuctionProtocol.CallOpts)
 241}
 242
 243// INITIALMINIMALBIDDING is a free data retrieval call binding the contract method 0xe6065914.
 244//
 245// Solidity: function INITIAL_MINIMAL_BIDDING() view returns(uint128)
 246func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) INITIALMINIMALBIDDING(opts *bind.CallOpts) (*big.Int, error) {
 247	var (
 248		ret0 = new(*big.Int)
 249	)
 250	out := ret0
 251	err := _HermezAuctionProtocol.contract.Call(opts, out, "INITIAL_MINIMAL_BIDDING")
 252	return *ret0, err
 253}
 254
 255// INITIALMINIMALBIDDING is a free data retrieval call binding the contract method 0xe6065914.
 256//
 257// Solidity: function INITIAL_MINIMAL_BIDDING() view returns(uint128)
 258func (_HermezAuctionProtocol *HermezAuctionProtocolSession) INITIALMINIMALBIDDING() (*big.Int, error) {
 259	return _HermezAuctionProtocol.Contract.INITIALMINIMALBIDDING(&_HermezAuctionProtocol.CallOpts)
 260}
 261
 262// INITIALMINIMALBIDDING is a free data retrieval call binding the contract method 0xe6065914.
 263//
 264// Solidity: function INITIAL_MINIMAL_BIDDING() view returns(uint128)
 265func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) INITIALMINIMALBIDDING() (*big.Int, error) {
 266	return _HermezAuctionProtocol.Contract.INITIALMINIMALBIDDING(&_HermezAuctionProtocol.CallOpts)
 267}
 268
 269// CanForge is a free data retrieval call binding the contract method 0x83b1f6a0.
 270//
 271// Solidity: function canForge(address forger, uint256 blockNumber) view returns(bool)
 272func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) CanForge(opts *bind.CallOpts, forger common.Address, blockNumber *big.Int) (bool, error) {
 273	var (
 274		ret0 = new(bool)
 275	)
 276	out := ret0
 277	err := _HermezAuctionProtocol.contract.Call(opts, out, "canForge", forger, blockNumber)
 278	return *ret0, err
 279}
 280
 281// CanForge is a free data retrieval call binding the contract method 0x83b1f6a0.
 282//
 283// Solidity: function canForge(address forger, uint256 blockNumber) view returns(bool)
 284func (_HermezAuctionProtocol *HermezAuctionProtocolSession) CanForge(forger common.Address, blockNumber *big.Int) (bool, error) {
 285	return _HermezAuctionProtocol.Contract.CanForge(&_HermezAuctionProtocol.CallOpts, forger, blockNumber)
 286}
 287
 288// CanForge is a free data retrieval call binding the contract method 0x83b1f6a0.
 289//
 290// Solidity: function canForge(address forger, uint256 blockNumber) view returns(bool)
 291func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) CanForge(forger common.Address, blockNumber *big.Int) (bool, error) {
 292	return _HermezAuctionProtocol.Contract.CanForge(&_HermezAuctionProtocol.CallOpts, forger, blockNumber)
 293}
 294
 295// Coordinators is a free data retrieval call binding the contract method 0xa48af096.
 296//
 297// Solidity: function coordinators(address ) view returns(address withdrawalAddress, string coordinatorURL)
 298func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) Coordinators(opts *bind.CallOpts, arg0 common.Address) (struct {
 299	WithdrawalAddress common.Address
 300	CoordinatorURL    string
 301}, error) {
 302	ret := new(struct {
 303		WithdrawalAddress common.Address
 304		CoordinatorURL    string
 305	})
 306	out := ret
 307	err := _HermezAuctionProtocol.contract.Call(opts, out, "coordinators", arg0)
 308	return *ret, err
 309}
 310
 311// Coordinators is a free data retrieval call binding the contract method 0xa48af096.
 312//
 313// Solidity: function coordinators(address ) view returns(address withdrawalAddress, string coordinatorURL)
 314func (_HermezAuctionProtocol *HermezAuctionProtocolSession) Coordinators(arg0 common.Address) (struct {
 315	WithdrawalAddress common.Address
 316	CoordinatorURL    string
 317}, error) {
 318	return _HermezAuctionProtocol.Contract.Coordinators(&_HermezAuctionProtocol.CallOpts, arg0)
 319}
 320
 321// Coordinators is a free data retrieval call binding the contract method 0xa48af096.
 322//
 323// Solidity: function coordinators(address ) view returns(address withdrawalAddress, string coordinatorURL)
 324func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) Coordinators(arg0 common.Address) (struct {
 325	WithdrawalAddress common.Address
 326	CoordinatorURL    string
 327}, error) {
 328	return _HermezAuctionProtocol.Contract.Coordinators(&_HermezAuctionProtocol.CallOpts, arg0)
 329}
 330
 331// GenesisBlock is a free data retrieval call binding the contract method 0x4cdc9c63.
 332//
 333// Solidity: function genesisBlock() view returns(uint128)
 334func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GenesisBlock(opts *bind.CallOpts) (*big.Int, error) {
 335	var (
 336		ret0 = new(*big.Int)
 337	)
 338	out := ret0
 339	err := _HermezAuctionProtocol.contract.Call(opts, out, "genesisBlock")
 340	return *ret0, err
 341}
 342
 343// GenesisBlock is a free data retrieval call binding the contract method 0x4cdc9c63.
 344//
 345// Solidity: function genesisBlock() view returns(uint128)
 346func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GenesisBlock() (*big.Int, error) {
 347	return _HermezAuctionProtocol.Contract.GenesisBlock(&_HermezAuctionProtocol.CallOpts)
 348}
 349
 350// GenesisBlock is a free data retrieval call binding the contract method 0x4cdc9c63.
 351//
 352// Solidity: function genesisBlock() view returns(uint128)
 353func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GenesisBlock() (*big.Int, error) {
 354	return _HermezAuctionProtocol.Contract.GenesisBlock(&_HermezAuctionProtocol.CallOpts)
 355}
 356
 357// GetAllocationRatio is a free data retrieval call binding the contract method 0xec29159b.
 358//
 359// Solidity: function getAllocationRatio() view returns(uint8[3])
 360func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GetAllocationRatio(opts *bind.CallOpts) ([3]uint8, error) {
 361	var (
 362		ret0 = new([3]uint8)
 363	)
 364	out := ret0
 365	err := _HermezAuctionProtocol.contract.Call(opts, out, "getAllocationRatio")
 366	return *ret0, err
 367}
 368
 369// GetAllocationRatio is a free data retrieval call binding the contract method 0xec29159b.
 370//
 371// Solidity: function getAllocationRatio() view returns(uint8[3])
 372func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GetAllocationRatio() ([3]uint8, error) {
 373	return _HermezAuctionProtocol.Contract.GetAllocationRatio(&_HermezAuctionProtocol.CallOpts)
 374}
 375
 376// GetAllocationRatio is a free data retrieval call binding the contract method 0xec29159b.
 377//
 378// Solidity: function getAllocationRatio() view returns(uint8[3])
 379func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GetAllocationRatio() ([3]uint8, error) {
 380	return _HermezAuctionProtocol.Contract.GetAllocationRatio(&_HermezAuctionProtocol.CallOpts)
 381}
 382
 383// GetBootCoordinator is a free data retrieval call binding the contract method 0xb5f7f2f0.
 384//
 385// Solidity: function getBootCoordinator() view returns(address)
 386func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GetBootCoordinator(opts *bind.CallOpts) (common.Address, error) {
 387	var (
 388		ret0 = new(common.Address)
 389	)
 390	out := ret0
 391	err := _HermezAuctionProtocol.contract.Call(opts, out, "getBootCoordinator")
 392	return *ret0, err
 393}
 394
 395// GetBootCoordinator is a free data retrieval call binding the contract method 0xb5f7f2f0.
 396//
 397// Solidity: function getBootCoordinator() view returns(address)
 398func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GetBootCoordinator() (common.Address, error) {
 399	return _HermezAuctionProtocol.Contract.GetBootCoordinator(&_HermezAuctionProtocol.CallOpts)
 400}
 401
 402// GetBootCoordinator is a free data retrieval call binding the contract method 0xb5f7f2f0.
 403//
 404// Solidity: function getBootCoordinator() view returns(address)
 405func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GetBootCoordinator() (common.Address, error) {
 406	return _HermezAuctionProtocol.Contract.GetBootCoordinator(&_HermezAuctionProtocol.CallOpts)
 407}
 408
 409// GetClaimableHEZ is a free data retrieval call binding the contract method 0x5cca4903.
 410//
 411// Solidity: function getClaimableHEZ(address claimAddress) view returns(uint128)
 412func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GetClaimableHEZ(opts *bind.CallOpts, claimAddress common.Address) (*big.Int, error) {
 413	var (
 414		ret0 = new(*big.Int)
 415	)
 416	out := ret0
 417	err := _HermezAuctionProtocol.contract.Call(opts, out, "getClaimableHEZ", claimAddress)
 418	return *ret0, err
 419}
 420
 421// GetClaimableHEZ is a free data retrieval call binding the contract method 0x5cca4903.
 422//
 423// Solidity: function getClaimableHEZ(address claimAddress) view returns(uint128)
 424func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GetClaimableHEZ(claimAddress common.Address) (*big.Int, error) {
 425	return _HermezAuctionProtocol.Contract.GetClaimableHEZ(&_HermezAuctionProtocol.CallOpts, claimAddress)
 426}
 427
 428// GetClaimableHEZ is a free data retrieval call binding the contract method 0x5cca4903.
 429//
 430// Solidity: function getClaimableHEZ(address claimAddress) view returns(uint128)
 431func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GetClaimableHEZ(claimAddress common.Address) (*big.Int, error) {
 432	return _HermezAuctionProtocol.Contract.GetClaimableHEZ(&_HermezAuctionProtocol.CallOpts, claimAddress)
 433}
 434
 435// GetClosedAuctionSlots is a free data retrieval call binding the contract method 0x4da9639d.
 436//
 437// Solidity: function getClosedAuctionSlots() view returns(uint16)
 438func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GetClosedAuctionSlots(opts *bind.CallOpts) (uint16, error) {
 439	var (
 440		ret0 = new(uint16)
 441	)
 442	out := ret0
 443	err := _HermezAuctionProtocol.contract.Call(opts, out, "getClosedAuctionSlots")
 444	return *ret0, err
 445}
 446
 447// GetClosedAuctionSlots is a free data retrieval call binding the contract method 0x4da9639d.
 448//
 449// Solidity: function getClosedAuctionSlots() view returns(uint16)
 450func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GetClosedAuctionSlots() (uint16, error) {
 451	return _HermezAuctionProtocol.Contract.GetClosedAuctionSlots(&_HermezAuctionProtocol.CallOpts)
 452}
 453
 454// GetClosedAuctionSlots is a free data retrieval call binding the contract method 0x4da9639d.
 455//
 456// Solidity: function getClosedAuctionSlots() view returns(uint16)
 457func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GetClosedAuctionSlots() (uint16, error) {
 458	return _HermezAuctionProtocol.Contract.GetClosedAuctionSlots(&_HermezAuctionProtocol.CallOpts)
 459}
 460
 461// GetCurrentSlotNumber is a free data retrieval call binding the contract method 0x0c4da4f6.
 462//
 463// Solidity: function getCurrentSlotNumber() view returns(uint128)
 464func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GetCurrentSlotNumber(opts *bind.CallOpts) (*big.Int, error) {
 465	var (
 466		ret0 = new(*big.Int)
 467	)
 468	out := ret0
 469	err := _HermezAuctionProtocol.contract.Call(opts, out, "getCurrentSlotNumber")
 470	return *ret0, err
 471}
 472
 473// GetCurrentSlotNumber is a free data retrieval call binding the contract method 0x0c4da4f6.
 474//
 475// Solidity: function getCurrentSlotNumber() view returns(uint128)
 476func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GetCurrentSlotNumber() (*big.Int, error) {
 477	return _HermezAuctionProtocol.Contract.GetCurrentSlotNumber(&_HermezAuctionProtocol.CallOpts)
 478}
 479
 480// GetCurrentSlotNumber is a free data retrieval call binding the contract method 0x0c4da4f6.
 481//
 482// Solidity: function getCurrentSlotNumber() view returns(uint128)
 483func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GetCurrentSlotNumber() (*big.Int, error) {
 484	return _HermezAuctionProtocol.Contract.GetCurrentSlotNumber(&_HermezAuctionProtocol.CallOpts)
 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// GetEpoch is a free data retrieval call binding the contract method 0x763889fa.
 514//
 515// Solidity: function getEpoch(uint128 slot) view returns(uint128)
 516func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GetEpoch(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, "getEpoch", slot)
 522	return *ret0, err
 523}
 524
 525// GetEpoch is a free data retrieval call binding the contract method 0x763889fa.
 526//
 527// Solidity: function getEpoch(uint128 slot) view returns(uint128)
 528func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GetEpoch(slot *big.Int) (*big.Int, error) {
 529	return _HermezAuctionProtocol.Contract.GetEpoch(&_HermezAuctionProtocol.CallOpts, slot)
 530}
 531
 532// GetEpoch is a free data retrieval call binding the contract method 0x763889fa.
 533//
 534// Solidity: function getEpoch(uint128 slot) view returns(uint128)
 535func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GetEpoch(slot *big.Int) (*big.Int, error) {
 536	return _HermezAuctionProtocol.Contract.GetEpoch(&_HermezAuctionProtocol.CallOpts, slot)
 537}
 538
 539// GetMinBidBySlot is a free data retrieval call binding the contract method 0x37d1bd0b.
 540//
 541// Solidity: function getMinBidBySlot(uint128 slot) view returns(uint128)
 542func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GetMinBidBySlot(opts *bind.CallOpts, slot *big.Int) (*big.Int, error) {
 543	var (
 544		ret0 = new(*big.Int)
 545	)
 546	out := ret0
 547	err := _HermezAuctionProtocol.contract.Call(opts, out, "getMinBidBySlot", slot)
 548	return *ret0, err
 549}
 550
 551// GetMinBidBySlot is a free data retrieval call binding the contract method 0x37d1bd0b.
 552//
 553// Solidity: function getMinBidBySlot(uint128 slot) view returns(uint128)
 554func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GetMinBidBySlot(slot *big.Int) (*big.Int, error) {
 555	return _HermezAuctionProtocol.Contract.GetMinBidBySlot(&_HermezAuctionProtocol.CallOpts, slot)
 556}
 557
 558// GetMinBidBySlot is a free data retrieval call binding the contract method 0x37d1bd0b.
 559//
 560// Solidity: function getMinBidBySlot(uint128 slot) view returns(uint128)
 561func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GetMinBidBySlot(slot *big.Int) (*big.Int, error) {
 562	return _HermezAuctionProtocol.Contract.GetMinBidBySlot(&_HermezAuctionProtocol.CallOpts, slot)
 563}
 564
 565// GetMinBidEpoch is a free data retrieval call binding the contract method 0xa0c477a1.
 566//
 567// Solidity: function getMinBidEpoch(uint8 epoch) view returns(uint128)
 568func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GetMinBidEpoch(opts *bind.CallOpts, epoch uint8) (*big.Int, error) {
 569	var (
 570		ret0 = new(*big.Int)
 571	)
 572	out := ret0
 573	err := _HermezAuctionProtocol.contract.Call(opts, out, "getMinBidEpoch", epoch)
 574	return *ret0, err
 575}
 576
 577// GetMinBidEpoch is a free data retrieval call binding the contract method 0xa0c477a1.
 578//
 579// Solidity: function getMinBidEpoch(uint8 epoch) view returns(uint128)
 580func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GetMinBidEpoch(epoch uint8) (*big.Int, error) {
 581	return _HermezAuctionProtocol.Contract.GetMinBidEpoch(&_HermezAuctionProtocol.CallOpts, epoch)
 582}
 583
 584// GetMinBidEpoch is a free data retrieval call binding the contract method 0xa0c477a1.
 585//
 586// Solidity: function getMinBidEpoch(uint8 epoch) view returns(uint128)
 587func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GetMinBidEpoch(epoch uint8) (*big.Int, error) {
 588	return _HermezAuctionProtocol.Contract.GetMinBidEpoch(&_HermezAuctionProtocol.CallOpts, epoch)
 589}
 590
 591// GetOpenAuctionSlots is a free data retrieval call binding the contract method 0xac4b9012.
 592//
 593// Solidity: function getOpenAuctionSlots() view returns(uint16)
 594func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GetOpenAuctionSlots(opts *bind.CallOpts) (uint16, error) {
 595	var (
 596		ret0 = new(uint16)
 597	)
 598	out := ret0
 599	err := _HermezAuctionProtocol.contract.Call(opts, out, "getOpenAuctionSlots")
 600	return *ret0, err
 601}
 602
 603// GetOpenAuctionSlots is a free data retrieval call binding the contract method 0xac4b9012.
 604//
 605// Solidity: function getOpenAuctionSlots() view returns(uint16)
 606func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GetOpenAuctionSlots() (uint16, error) {
 607	return _HermezAuctionProtocol.Contract.GetOpenAuctionSlots(&_HermezAuctionProtocol.CallOpts)
 608}
 609
 610// GetOpenAuctionSlots is a free data retrieval call binding the contract method 0xac4b9012.
 611//
 612// Solidity: function getOpenAuctionSlots() view returns(uint16)
 613func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GetOpenAuctionSlots() (uint16, error) {
 614	return _HermezAuctionProtocol.Contract.GetOpenAuctionSlots(&_HermezAuctionProtocol.CallOpts)
 615}
 616
 617// GetOutbidding is a free data retrieval call binding the contract method 0x55b442e6.
 618//
 619// Solidity: function getOutbidding() view returns(uint8)
 620func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GetOutbidding(opts *bind.CallOpts) (uint8, error) {
 621	var (
 622		ret0 = new(uint8)
 623	)
 624	out := ret0
 625	err := _HermezAuctionProtocol.contract.Call(opts, out, "getOutbidding")
 626	return *ret0, err
 627}
 628
 629// GetOutbidding is a free data retrieval call binding the contract method 0x55b442e6.
 630//
 631// Solidity: function getOutbidding() view returns(uint8)
 632func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GetOutbidding() (uint8, error) {
 633	return _HermezAuctionProtocol.Contract.GetOutbidding(&_HermezAuctionProtocol.CallOpts)
 634}
 635
 636// GetOutbidding is a free data retrieval call binding the contract method 0x55b442e6.
 637//
 638// Solidity: function getOutbidding() view returns(uint8)
 639func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GetOutbidding() (uint8, error) {
 640	return _HermezAuctionProtocol.Contract.GetOutbidding(&_HermezAuctionProtocol.CallOpts)
 641}
 642
 643// GetSlotDeadline is a free data retrieval call binding the contract method 0x13de9af2.
 644//
 645// Solidity: function getSlotDeadline() view returns(uint8)
 646func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GetSlotDeadline(opts *bind.CallOpts) (uint8, error) {
 647	var (
 648		ret0 = new(uint8)
 649	)
 650	out := ret0
 651	err := _HermezAuctionProtocol.contract.Call(opts, out, "getSlotDeadline")
 652	return *ret0, err
 653}
 654
 655// GetSlotDeadline is a free data retrieval call binding the contract method 0x13de9af2.
 656//
 657// Solidity: function getSlotDeadline() view returns(uint8)
 658func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GetSlotDeadline() (uint8, error) {
 659	return _HermezAuctionProtocol.Contract.GetSlotDeadline(&_HermezAuctionProtocol.CallOpts)
 660}
 661
 662// GetSlotDeadline is a free data retrieval call binding the contract method 0x13de9af2.
 663//
 664// Solidity: function getSlotDeadline() view returns(uint8)
 665func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GetSlotDeadline() (uint8, error) {
 666	return _HermezAuctionProtocol.Contract.GetSlotDeadline(&_HermezAuctionProtocol.CallOpts)
 667}
 668
 669// GetSlotNumber is a free data retrieval call binding the contract method 0xb3dc7bb1.
 670//
 671// Solidity: function getSlotNumber(uint128 blockNumber) view returns(uint128)
 672func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) GetSlotNumber(opts *bind.CallOpts, blockNumber *big.Int) (*big.Int, error) {
 673	var (
 674		ret0 = new(*big.Int)
 675	)
 676	out := ret0
 677	err := _HermezAuctionProtocol.contract.Call(opts, out, "getSlotNumber", blockNumber)
 678	return *ret0, err
 679}
 680
 681// GetSlotNumber is a free data retrieval call binding the contract method 0xb3dc7bb1.
 682//
 683// Solidity: function getSlotNumber(uint128 blockNumber) view returns(uint128)
 684func (_HermezAuctionProtocol *HermezAuctionProtocolSession) GetSlotNumber(blockNumber *big.Int) (*big.Int, error) {
 685	return _HermezAuctionProtocol.Contract.GetSlotNumber(&_HermezAuctionProtocol.CallOpts, blockNumber)
 686}
 687
 688// GetSlotNumber is a free data retrieval call binding the contract method 0xb3dc7bb1.
 689//
 690// Solidity: function getSlotNumber(uint128 blockNumber) view returns(uint128)
 691func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) GetSlotNumber(blockNumber *big.Int) (*big.Int, error) {
 692	return _HermezAuctionProtocol.Contract.GetSlotNumber(&_HermezAuctionProtocol.CallOpts, blockNumber)
 693}
 694
 695// HermezRollup is a free data retrieval call binding the contract method 0xaebd6d98.
 696//
 697// Solidity: function hermezRollup() view returns(address)
 698func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) HermezRollup(opts *bind.CallOpts) (common.Address, error) {
 699	var (
 700		ret0 = new(common.Address)
 701	)
 702	out := ret0
 703	err := _HermezAuctionProtocol.contract.Call(opts, out, "hermezRollup")
 704	return *ret0, err
 705}
 706
 707// HermezRollup is a free data retrieval call binding the contract method 0xaebd6d98.
 708//
 709// Solidity: function hermezRollup() view returns(address)
 710func (_HermezAuctionProtocol *HermezAuctionProtocolSession) HermezRollup() (common.Address, error) {
 711	return _HermezAuctionProtocol.Contract.HermezRollup(&_HermezAuctionProtocol.CallOpts)
 712}
 713
 714// HermezRollup is a free data retrieval call binding the contract method 0xaebd6d98.
 715//
 716// Solidity: function hermezRollup() view returns(address)
 717func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) HermezRollup() (common.Address, error) {
 718	return _HermezAuctionProtocol.Contract.HermezRollup(&_HermezAuctionProtocol.CallOpts)
 719}
 720
 721// IsRegisteredCoordinator is a free data retrieval call binding the contract method 0x3bebeb06.
 722//
 723// Solidity: function isRegisteredCoordinator(address forgerAddress) view returns(bool)
 724func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) IsRegisteredCoordinator(opts *bind.CallOpts, forgerAddress common.Address) (bool, error) {
 725	var (
 726		ret0 = new(bool)
 727	)
 728	out := ret0
 729	err := _HermezAuctionProtocol.contract.Call(opts, out, "isRegisteredCoordinator", forgerAddress)
 730	return *ret0, err
 731}
 732
 733// IsRegisteredCoordinator is a free data retrieval call binding the contract method 0x3bebeb06.
 734//
 735// Solidity: function isRegisteredCoordinator(address forgerAddress) view returns(bool)
 736func (_HermezAuctionProtocol *HermezAuctionProtocolSession) IsRegisteredCoordinator(forgerAddress common.Address) (bool, error) {
 737	return _HermezAuctionProtocol.Contract.IsRegisteredCoordinator(&_HermezAuctionProtocol.CallOpts, forgerAddress)
 738}
 739
 740// IsRegisteredCoordinator is a free data retrieval call binding the contract method 0x3bebeb06.
 741//
 742// Solidity: function isRegisteredCoordinator(address forgerAddress) view returns(bool)
 743func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) IsRegisteredCoordinator(forgerAddress common.Address) (bool, error) {
 744	return _HermezAuctionProtocol.Contract.IsRegisteredCoordinator(&_HermezAuctionProtocol.CallOpts, forgerAddress)
 745}
 746
 747// Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 748//
 749// Solidity: function owner() view returns(address)
 750func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
 751	var (
 752		ret0 = new(common.Address)
 753	)
 754	out := ret0
 755	err := _HermezAuctionProtocol.contract.Call(opts, out, "owner")
 756	return *ret0, err
 757}
 758
 759// Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 760//
 761// Solidity: function owner() view returns(address)
 762func (_HermezAuctionProtocol *HermezAuctionProtocolSession) Owner() (common.Address, error) {
 763	return _HermezAuctionProtocol.Contract.Owner(&_HermezAuctionProtocol.CallOpts)
 764}
 765
 766// Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
 767//
 768// Solidity: function owner() view returns(address)
 769func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) Owner() (common.Address, error) {
 770	return _HermezAuctionProtocol.Contract.Owner(&_HermezAuctionProtocol.CallOpts)
 771}
 772
 773// PendingBalances is a free data retrieval call binding the contract method 0xecdae41b.
 774//
 775// Solidity: function pendingBalances(address ) view returns(uint128)
 776func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) PendingBalances(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
 777	var (
 778		ret0 = new(*big.Int)
 779	)
 780	out := ret0
 781	err := _HermezAuctionProtocol.contract.Call(opts, out, "pendingBalances", arg0)
 782	return *ret0, err
 783}
 784
 785// PendingBalances is a free data retrieval call binding the contract method 0xecdae41b.
 786//
 787// Solidity: function pendingBalances(address ) view returns(uint128)
 788func (_HermezAuctionProtocol *HermezAuctionProtocolSession) PendingBalances(arg0 common.Address) (*big.Int, error) {
 789	return _HermezAuctionProtocol.Contract.PendingBalances(&_HermezAuctionProtocol.CallOpts, arg0)
 790}
 791
 792// PendingBalances is a free data retrieval call binding the contract method 0xecdae41b.
 793//
 794// Solidity: function pendingBalances(address ) view returns(uint128)
 795func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) PendingBalances(arg0 common.Address) (*big.Int, error) {
 796	return _HermezAuctionProtocol.Contract.PendingBalances(&_HermezAuctionProtocol.CallOpts, arg0)
 797}
 798
 799// Slots is a free data retrieval call binding the contract method 0xbc415567.
 800//
 801// Solidity: function slots(uint128 ) view returns(address forger, uint128 bidAmount, uint128 closedMinBid, bool fulfilled)
 802func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) Slots(opts *bind.CallOpts, arg0 *big.Int) (struct {
 803	Forger       common.Address
 804	BidAmount    *big.Int
 805	ClosedMinBid *big.Int
 806	Fulfilled    bool
 807}, error) {
 808	ret := new(struct {
 809		Forger       common.Address
 810		BidAmount    *big.Int
 811		ClosedMinBid *big.Int
 812		Fulfilled    bool
 813	})
 814	out := ret
 815	err := _HermezAuctionProtocol.contract.Call(opts, out, "slots", arg0)
 816	return *ret, err
 817}
 818
 819// Slots is a free data retrieval call binding the contract method 0xbc415567.
 820//
 821// Solidity: function slots(uint128 ) view returns(address forger, uint128 bidAmount, uint128 closedMinBid, bool fulfilled)
 822func (_HermezAuctionProtocol *HermezAuctionProtocolSession) Slots(arg0 *big.Int) (struct {
 823	Forger       common.Address
 824	BidAmount    *big.Int
 825	ClosedMinBid *big.Int
 826	Fulfilled    bool
 827}, error) {
 828	return _HermezAuctionProtocol.Contract.Slots(&_HermezAuctionProtocol.CallOpts, arg0)
 829}
 830
 831// Slots is a free data retrieval call binding the contract method 0xbc415567.
 832//
 833// Solidity: function slots(uint128 ) view returns(address forger, uint128 bidAmount, uint128 closedMinBid, bool fulfilled)
 834func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) Slots(arg0 *big.Int) (struct {
 835	Forger       common.Address
 836	BidAmount    *big.Int
 837	ClosedMinBid *big.Int
 838	Fulfilled    bool
 839}, error) {
 840	return _HermezAuctionProtocol.Contract.Slots(&_HermezAuctionProtocol.CallOpts, arg0)
 841}
 842
 843// TokenHEZ is a free data retrieval call binding the contract method 0x79a135e3.
 844//
 845// Solidity: function tokenHEZ() view returns(address)
 846func (_HermezAuctionProtocol *HermezAuctionProtocolCaller) TokenHEZ(opts *bind.CallOpts) (common.Address, error) {
 847	var (
 848		ret0 = new(common.Address)
 849	)
 850	out := ret0
 851	err := _HermezAuctionProtocol.contract.Call(opts, out, "tokenHEZ")
 852	return *ret0, err
 853}
 854
 855// TokenHEZ is a free data retrieval call binding the contract method 0x79a135e3.
 856//
 857// Solidity: function tokenHEZ() view returns(address)
 858func (_HermezAuctionProtocol *HermezAuctionProtocolSession) TokenHEZ() (common.Address, error) {
 859	return _HermezAuctionProtocol.Contract.TokenHEZ(&_HermezAuctionProtocol.CallOpts)
 860}
 861
 862// TokenHEZ is a free data retrieval call binding the contract method 0x79a135e3.
 863//
 864// Solidity: function tokenHEZ() view returns(address)
 865func (_HermezAuctionProtocol *HermezAuctionProtocolCallerSession) TokenHEZ() (common.Address, error) {
 866	return _HermezAuctionProtocol.Contract.TokenHEZ(&_HermezAuctionProtocol.CallOpts)
 867}
 868
 869// ChangeEpochMinBid is a paid mutator transaction binding the contract method 0x2d9bfd3a.
 870//
 871// Solidity: function changeEpochMinBid(uint128 slotEpoch, uint128 newInitialMinBid) returns()
 872func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) ChangeEpochMinBid(opts *bind.TransactOpts, slotEpoch *big.Int, newInitialMinBid *big.Int) (*types.Transaction, error) {
 873	return _HermezAuctionProtocol.contract.Transact(opts, "changeEpochMinBid", slotEpoch, newInitialMinBid)
 874}
 875
 876// ChangeEpochMinBid is a paid mutator transaction binding the contract method 0x2d9bfd3a.
 877//
 878// Solidity: function changeEpochMinBid(uint128 slotEpoch, uint128 newInitialMinBid) returns()
 879func (_HermezAuctionProtocol *HermezAuctionProtocolSession) ChangeEpochMinBid(slotEpoch *big.Int, newInitialMinBid *big.Int) (*types.Transaction, error) {
 880	return _HermezAuctionProtocol.Contract.ChangeEpochMinBid(&_HermezAuctionProtocol.TransactOpts, slotEpoch, newInitialMinBid)
 881}
 882
 883// ChangeEpochMinBid is a paid mutator transaction binding the contract method 0x2d9bfd3a.
 884//
 885// Solidity: function changeEpochMinBid(uint128 slotEpoch, uint128 newInitialMinBid) returns()
 886func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) ChangeEpochMinBid(slotEpoch *big.Int, newInitialMinBid *big.Int) (*types.Transaction, error) {
 887	return _HermezAuctionProtocol.Contract.ChangeEpochMinBid(&_HermezAuctionProtocol.TransactOpts, slotEpoch, newInitialMinBid)
 888}
 889
 890// ClaimHEZ is a paid mutator transaction binding the contract method 0x3f2d0c7b.
 891//
 892// Solidity: function claimHEZ(address claimAddress) returns()
 893func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) ClaimHEZ(opts *bind.TransactOpts, claimAddress common.Address) (*types.Transaction, error) {
 894	return _HermezAuctionProtocol.contract.Transact(opts, "claimHEZ", claimAddress)
 895}
 896
 897// ClaimHEZ is a paid mutator transaction binding the contract method 0x3f2d0c7b.
 898//
 899// Solidity: function claimHEZ(address claimAddress) returns()
 900func (_HermezAuctionProtocol *HermezAuctionProtocolSession) ClaimHEZ(claimAddress common.Address) (*types.Transaction, error) {
 901	return _HermezAuctionProtocol.Contract.ClaimHEZ(&_HermezAuctionProtocol.TransactOpts, claimAddress)
 902}
 903
 904// ClaimHEZ is a paid mutator transaction binding the contract method 0x3f2d0c7b.
 905//
 906// Solidity: function claimHEZ(address claimAddress) returns()
 907func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) ClaimHEZ(claimAddress common.Address) (*types.Transaction, error) {
 908	return _HermezAuctionProtocol.Contract.ClaimHEZ(&_HermezAuctionProtocol.TransactOpts, claimAddress)
 909}
 910
 911// Forge is a paid mutator transaction binding the contract method 0x4e5a5178.
 912//
 913// Solidity: function forge(address forger) returns()
 914func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) Forge(opts *bind.TransactOpts, forger common.Address) (*types.Transaction, error) {
 915	return _HermezAuctionProtocol.contract.Transact(opts, "forge", forger)
 916}
 917
 918// Forge is a paid mutator transaction binding the contract method 0x4e5a5178.
 919//
 920// Solidity: function forge(address forger) returns()
 921func (_HermezAuctionProtocol *HermezAuctionProtocolSession) Forge(forger common.Address) (*types.Transaction, error) {
 922	return _HermezAuctionProtocol.Contract.Forge(&_HermezAuctionProtocol.TransactOpts, forger)
 923}
 924
 925// Forge is a paid mutator transaction binding the contract method 0x4e5a5178.
 926//
 927// Solidity: function forge(address forger) returns()
 928func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) Forge(forger common.Address) (*types.Transaction, error) {
 929	return _HermezAuctionProtocol.Contract.Forge(&_HermezAuctionProtocol.TransactOpts, forger)
 930}
 931
 932// Initialize is a paid mutator transaction binding the contract method 0x1459457a.
 933//
 934// Solidity: function initialize(address tokenERC777, address hermezRollupAddress, address governanceAddress, address donationAddress, address bootCoordinatorAddress) returns()
 935func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) Initialize(opts *bind.TransactOpts, tokenERC777 common.Address, hermezRollupAddress common.Address, governanceAddress common.Address, donationAddress common.Address, bootCoordinatorAddress common.Address) (*types.Transaction, error) {
 936	return _HermezAuctionProtocol.contract.Transact(opts, "initialize", tokenERC777, hermezRollupAddress, governanceAddress, donationAddress, bootCoordinatorAddress)
 937}
 938
 939// Initialize is a paid mutator transaction binding the contract method 0x1459457a.
 940//
 941// Solidity: function initialize(address tokenERC777, address hermezRollupAddress, address governanceAddress, address donationAddress, address bootCoordinatorAddress) returns()
 942func (_HermezAuctionProtocol *HermezAuctionProtocolSession) Initialize(tokenERC777 common.Address, hermezRollupAddress common.Address, governanceAddress common.Address, donationAddress common.Address, bootCoordinatorAddress common.Address) (*types.Transaction, error) {
 943	return _HermezAuctionProtocol.Contract.Initialize(&_HermezAuctionProtocol.TransactOpts, tokenERC777, hermezRollupAddress, governanceAddress, donationAddress, bootCoordinatorAddress)
 944}
 945
 946// Initialize is a paid mutator transaction binding the contract method 0x1459457a.
 947//
 948// Solidity: function initialize(address tokenERC777, address hermezRollupAddress, address governanceAddress, address donationAddress, address bootCoordinatorAddress) returns()
 949func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) Initialize(tokenERC777 common.Address, hermezRollupAddress common.Address, governanceAddress common.Address, donationAddress common.Address, bootCoordinatorAddress common.Address) (*types.Transaction, error) {
 950	return _HermezAuctionProtocol.Contract.Initialize(&_HermezAuctionProtocol.TransactOpts, tokenERC777, hermezRollupAddress, governanceAddress, donationAddress, bootCoordinatorAddress)
 951}
 952
 953// RegisterCoordinator is a paid mutator transaction binding the contract method 0xb3f69047.
 954//
 955// Solidity: function registerCoordinator(address forgerAddress, string coordinatorURL) returns()
 956func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) RegisterCoordinator(opts *bind.TransactOpts, forgerAddress common.Address, coordinatorURL string) (*types.Transaction, error) {
 957	return _HermezAuctionProtocol.contract.Transact(opts, "registerCoordinator", forgerAddress, coordinatorURL)
 958}
 959
 960// RegisterCoordinator is a paid mutator transaction binding the contract method 0xb3f69047.
 961//
 962// Solidity: function registerCoordinator(address forgerAddress, string coordinatorURL) returns()
 963func (_HermezAuctionProtocol *HermezAuctionProtocolSession) RegisterCoordinator(forgerAddress common.Address, coordinatorURL string) (*types.Transaction, error) {
 964	return _HermezAuctionProtocol.Contract.RegisterCoordinator(&_HermezAuctionProtocol.TransactOpts, forgerAddress, coordinatorURL)
 965}
 966
 967// RegisterCoordinator is a paid mutator transaction binding the contract method 0xb3f69047.
 968//
 969// Solidity: function registerCoordinator(address forgerAddress, string coordinatorURL) returns()
 970func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) RegisterCoordinator(forgerAddress common.Address, coordinatorURL string) (*types.Transaction, error) {
 971	return _HermezAuctionProtocol.Contract.RegisterCoordinator(&_HermezAuctionProtocol.TransactOpts, forgerAddress, coordinatorURL)
 972}
 973
 974// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 975//
 976// Solidity: function renounceOwnership() returns()
 977func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
 978	return _HermezAuctionProtocol.contract.Transact(opts, "renounceOwnership")
 979}
 980
 981// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 982//
 983// Solidity: function renounceOwnership() returns()
 984func (_HermezAuctionProtocol *HermezAuctionProtocolSession) RenounceOwnership() (*types.Transaction, error) {
 985	return _HermezAuctionProtocol.Contract.RenounceOwnership(&_HermezAuctionProtocol.TransactOpts)
 986}
 987
 988// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
 989//
 990// Solidity: function renounceOwnership() returns()
 991func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) RenounceOwnership() (*types.Transaction, error) {
 992	return _HermezAuctionProtocol.Contract.RenounceOwnership(&_HermezAuctionProtocol.TransactOpts)
 993}
 994
 995// SetAllocationRatio is a paid mutator transaction binding the contract method 0xe3498da7.
 996//
 997// Solidity: function setAllocationRatio(uint8[3] newAllocationRatio) returns()
 998func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetAllocationRatio(opts *bind.TransactOpts, newAllocationRatio [3]uint8) (*types.Transaction, error) {
 999	return _HermezAuctionProtocol.contract.Transact(opts, "setAllocationRatio", newAllocationRatio)
1000}
1001
1002// SetAllocationRatio is a paid mutator transaction binding the contract method 0xe3498da7.
1003//
1004// Solidity: function setAllocationRatio(uint8[3] newAllocationRatio) returns()
1005func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetAllocationRatio(newAllocationRatio [3]uint8) (*types.Transaction, error) {
1006	return _HermezAuctionProtocol.Contract.SetAllocationRatio(&_HermezAuctionProtocol.TransactOpts, newAllocationRatio)
1007}
1008
1009// SetAllocationRatio is a paid mutator transaction binding the contract method 0xe3498da7.
1010//
1011// Solidity: function setAllocationRatio(uint8[3] newAllocationRatio) returns()
1012func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetAllocationRatio(newAllocationRatio [3]uint8) (*types.Transaction, error) {
1013	return _HermezAuctionProtocol.Contract.SetAllocationRatio(&_HermezAuctionProtocol.TransactOpts, newAllocationRatio)
1014}
1015
1016// SetBootCoordinator is a paid mutator transaction binding the contract method 0x62945af2.
1017//
1018// Solidity: function setBootCoordinator(address newBootCoordinator) returns()
1019func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetBootCoordinator(opts *bind.TransactOpts, newBootCoordinator common.Address) (*types.Transaction, error) {
1020	return _HermezAuctionProtocol.contract.Transact(opts, "setBootCoordinator", newBootCoordinator)
1021}
1022
1023// SetBootCoordinator is a paid mutator transaction binding the contract method 0x62945af2.
1024//
1025// Solidity: function setBootCoordinator(address newBootCoordinator) returns()
1026func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetBootCoordinator(newBootCoordinator common.Address) (*types.Transaction, error) {
1027	return _HermezAuctionProtocol.Contract.SetBootCoordinator(&_HermezAuctionProtocol.TransactOpts, newBootCoordinator)
1028}
1029
1030// SetBootCoordinator is a paid mutator transaction binding the contract method 0x62945af2.
1031//
1032// Solidity: function setBootCoordinator(address newBootCoordinator) returns()
1033func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetBootCoordinator(newBootCoordinator common.Address) (*types.Transaction, error) {
1034	return _HermezAuctionProtocol.Contract.SetBootCoordinator(&_HermezAuctionProtocol.TransactOpts, newBootCoordinator)
1035}
1036
1037// SetClosedAuctionSlots is a paid mutator transaction binding the contract method 0xd92bdda3.
1038//
1039// Solidity: function setClosedAuctionSlots(uint16 newClosedAuctionSlots) returns()
1040func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetClosedAuctionSlots(opts *bind.TransactOpts, newClosedAuctionSlots uint16) (*types.Transaction, error) {
1041	return _HermezAuctionProtocol.contract.Transact(opts, "setClosedAuctionSlots", newClosedAuctionSlots)
1042}
1043
1044// SetClosedAuctionSlots is a paid mutator transaction binding the contract method 0xd92bdda3.
1045//
1046// Solidity: function setClosedAuctionSlots(uint16 newClosedAuctionSlots) returns()
1047func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetClosedAuctionSlots(newClosedAuctionSlots uint16) (*types.Transaction, error) {
1048	return _HermezAuctionProtocol.Contract.SetClosedAuctionSlots(&_HermezAuctionProtocol.TransactOpts, newClosedAuctionSlots)
1049}
1050
1051// SetClosedAuctionSlots is a paid mutator transaction binding the contract method 0xd92bdda3.
1052//
1053// Solidity: function setClosedAuctionSlots(uint16 newClosedAuctionSlots) returns()
1054func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetClosedAuctionSlots(newClosedAuctionSlots uint16) (*types.Transaction, error) {
1055	return _HermezAuctionProtocol.Contract.SetClosedAuctionSlots(&_HermezAuctionProtocol.TransactOpts, newClosedAuctionSlots)
1056}
1057
1058// SetDonationAddress is a paid mutator transaction binding the contract method 0x6f48e79b.
1059//
1060// Solidity: function setDonationAddress(address newDonationAddress) returns()
1061func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetDonationAddress(opts *bind.TransactOpts, newDonationAddress common.Address) (*types.Transaction, error) {
1062	return _HermezAuctionProtocol.contract.Transact(opts, "setDonationAddress", newDonationAddress)
1063}
1064
1065// SetDonationAddress is a paid mutator transaction binding the contract method 0x6f48e79b.
1066//
1067// Solidity: function setDonationAddress(address newDonationAddress) returns()
1068func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetDonationAddress(newDonationAddress common.Address) (*types.Transaction, error) {
1069	return _HermezAuctionProtocol.Contract.SetDonationAddress(&_HermezAuctionProtocol.TransactOpts, newDonationAddress)
1070}
1071
1072// SetDonationAddress is a paid mutator transaction binding the contract method 0x6f48e79b.
1073//
1074// Solidity: function setDonationAddress(address newDonationAddress) returns()
1075func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetDonationAddress(newDonationAddress common.Address) (*types.Transaction, error) {
1076	return _HermezAuctionProtocol.Contract.SetDonationAddress(&_HermezAuctionProtocol.TransactOpts, newDonationAddress)
1077}
1078
1079// SetOpenAuctionSlots is a paid mutator transaction binding the contract method 0xc63de515.
1080//
1081// Solidity: function setOpenAuctionSlots(uint16 newOpenAuctionSlots) returns()
1082func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetOpenAuctionSlots(opts *bind.TransactOpts, newOpenAuctionSlots uint16) (*types.Transaction, error) {
1083	return _HermezAuctionProtocol.contract.Transact(opts, "setOpenAuctionSlots", newOpenAuctionSlots)
1084}
1085
1086// SetOpenAuctionSlots is a paid mutator transaction binding the contract method 0xc63de515.
1087//
1088// Solidity: function setOpenAuctionSlots(uint16 newOpenAuctionSlots) returns()
1089func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetOpenAuctionSlots(newOpenAuctionSlots uint16) (*types.Transaction, error) {
1090	return _HermezAuctionProtocol.Contract.SetOpenAuctionSlots(&_HermezAuctionProtocol.TransactOpts, newOpenAuctionSlots)
1091}
1092
1093// SetOpenAuctionSlots is a paid mutator transaction binding the contract method 0xc63de515.
1094//
1095// Solidity: function setOpenAuctionSlots(uint16 newOpenAuctionSlots) returns()
1096func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetOpenAuctionSlots(newOpenAuctionSlots uint16) (*types.Transaction, error) {
1097	return _HermezAuctionProtocol.Contract.SetOpenAuctionSlots(&_HermezAuctionProtocol.TransactOpts, newOpenAuctionSlots)
1098}
1099
1100// SetOutbidding is a paid mutator transaction binding the contract method 0x07e38ac6.
1101//
1102// Solidity: function setOutbidding(uint8 newOutbidding) returns()
1103func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetOutbidding(opts *bind.TransactOpts, newOutbidding uint8) (*types.Transaction, error) {
1104	return _HermezAuctionProtocol.contract.Transact(opts, "setOutbidding", newOutbidding)
1105}
1106
1107// SetOutbidding is a paid mutator transaction binding the contract method 0x07e38ac6.
1108//
1109// Solidity: function setOutbidding(uint8 newOutbidding) returns()
1110func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetOutbidding(newOutbidding uint8) (*types.Transaction, error) {
1111	return _HermezAuctionProtocol.Contract.SetOutbidding(&_HermezAuctionProtocol.TransactOpts, newOutbidding)
1112}
1113
1114// SetOutbidding is a paid mutator transaction binding the contract method 0x07e38ac6.
1115//
1116// Solidity: function setOutbidding(uint8 newOutbidding) returns()
1117func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetOutbidding(newOutbidding uint8) (*types.Transaction, error) {
1118	return _HermezAuctionProtocol.Contract.SetOutbidding(&_HermezAuctionProtocol.TransactOpts, newOutbidding)
1119}
1120
1121// SetSlotDeadline is a paid mutator transaction binding the contract method 0x87e6b6bb.
1122//
1123// Solidity: function setSlotDeadline(uint8 newDeadline) returns()
1124func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) SetSlotDeadline(opts *bind.TransactOpts, newDeadline uint8) (*types.Transaction, error) {
1125	return _HermezAuctionProtocol.contract.Transact(opts, "setSlotDeadline", newDeadline)
1126}
1127
1128// SetSlotDeadline is a paid mutator transaction binding the contract method 0x87e6b6bb.
1129//
1130// Solidity: function setSlotDeadline(uint8 newDeadline) returns()
1131func (_HermezAuctionProtocol *HermezAuctionProtocolSession) SetSlotDeadline(newDeadline uint8) (*types.Transaction, error) {
1132	return _HermezAuctionProtocol.Contract.SetSlotDeadline(&_HermezAuctionProtocol.TransactOpts, newDeadline)
1133}
1134
1135// SetSlotDeadline is a paid mutator transaction binding the contract method 0x87e6b6bb.
1136//
1137// Solidity: function setSlotDeadline(uint8 newDeadline) returns()
1138func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) SetSlotDeadline(newDeadline uint8) (*types.Transaction, error) {
1139	return _HermezAuctionProtocol.Contract.SetSlotDeadline(&_HermezAuctionProtocol.TransactOpts, newDeadline)
1140}
1141
1142// TokensReceived is a paid mutator transaction binding the contract method 0x0023de29.
1143//
1144// Solidity: function tokensReceived(address operator, address from, address to, uint256 amount, bytes userData, bytes operatorData) returns()
1145func (_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) {
1146	return _HermezAuctionProtocol.contract.Transact(opts, "tokensReceived", operator, from, to, amount, userData, operatorData)
1147}
1148
1149// TokensReceived is a paid mutator transaction binding the contract method 0x0023de29.
1150//
1151// Solidity: function tokensReceived(address operator, address from, address to, uint256 amount, bytes userData, bytes operatorData) returns()
1152func (_HermezAuctionProtocol *HermezAuctionProtocolSession) TokensReceived(operator common.Address, from common.Address, to common.Address, amount *big.Int, userData []byte, operatorData []byte) (*types.Transaction, error) {
1153	return _HermezAuctionProtocol.Contract.TokensReceived(&_HermezAuctionProtocol.TransactOpts, operator, from, to, amount, userData, operatorData)
1154}
1155
1156// TokensReceived is a paid mutator transaction binding the contract method 0x0023de29.
1157//
1158// Solidity: function tokensReceived(address operator, address from, address to, uint256 amount, bytes userData, bytes operatorData) returns()
1159func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) TokensReceived(operator common.Address, from common.Address, to common.Address, amount *big.Int, userData []byte, operatorData []byte) (*types.Transaction, error) {
1160	return _HermezAuctionProtocol.Contract.TokensReceived(&_HermezAuctionProtocol.TransactOpts, operator, from, to, amount, userData, operatorData)
1161}
1162
1163// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
1164//
1165// Solidity: function transferOwnership(address newOwner) returns()
1166func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
1167	return _HermezAuctionProtocol.contract.Transact(opts, "transferOwnership", newOwner)
1168}
1169
1170// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
1171//
1172// Solidity: function transferOwnership(address newOwner) returns()
1173func (_HermezAuctionProtocol *HermezAuctionProtocolSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
1174	return _HermezAuctionProtocol.Contract.TransferOwnership(&_HermezAuctionProtocol.TransactOpts, newOwner)
1175}
1176
1177// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
1178//
1179// Solidity: function transferOwnership(address newOwner) returns()
1180func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
1181	return _HermezAuctionProtocol.Contract.TransferOwnership(&_HermezAuctionProtocol.TransactOpts, newOwner)
1182}
1183
1184// UpdateCoordinatorInfo is a paid mutator transaction binding the contract method 0x892075c8.
1185//
1186// Solidity: function updateCoordinatorInfo(address forgerAddress, address newWithdrawAddress, string newURL) returns()
1187func (_HermezAuctionProtocol *HermezAuctionProtocolTransactor) UpdateCoordinatorInfo(opts *bind.TransactOpts, forgerAddress common.Address, newWithdrawAddress common.Address, newURL string) (*types.Transaction, error) {
1188	return _HermezAuctionProtocol.contract.Transact(opts, "updateCoordinatorInfo", forgerAddress, newWithdrawAddress, newURL)
1189}
1190
1191// UpdateCoordinatorInfo is a paid mutator transaction binding the contract method 0x892075c8.
1192//
1193// Solidity: function updateCoordinatorInfo(address forgerAddress, address newWithdrawAddress, string newURL) returns()
1194func (_HermezAuctionProtocol *HermezAuctionProtocolSession) UpdateCoordinatorInfo(forgerAddress common.Address, newWithdrawAddress common.Address, newURL string) (*types.Transaction, error) {
1195	return _HermezAuctionProtocol.Contract.UpdateCoordinatorInfo(&_HermezAuctionProtocol.TransactOpts, forgerAddress, newWithdrawAddress, newURL)
1196}
1197
1198// UpdateCoordinatorInfo is a paid mutator transaction binding the contract method 0x892075c8.
1199//
1200// Solidity: function updateCoordinatorInfo(address forgerAddress, address newWithdrawAddress, string newURL) returns()
1201func (_HermezAuctionProtocol *HermezAuctionProtocolTransactorSession) UpdateCoordinatorInfo(forgerAddress common.Address, newWithdrawAddress common.Address, newURL string) (*types.Transaction, error) {
1202	return _HermezAuctionProtocol.Contract.UpdateCoordinatorInfo(&_HermezAuctionProtocol.TransactOpts, forgerAddress, newWithdrawAddress, newURL)
1203}
1204
1205// HermezAuctionProtocolCoordinatorUpdatedIterator is returned from FilterCoordinatorUpdated and is used to iterate over the raw logs and unpacked data for CoordinatorUpdated events raised by the HermezAuctionProtocol contract.
1206type HermezAuctionProtocolCoordinatorUpdatedIterator struct {
1207	Event *HermezAuctionProtocolCoordinatorUpdated // Event containing the contract specifics and raw log
1208
1209	contract *bind.BoundContract // Generic contract to use for unpacking event data
1210	event    string              // Event name to use for unpacking event data
1211
1212	logs chan types.Log        // Log channel receiving the found contract events
1213	sub  ethereum.Subscription // Subscription for errors, completion and termination
1214	done bool                  // Whether the subscription completed delivering logs
1215	fail error                 // Occurred error to stop iteration
1216}
1217
1218// Next advances the iterator to the subsequent event, returning whether there
1219// are any more events found. In case of a retrieval or parsing error, false is
1220// returned and Error() can be queried for the exact failure.
1221func (it *HermezAuctionProtocolCoordinatorUpdatedIterator) Next() bool {
1222	// If the iterator failed, stop iterating
1223	if it.fail != nil {
1224		return false
1225	}
1226	// If the iterator completed, deliver directly whatever's available
1227	if it.done {
1228		select {
1229		case log := <-it.logs:
1230			it.Event = new(HermezAuctionProtocolCoordinatorUpdated)
1231			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1232				it.fail = err
1233				return false
1234			}
1235			it.Event.Raw = log
1236			return true
1237
1238		default:
1239			return false
1240		}
1241	}
1242	// Iterator still in progress, wait for either a data or an error event
1243	select {
1244	case log := <-it.logs:
1245		it.Event = new(HermezAuctionProtocolCoordinatorUpdated)
1246		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1247			it.fail = err
1248			return false
1249		}
1250		it.Event.Raw = log
1251		return true
1252
1253	case err := <-it.sub.Err():
1254		it.done = true
1255		it.fail = err
1256		return it.Next()
1257	}
1258}
1259
1260// Error returns any retrieval or parsing error occurred during filtering.
1261func (it *HermezAuctionProtocolCoordinatorUpdatedIterator) Error() error {
1262	return it.fail
1263}
1264
1265// Close terminates the iteration process, releasing any pending underlying
1266// resources.
1267func (it *HermezAuctionProtocolCoordinatorUpdatedIterator) Close() error {
1268	it.sub.Unsubscribe()
1269	return nil
1270}
1271
1272// HermezAuctionProtocolCoordinatorUpdated represents a CoordinatorUpdated event raised by the HermezAuctionProtocol contract.
1273type HermezAuctionProtocolCoordinatorUpdated struct {
1274	ForgerAddress     common.Address
1275	WithdrawalAddress common.Address
1276	CoordinatorURL    string
1277	Raw               types.Log // Blockchain specific contextual infos
1278}
1279
1280// FilterCoordinatorUpdated is a free log retrieval operation binding the contract event 0x384460dae6dd1682b71131272b0e47bcd8ecef844d632c5062db277378a868c5.
1281//
1282// Solidity: event CoordinatorUpdated(address forgerAddress, address withdrawalAddress, string coordinatorURL)
1283func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterCoordinatorUpdated(opts *bind.FilterOpts) (*HermezAuctionProtocolCoordinatorUpdatedIterator, error) {
1284
1285	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "CoordinatorUpdated")
1286	if err != nil {
1287		return nil, err
1288	}
1289	return &HermezAuctionProtocolCoordinatorUpdatedIterator{contract: _HermezAuctionProtocol.contract, event: "CoordinatorUpdated", logs: logs, sub: sub}, nil
1290}
1291
1292// WatchCoordinatorUpdated is a free log subscription operation binding the contract event 0x384460dae6dd1682b71131272b0e47bcd8ecef844d632c5062db277378a868c5.
1293//
1294// Solidity: event CoordinatorUpdated(address forgerAddress, address withdrawalAddress, string coordinatorURL)
1295func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchCoordinatorUpdated(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolCoordinatorUpdated) (event.Subscription, error) {
1296
1297	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "CoordinatorUpdated")
1298	if err != nil {
1299		return nil, err
1300	}
1301	return event.NewSubscription(func(quit <-chan struct{}) error {
1302		defer sub.Unsubscribe()
1303		for {
1304			select {
1305			case log := <-logs:
1306				// New log arrived, parse the event and forward to the user
1307				event := new(HermezAuctionProtocolCoordinatorUpdated)
1308				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "CoordinatorUpdated", log); err != nil {
1309					return err
1310				}
1311				event.Raw = log
1312
1313				select {
1314				case sink <- event:
1315				case err := <-sub.Err():
1316					return err
1317				case <-quit:
1318					return nil
1319				}
1320			case err := <-sub.Err():
1321				return err
1322			case <-quit:
1323				return nil
1324			}
1325		}
1326	}), nil
1327}
1328
1329// ParseCoordinatorUpdated is a log parse operation binding the contract event 0x384460dae6dd1682b71131272b0e47bcd8ecef844d632c5062db277378a868c5.
1330//
1331// Solidity: event CoordinatorUpdated(address forgerAddress, address withdrawalAddress, string coordinatorURL)
1332func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseCoordinatorUpdated(log types.Log) (*HermezAuctionProtocolCoordinatorUpdated, error) {
1333	event := new(HermezAuctionProtocolCoordinatorUpdated)
1334	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "CoordinatorUpdated", log); err != nil {
1335		return nil, err
1336	}
1337	return event, nil
1338}
1339
1340// 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.
1341type HermezAuctionProtocolHEZClaimedIterator struct {
1342	Event *HermezAuctionProtocolHEZClaimed // Event containing the contract specifics and raw log
1343
1344	contract *bind.BoundContract // Generic contract to use for unpacking event data
1345	event    string              // Event name to use for unpacking event data
1346
1347	logs chan types.Log        // Log channel receiving the found contract events
1348	sub  ethereum.Subscription // Subscription for errors, completion and termination
1349	done bool                  // Whether the subscription completed delivering logs
1350	fail error                 // Occurred error to stop iteration
1351}
1352
1353// Next advances the iterator to the subsequent event, returning whether there
1354// are any more events found. In case of a retrieval or parsing error, false is
1355// returned and Error() can be queried for the exact failure.
1356func (it *HermezAuctionProtocolHEZClaimedIterator) Next() bool {
1357	// If the iterator failed, stop iterating
1358	if it.fail != nil {
1359		return false
1360	}
1361	// If the iterator completed, deliver directly whatever's available
1362	if it.done {
1363		select {
1364		case log := <-it.logs:
1365			it.Event = new(HermezAuctionProtocolHEZClaimed)
1366			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1367				it.fail = err
1368				return false
1369			}
1370			it.Event.Raw = log
1371			return true
1372
1373		default:
1374			return false
1375		}
1376	}
1377	// Iterator still in progress, wait for either a data or an error event
1378	select {
1379	case log := <-it.logs:
1380		it.Event = new(HermezAuctionProtocolHEZClaimed)
1381		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1382			it.fail = err
1383			return false
1384		}
1385		it.Event.Raw = log
1386		return true
1387
1388	case err := <-it.sub.Err():
1389		it.done = true
1390		it.fail = err
1391		return it.Next()
1392	}
1393}
1394
1395// Error returns any retrieval or parsing error occurred during filtering.
1396func (it *HermezAuctionProtocolHEZClaimedIterator) Error() error {
1397	return it.fail
1398}
1399
1400// Close terminates the iteration process, releasing any pending underlying
1401// resources.
1402func (it *HermezAuctionProtocolHEZClaimedIterator) Close() error {
1403	it.sub.Unsubscribe()
1404	return nil
1405}
1406
1407// HermezAuctionProtocolHEZClaimed represents a HEZClaimed event raised by the HermezAuctionProtocol contract.
1408type HermezAuctionProtocolHEZClaimed struct {
1409	Owner  common.Address
1410	Amount *big.Int
1411	Raw    types.Log // Blockchain specific contextual infos
1412}
1413
1414// FilterHEZClaimed is a free log retrieval operation binding the contract event 0x199ef0cb54d2b296ff6eaec2721bacf0ca3fd8344a43f5bdf4548b34dfa2594f.
1415//
1416// Solidity: event HEZClaimed(address indexed owner, uint128 amount)
1417func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterHEZClaimed(opts *bind.FilterOpts, owner []common.Address) (*HermezAuctionProtocolHEZClaimedIterator, error) {
1418
1419	var ownerRule []interface{}
1420	for _, ownerItem := range owner {
1421		ownerRule = append(ownerRule, ownerItem)
1422	}
1423
1424	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "HEZClaimed", ownerRule)
1425	if err != nil {
1426		return nil, err
1427	}
1428	return &HermezAuctionProtocolHEZClaimedIterator{contract: _HermezAuctionProtocol.contract, event: "HEZClaimed", logs: logs, sub: sub}, nil
1429}
1430
1431// WatchHEZClaimed is a free log subscription operation binding the contract event 0x199ef0cb54d2b296ff6eaec2721bacf0ca3fd8344a43f5bdf4548b34dfa2594f.
1432//
1433// Solidity: event HEZClaimed(address indexed owner, uint128 amount)
1434func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchHEZClaimed(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolHEZClaimed, owner []common.Address) (event.Subscription, error) {
1435
1436	var ownerRule []interface{}
1437	for _, ownerItem := range owner {
1438		ownerRule = append(ownerRule, ownerItem)
1439	}
1440
1441	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "HEZClaimed", ownerRule)
1442	if err != nil {
1443		return nil, err
1444	}
1445	return event.NewSubscription(func(quit <-chan struct{}) error {
1446		defer sub.Unsubscribe()
1447		for {
1448			select {
1449			case log := <-logs:
1450				// New log arrived, parse the event and forward to the user
1451				event := new(HermezAuctionProtocolHEZClaimed)
1452				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "HEZClaimed", log); err != nil {
1453					return err
1454				}
1455				event.Raw = log
1456
1457				select {
1458				case sink <- event:
1459				case err := <-sub.Err():
1460					return err
1461				case <-quit:
1462					return nil
1463				}
1464			case err := <-sub.Err():
1465				return err
1466			case <-quit:
1467				return nil
1468			}
1469		}
1470	}), nil
1471}
1472
1473// ParseHEZClaimed is a log parse operation binding the contract event 0x199ef0cb54d2b296ff6eaec2721bacf0ca3fd8344a43f5bdf4548b34dfa2594f.
1474//
1475// Solidity: event HEZClaimed(address indexed owner, uint128 amount)
1476func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseHEZClaimed(log types.Log) (*HermezAuctionProtocolHEZClaimed, error) {
1477	event := new(HermezAuctionProtocolHEZClaimed)
1478	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "HEZClaimed", log); err != nil {
1479		return nil, err
1480	}
1481	return event, nil
1482}
1483
1484// 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.
1485type HermezAuctionProtocolNewAllocationRatioIterator struct {
1486	Event *HermezAuctionProtocolNewAllocationRatio // Event containing the contract specifics and raw log
1487
1488	contract *bind.BoundContract // Generic contract to use for unpacking event data
1489	event    string              // Event name to use for unpacking event data
1490
1491	logs chan types.Log        // Log channel receiving the found contract events
1492	sub  ethereum.Subscription // Subscription for errors, completion and termination
1493	done bool                  // Whether the subscription completed delivering logs
1494	fail error                 // Occurred error to stop iteration
1495}
1496
1497// Next advances the iterator to the subsequent event, returning whether there
1498// are any more events found. In case of a retrieval or parsing error, false is
1499// returned and Error() can be queried for the exact failure.
1500func (it *HermezAuctionProtocolNewAllocationRatioIterator) Next() bool {
1501	// If the iterator failed, stop iterating
1502	if it.fail != nil {
1503		return false
1504	}
1505	// If the iterator completed, deliver directly whatever's available
1506	if it.done {
1507		select {
1508		case log := <-it.logs:
1509			it.Event = new(HermezAuctionProtocolNewAllocationRatio)
1510			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1511				it.fail = err
1512				return false
1513			}
1514			it.Event.Raw = log
1515			return true
1516
1517		default:
1518			return false
1519		}
1520	}
1521	// Iterator still in progress, wait for either a data or an error event
1522	select {
1523	case log := <-it.logs:
1524		it.Event = new(HermezAuctionProtocolNewAllocationRatio)
1525		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1526			it.fail = err
1527			return false
1528		}
1529		it.Event.Raw = log
1530		return true
1531
1532	case err := <-it.sub.Err():
1533		it.done = true
1534		it.fail = err
1535		return it.Next()
1536	}
1537}
1538
1539// Error returns any retrieval or parsing error occurred during filtering.
1540func (it *HermezAuctionProtocolNewAllocationRatioIterator) Error() error {
1541	return it.fail
1542}
1543
1544// Close terminates the iteration process, releasing any pending underlying
1545// resources.
1546func (it *HermezAuctionProtocolNewAllocationRatioIterator) Close() error {
1547	it.sub.Unsubscribe()
1548	return nil
1549}
1550
1551// HermezAuctionProtocolNewAllocationRatio represents a NewAllocationRatio event raised by the HermezAuctionProtocol contract.
1552type HermezAuctionProtocolNewAllocationRatio struct {
1553	NewAllocationRatio [3]uint8
1554	Raw                types.Log // Blockchain specific contextual infos
1555}
1556
1557// FilterNewAllocationRatio is a free log retrieval operation binding the contract event 0x065446964eb025d703d01a33acfb9cf2aa2a362fc961d7e92ca0a7d927f3d44d.
1558//
1559// Solidity: event NewAllocationRatio(uint8[3] newAllocationRatio)
1560func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewAllocationRatio(opts *bind.FilterOpts) (*HermezAuctionProtocolNewAllocationRatioIterator, error) {
1561
1562	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewAllocationRatio")
1563	if err != nil {
1564		return nil, err
1565	}
1566	return &HermezAuctionProtocolNewAllocationRatioIterator{contract: _HermezAuctionProtocol.contract, event: "NewAllocationRatio", logs: logs, sub: sub}, nil
1567}
1568
1569// WatchNewAllocationRatio is a free log subscription operation binding the contract event 0x065446964eb025d703d01a33acfb9cf2aa2a362fc961d7e92ca0a7d927f3d44d.
1570//
1571// Solidity: event NewAllocationRatio(uint8[3] newAllocationRatio)
1572func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewAllocationRatio(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewAllocationRatio) (event.Subscription, error) {
1573
1574	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewAllocationRatio")
1575	if err != nil {
1576		return nil, err
1577	}
1578	return event.NewSubscription(func(quit <-chan struct{}) error {
1579		defer sub.Unsubscribe()
1580		for {
1581			select {
1582			case log := <-logs:
1583				// New log arrived, parse the event and forward to the user
1584				event := new(HermezAuctionProtocolNewAllocationRatio)
1585				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewAllocationRatio", log); err != nil {
1586					return err
1587				}
1588				event.Raw = log
1589
1590				select {
1591				case sink <- event:
1592				case err := <-sub.Err():
1593					return err
1594				case <-quit:
1595					return nil
1596				}
1597			case err := <-sub.Err():
1598				return err
1599			case <-quit:
1600				return nil
1601			}
1602		}
1603	}), nil
1604}
1605
1606// ParseNewAllocationRatio is a log parse operation binding the contract event 0x065446964eb025d703d01a33acfb9cf2aa2a362fc961d7e92ca0a7d927f3d44d.
1607//
1608// Solidity: event NewAllocationRatio(uint8[3] newAllocationRatio)
1609func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewAllocationRatio(log types.Log) (*HermezAuctionProtocolNewAllocationRatio, error) {
1610	event := new(HermezAuctionProtocolNewAllocationRatio)
1611	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewAllocationRatio", log); err != nil {
1612		return nil, err
1613	}
1614	return event, nil
1615}
1616
1617// 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.
1618type HermezAuctionProtocolNewBidIterator struct {
1619	Event *HermezAuctionProtocolNewBid // Event containing the contract specifics and raw log
1620
1621	contract *bind.BoundContract // Generic contract to use for unpacking event data
1622	event    string              // Event name to use for unpacking event data
1623
1624	logs chan types.Log        // Log channel receiving the found contract events
1625	sub  ethereum.Subscription // Subscription for errors, completion and termination
1626	done bool                  // Whether the subscription completed delivering logs
1627	fail error                 // Occurred error to stop iteration
1628}
1629
1630// Next advances the iterator to the subsequent event, returning whether there
1631// are any more events found. In case of a retrieval or parsing error, false is
1632// returned and Error() can be queried for the exact failure.
1633func (it *HermezAuctionProtocolNewBidIterator) Next() bool {
1634	// If the iterator failed, stop iterating
1635	if it.fail != nil {
1636		return false
1637	}
1638	// If the iterator completed, deliver directly whatever's available
1639	if it.done {
1640		select {
1641		case log := <-it.logs:
1642			it.Event = new(HermezAuctionProtocolNewBid)
1643			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1644				it.fail = err
1645				return false
1646			}
1647			it.Event.Raw = log
1648			return true
1649
1650		default:
1651			return false
1652		}
1653	}
1654	// Iterator still in progress, wait for either a data or an error event
1655	select {
1656	case log := <-it.logs:
1657		it.Event = new(HermezAuctionProtocolNewBid)
1658		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1659			it.fail = err
1660			return false
1661		}
1662		it.Event.Raw = log
1663		return true
1664
1665	case err := <-it.sub.Err():
1666		it.done = true
1667		it.fail = err
1668		return it.Next()
1669	}
1670}
1671
1672// Error returns any retrieval or parsing error occurred during filtering.
1673func (it *HermezAuctionProtocolNewBidIterator) Error() error {
1674	return it.fail
1675}
1676
1677// Close terminates the iteration process, releasing any pending underlying
1678// resources.
1679func (it *HermezAuctionProtocolNewBidIterator) Close() error {
1680	it.sub.Unsubscribe()
1681	return nil
1682}
1683
1684// HermezAuctionProtocolNewBid represents a NewBid event raised by the HermezAuctionProtocol contract.
1685type HermezAuctionProtocolNewBid struct {
1686	Slot              *big.Int
1687	BidAmount         *big.Int
1688	CoordinatorForger common.Address
1689	Raw               types.Log // Blockchain specific contextual infos
1690}
1691
1692// FilterNewBid is a free log retrieval operation binding the contract event 0xd48e8329cdb2fb109b4fe445d7b681a74b256bff16e6f7f33b9d4fbe9038e433.
1693//
1694// Solidity: event NewBid(uint128 indexed slot, uint128 bidAmount, address indexed coordinatorForger)
1695func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewBid(opts *bind.FilterOpts, slot []*big.Int, coordinatorForger []common.Address) (*HermezAuctionProtocolNewBidIterator, error) {
1696
1697	var slotRule []interface{}
1698	for _, slotItem := range slot {
1699		slotRule = append(slotRule, slotItem)
1700	}
1701
1702	var coordinatorForgerRule []interface{}
1703	for _, coordinatorForgerItem := range coordinatorForger {
1704		coordinatorForgerRule = append(coordinatorForgerRule, coordinatorForgerItem)
1705	}
1706
1707	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewBid", slotRule, coordinatorForgerRule)
1708	if err != nil {
1709		return nil, err
1710	}
1711	return &HermezAuctionProtocolNewBidIterator{contract: _HermezAuctionProtocol.contract, event: "NewBid", logs: logs, sub: sub}, nil
1712}
1713
1714// WatchNewBid is a free log subscription operation binding the contract event 0xd48e8329cdb2fb109b4fe445d7b681a74b256bff16e6f7f33b9d4fbe9038e433.
1715//
1716// Solidity: event NewBid(uint128 indexed slot, uint128 bidAmount, address indexed coordinatorForger)
1717func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewBid(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewBid, slot []*big.Int, coordinatorForger []common.Address) (event.Subscription, error) {
1718
1719	var slotRule []interface{}
1720	for _, slotItem := range slot {
1721		slotRule = append(slotRule, slotItem)
1722	}
1723
1724	var coordinatorForgerRule []interface{}
1725	for _, coordinatorForgerItem := range coordinatorForger {
1726		coordinatorForgerRule = append(coordinatorForgerRule, coordinatorForgerItem)
1727	}
1728
1729	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewBid", slotRule, coordinatorForgerRule)
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(HermezAuctionProtocolNewBid)
1740				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewBid", 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// ParseNewBid is a log parse operation binding the contract event 0xd48e8329cdb2fb109b4fe445d7b681a74b256bff16e6f7f33b9d4fbe9038e433.
1762//
1763// Solidity: event NewBid(uint128 indexed slot, uint128 bidAmount, address indexed coordinatorForger)
1764func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewBid(log types.Log) (*HermezAuctionProtocolNewBid, error) {
1765	event := new(HermezAuctionProtocolNewBid)
1766	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewBid", log); err != nil {
1767		return nil, err
1768	}
1769	return event, nil
1770}
1771
1772// 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.
1773type HermezAuctionProtocolNewBootCoordinatorIterator struct {
1774	Event *HermezAuctionProtocolNewBootCoordinator // 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 *HermezAuctionProtocolNewBootCoordinatorIterator) 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(HermezAuctionProtocolNewBootCoordinator)
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(HermezAuctionProtocolNewBootCoordinator)
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 *HermezAuctionProtocolNewBootCoordinatorIterator) Error() error {
1829	return it.fail
1830}
1831
1832// Close terminates the iteration process, releasing any pending underlying
1833// resources.
1834func (it *HermezAuctionProtocolNewBootCoordinatorIterator) Close() error {
1835	it.sub.Unsubscribe()
1836	return nil
1837}
1838
1839// HermezAuctionProtocolNewBootCoordinator represents a NewBootCoordinator event raised by the HermezAuctionProtocol contract.
1840type HermezAuctionProtocolNewBootCoordinator struct {
1841	NewBootCoordinator common.Address
1842	Raw                types.Log // Blockchain specific contextual infos
1843}
1844
1845// FilterNewBootCoordinator is a free log retrieval operation binding the contract event 0x2161bd0f0e056d18046a81683e5bc845980367451cf4ca5148523a147c51be55.
1846//
1847// Solidity: event NewBootCoordinator(address newBootCoordinator)
1848func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewBootCoordinator(opts *bind.FilterOpts) (*HermezAuctionProtocolNewBootCoordinatorIterator, error) {
1849
1850	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewBootCoordinator")
1851	if err != nil {
1852		return nil, err
1853	}
1854	return &HermezAuctionProtocolNewBootCoordinatorIterator{contract: _HermezAuctionProtocol.contract, event: "NewBootCoordinator", logs: logs, sub: sub}, nil
1855}
1856
1857// WatchNewBootCoordinator is a free log subscription operation binding the contract event 0x2161bd0f0e056d18046a81683e5bc845980367451cf4ca5148523a147c51be55.
1858//
1859// Solidity: event NewBootCoordinator(address newBootCoordinator)
1860func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewBootCoordinator(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewBootCoordinator) (event.Subscription, error) {
1861
1862	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewBootCoordinator")
1863	if err != nil {
1864		return nil, err
1865	}
1866	return event.NewSubscription(func(quit <-chan struct{}) error {
1867		defer sub.Unsubscribe()
1868		for {
1869			select {
1870			case log := <-logs:
1871				// New log arrived, parse the event and forward to the user
1872				event := new(HermezAuctionProtocolNewBootCoordinator)
1873				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewBootCoordinator", log); err != nil {
1874					return err
1875				}
1876				event.Raw = log
1877
1878				select {
1879				case sink <- event:
1880				case err := <-sub.Err():
1881					return err
1882				case <-quit:
1883					return nil
1884				}
1885			case err := <-sub.Err():
1886				return err
1887			case <-quit:
1888				return nil
1889			}
1890		}
1891	}), nil
1892}
1893
1894// ParseNewBootCoordinator is a log parse operation binding the contract event 0x2161bd0f0e056d18046a81683e5bc845980367451cf4ca5148523a147c51be55.
1895//
1896// Solidity: event NewBootCoordinator(address newBootCoordinator)
1897func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewBootCoordinator(log types.Log) (*HermezAuctionProtocolNewBootCoordinator, error) {
1898	event := new(HermezAuctionProtocolNewBootCoordinator)
1899	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewBootCoordinator", log); err != nil {
1900		return nil, err
1901	}
1902	return event, nil
1903}
1904
1905// 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.
1906type HermezAuctionProtocolNewClosedAuctionSlotsIterator struct {
1907	Event *HermezAuctionProtocolNewClosedAuctionSlots // Event containing the contract specifics and raw log
1908
1909	contract *bind.BoundContract // Generic contract to use for unpacking event data
1910	event    string              // Event name to use for unpacking event data
1911
1912	logs chan types.Log        // Log channel receiving the found contract events
1913	sub  ethereum.Subscription // Subscription for errors, completion and termination
1914	done bool                  // Whether the subscription completed delivering logs
1915	fail error                 // Occurred error to stop iteration
1916}
1917
1918// Next advances the iterator to the subsequent event, returning whether there
1919// are any more events found. In case of a retrieval or parsing error, false is
1920// returned and Error() can be queried for the exact failure.
1921func (it *HermezAuctionProtocolNewClosedAuctionSlotsIterator) Next() bool {
1922	// If the iterator failed, stop iterating
1923	if it.fail != nil {
1924		return false
1925	}
1926	// If the iterator completed, deliver directly whatever's available
1927	if it.done {
1928		select {
1929		case log := <-it.logs:
1930			it.Event = new(HermezAuctionProtocolNewClosedAuctionSlots)
1931			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1932				it.fail = err
1933				return false
1934			}
1935			it.Event.Raw = log
1936			return true
1937
1938		default:
1939			return false
1940		}
1941	}
1942	// Iterator still in progress, wait for either a data or an error event
1943	select {
1944	case log := <-it.logs:
1945		it.Event = new(HermezAuctionProtocolNewClosedAuctionSlots)
1946		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
1947			it.fail = err
1948			return false
1949		}
1950		it.Event.Raw = log
1951		return true
1952
1953	case err := <-it.sub.Err():
1954		it.done = true
1955		it.fail = err
1956		return it.Next()
1957	}
1958}
1959
1960// Error returns any retrieval or parsing error occurred during filtering.
1961func (it *HermezAuctionProtocolNewClosedAuctionSlotsIterator) Error() error {
1962	return it.fail
1963}
1964
1965// Close terminates the iteration process, releasing any pending underlying
1966// resources.
1967func (it *HermezAuctionProtocolNewClosedAuctionSlotsIterator) Close() error {
1968	it.sub.Unsubscribe()
1969	return nil
1970}
1971
1972// HermezAuctionProtocolNewClosedAuctionSlots represents a NewClosedAuctionSlots event raised by the HermezAuctionProtocol contract.
1973type HermezAuctionProtocolNewClosedAuctionSlots struct {
1974	NewClosedAuctionSlots uint16
1975	Raw                   types.Log // Blockchain specific contextual infos
1976}
1977
1978// FilterNewClosedAuctionSlots is a free log retrieval operation binding the contract event 0xc78051d3757db196b1e445f3a9a1380944518c69b5d7922ec747c54f0340a4ea.
1979//
1980// Solidity: event NewClosedAuctionSlots(uint16 newClosedAuctionSlots)
1981func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewClosedAuctionSlots(opts *bind.FilterOpts) (*HermezAuctionProtocolNewClosedAuctionSlotsIterator, error) {
1982
1983	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewClosedAuctionSlots")
1984	if err != nil {
1985		return nil, err
1986	}
1987	return &HermezAuctionProtocolNewClosedAuctionSlotsIterator{contract: _HermezAuctionProtocol.contract, event: "NewClosedAuctionSlots", logs: logs, sub: sub}, nil
1988}
1989
1990// WatchNewClosedAuctionSlots is a free log subscription operation binding the contract event 0xc78051d3757db196b1e445f3a9a1380944518c69b5d7922ec747c54f0340a4ea.
1991//
1992// Solidity: event NewClosedAuctionSlots(uint16 newClosedAuctionSlots)
1993func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewClosedAuctionSlots(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewClosedAuctionSlots) (event.Subscription, error) {
1994
1995	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewClosedAuctionSlots")
1996	if err != nil {
1997		return nil, err
1998	}
1999	return event.NewSubscription(func(quit <-chan struct{}) error {
2000		defer sub.Unsubscribe()
2001		for {
2002			select {
2003			case log := <-logs:
2004				// New log arrived, parse the event and forward to the user
2005				event := new(HermezAuctionProtocolNewClosedAuctionSlots)
2006				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewClosedAuctionSlots", log); err != nil {
2007					return err
2008				}
2009				event.Raw = log
2010
2011				select {
2012				case sink <- event:
2013				case err := <-sub.Err():
2014					return err
2015				case <-quit:
2016					return nil
2017				}
2018			case err := <-sub.Err():
2019				return err
2020			case <-quit:
2021				return nil
2022			}
2023		}
2024	}), nil
2025}
2026
2027// ParseNewClosedAuctionSlots is a log parse operation binding the contract event 0xc78051d3757db196b1e445f3a9a1380944518c69b5d7922ec747c54f0340a4ea.
2028//
2029// Solidity: event NewClosedAuctionSlots(uint16 newClosedAuctionSlots)
2030func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewClosedAuctionSlots(log types.Log) (*HermezAuctionProtocolNewClosedAuctionSlots, error) {
2031	event := new(HermezAuctionProtocolNewClosedAuctionSlots)
2032	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewClosedAuctionSlots", log); err != nil {
2033		return nil, err
2034	}
2035	return event, nil
2036}
2037
2038// HermezAuctionProtocolNewCoordinatorIterator is returned from FilterNewCoordinator and is used to iterate over the raw logs and unpacked data for NewCoordinator events raised by the HermezAuctionProtocol contract.
2039type HermezAuctionProtocolNewCoordinatorIterator struct {
2040	Event *HermezAuctionProtocolNewCoordinator // Event containing the contract specifics and raw log
2041
2042	contract *bind.BoundContract // Generic contract to use for unpacking event data
2043	event    string              // Event name to use for unpacking event data
2044
2045	logs chan types.Log        // Log channel receiving the found contract events
2046	sub  ethereum.Subscription // Subscription for errors, completion and termination
2047	done bool                  // Whether the subscription completed delivering logs
2048	fail error                 // Occurred error to stop iteration
2049}
2050
2051// Next advances the iterator to the subsequent event, returning whether there
2052// are any more events found. In case of a retrieval or parsing error, false is
2053// returned and Error() can be queried for the exact failure.
2054func (it *HermezAuctionProtocolNewCoordinatorIterator) Next() bool {
2055	// If the iterator failed, stop iterating
2056	if it.fail != nil {
2057		return false
2058	}
2059	// If the iterator completed, deliver directly whatever's available
2060	if it.done {
2061		select {
2062		case log := <-it.logs:
2063			it.Event = new(HermezAuctionProtocolNewCoordinator)
2064			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2065				it.fail = err
2066				return false
2067			}
2068			it.Event.Raw = log
2069			return true
2070
2071		default:
2072			return false
2073		}
2074	}
2075	// Iterator still in progress, wait for either a data or an error event
2076	select {
2077	case log := <-it.logs:
2078		it.Event = new(HermezAuctionProtocolNewCoordinator)
2079		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2080			it.fail = err
2081			return false
2082		}
2083		it.Event.Raw = log
2084		return true
2085
2086	case err := <-it.sub.Err():
2087		it.done = true
2088		it.fail = err
2089		return it.Next()
2090	}
2091}
2092
2093// Error returns any retrieval or parsing error occurred during filtering.
2094func (it *HermezAuctionProtocolNewCoordinatorIterator) Error() error {
2095	return it.fail
2096}
2097
2098// Close terminates the iteration process, releasing any pending underlying
2099// resources.
2100func (it *HermezAuctionProtocolNewCoordinatorIterator) Close() error {
2101	it.sub.Unsubscribe()
2102	return nil
2103}
2104
2105// HermezAuctionProtocolNewCoordinator represents a NewCoordinator event raised by the HermezAuctionProtocol contract.
2106type HermezAuctionProtocolNewCoordinator struct {
2107	ForgerAddress     common.Address
2108	WithdrawalAddress common.Address
2109	CoordinatorURL    string
2110	Raw               types.Log // Blockchain specific contextual infos
2111}
2112
2113// FilterNewCoordinator is a free log retrieval operation binding the contract event 0x669c2ad52258689ce95b5b33025822b1afde214fff3a61dd00007d98b5b2ca36.
2114//
2115// Solidity: event NewCoordinator(address forgerAddress, address withdrawalAddress, string coordinatorURL)
2116func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewCoordinator(opts *bind.FilterOpts) (*HermezAuctionProtocolNewCoordinatorIterator, error) {
2117
2118	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewCoordinator")
2119	if err != nil {
2120		return nil, err
2121	}
2122	return &HermezAuctionProtocolNewCoordinatorIterator{contract: _HermezAuctionProtocol.contract, event: "NewCoordinator", logs: logs, sub: sub}, nil
2123}
2124
2125// WatchNewCoordinator is a free log subscription operation binding the contract event 0x669c2ad52258689ce95b5b33025822b1afde214fff3a61dd00007d98b5b2ca36.
2126//
2127// Solidity: event NewCoordinator(address forgerAddress, address withdrawalAddress, string coordinatorURL)
2128func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewCoordinator(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewCoordinator) (event.Subscription, error) {
2129
2130	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewCoordinator")
2131	if err != nil {
2132		return nil, err
2133	}
2134	return event.NewSubscription(func(quit <-chan struct{}) error {
2135		defer sub.Unsubscribe()
2136		for {
2137			select {
2138			case log := <-logs:
2139				// New log arrived, parse the event and forward to the user
2140				event := new(HermezAuctionProtocolNewCoordinator)
2141				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewCoordinator", log); err != nil {
2142					return err
2143				}
2144				event.Raw = log
2145
2146				select {
2147				case sink <- event:
2148				case err := <-sub.Err():
2149					return err
2150				case <-quit:
2151					return nil
2152				}
2153			case err := <-sub.Err():
2154				return err
2155			case <-quit:
2156				return nil
2157			}
2158		}
2159	}), nil
2160}
2161
2162// ParseNewCoordinator is a log parse operation binding the contract event 0x669c2ad52258689ce95b5b33025822b1afde214fff3a61dd00007d98b5b2ca36.
2163//
2164// Solidity: event NewCoordinator(address forgerAddress, address withdrawalAddress, string coordinatorURL)
2165func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewCoordinator(log types.Log) (*HermezAuctionProtocolNewCoordinator, error) {
2166	event := new(HermezAuctionProtocolNewCoordinator)
2167	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewCoordinator", log); err != nil {
2168		return nil, err
2169	}
2170	return event, nil
2171}
2172
2173// 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.
2174type HermezAuctionProtocolNewDonationAddressIterator struct {
2175	Event *HermezAuctionProtocolNewDonationAddress // Event containing the contract specifics and raw log
2176
2177	contract *bind.BoundContract // Generic contract to use for unpacking event data
2178	event    string              // Event name to use for unpacking event data
2179
2180	logs chan types.Log        // Log channel receiving the found contract events
2181	sub  ethereum.Subscription // Subscription for errors, completion and termination
2182	done bool                  // Whether the subscription completed delivering logs
2183	fail error                 // Occurred error to stop iteration
2184}
2185
2186// Next advances the iterator to the subsequent event, returning whether there
2187// are any more events found. In case of a retrieval or parsing error, false is
2188// returned and Error() can be queried for the exact failure.
2189func (it *HermezAuctionProtocolNewDonationAddressIterator) Next() bool {
2190	// If the iterator failed, stop iterating
2191	if it.fail != nil {
2192		return false
2193	}
2194	// If the iterator completed, deliver directly whatever's available
2195	if it.done {
2196		select {
2197		case log := <-it.logs:
2198			it.Event = new(HermezAuctionProtocolNewDonationAddress)
2199			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2200				it.fail = err
2201				return false
2202			}
2203			it.Event.Raw = log
2204			return true
2205
2206		default:
2207			return false
2208		}
2209	}
2210	// Iterator still in progress, wait for either a data or an error event
2211	select {
2212	case log := <-it.logs:
2213		it.Event = new(HermezAuctionProtocolNewDonationAddress)
2214		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2215			it.fail = err
2216			return false
2217		}
2218		it.Event.Raw = log
2219		return true
2220
2221	case err := <-it.sub.Err():
2222		it.done = true
2223		it.fail = err
2224		return it.Next()
2225	}
2226}
2227
2228// Error returns any retrieval or parsing error occurred during filtering.
2229func (it *HermezAuctionProtocolNewDonationAddressIterator) Error() error {
2230	return it.fail
2231}
2232
2233// Close terminates the iteration process, releasing any pending underlying
2234// resources.
2235func (it *HermezAuctionProtocolNewDonationAddressIterator) Close() error {
2236	it.sub.Unsubscribe()
2237	return nil
2238}
2239
2240// HermezAuctionProtocolNewDonationAddress represents a NewDonationAddress event raised by the HermezAuctionProtocol contract.
2241type HermezAuctionProtocolNewDonationAddress struct {
2242	NewDonationAddress common.Address
2243	Raw                types.Log // Blockchain specific contextual infos
2244}
2245
2246// FilterNewDonationAddress is a free log retrieval operation binding the contract event 0xa62863cbad1647a2855e9cd39d04fa6dfd32e1b9cfaff1aaf6523f4aaafeccd7.
2247//
2248// Solidity: event NewDonationAddress(address newDonationAddress)
2249func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewDonationAddress(opts *bind.FilterOpts) (*HermezAuctionProtocolNewDonationAddressIterator, error) {
2250
2251	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewDonationAddress")
2252	if err != nil {
2253		return nil, err
2254	}
2255	return &HermezAuctionProtocolNewDonationAddressIterator{contract: _HermezAuctionProtocol.contract, event: "NewDonationAddress", logs: logs, sub: sub}, nil
2256}
2257
2258// WatchNewDonationAddress is a free log subscription operation binding the contract event 0xa62863cbad1647a2855e9cd39d04fa6dfd32e1b9cfaff1aaf6523f4aaafeccd7.
2259//
2260// Solidity: event NewDonationAddress(address newDonationAddress)
2261func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewDonationAddress(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewDonationAddress) (event.Subscription, error) {
2262
2263	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewDonationAddress")
2264	if err != nil {
2265		return nil, err
2266	}
2267	return event.NewSubscription(func(quit <-chan struct{}) error {
2268		defer sub.Unsubscribe()
2269		for {
2270			select {
2271			case log := <-logs:
2272				// New log arrived, parse the event and forward to the user
2273				event := new(HermezAuctionProtocolNewDonationAddress)
2274				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewDonationAddress", log); err != nil {
2275					return err
2276				}
2277				event.Raw = log
2278
2279				select {
2280				case sink <- event:
2281				case err := <-sub.Err():
2282					return err
2283				case <-quit:
2284					return nil
2285				}
2286			case err := <-sub.Err():
2287				return err
2288			case <-quit:
2289				return nil
2290			}
2291		}
2292	}), nil
2293}
2294
2295// ParseNewDonationAddress is a log parse operation binding the contract event 0xa62863cbad1647a2855e9cd39d04fa6dfd32e1b9cfaff1aaf6523f4aaafeccd7.
2296//
2297// Solidity: event NewDonationAddress(address newDonationAddress)
2298func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewDonationAddress(log types.Log) (*HermezAuctionProtocolNewDonationAddress, error) {
2299	event := new(HermezAuctionProtocolNewDonationAddress)
2300	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewDonationAddress", log); err != nil {
2301		return nil, err
2302	}
2303	return event, nil
2304}
2305
2306// 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.
2307type HermezAuctionProtocolNewForgeIterator struct {
2308	Event *HermezAuctionProtocolNewForge // Event containing the contract specifics and raw log
2309
2310	contract *bind.BoundContract // Generic contract to use for unpacking event data
2311	event    string              // Event name to use for unpacking event data
2312
2313	logs chan types.Log        // Log channel receiving the found contract events
2314	sub  ethereum.Subscription // Subscription for errors, completion and termination
2315	done bool                  // Whether the subscription completed delivering logs
2316	fail error                 // Occurred error to stop iteration
2317}
2318
2319// Next advances the iterator to the subsequent event, returning whether there
2320// are any more events found. In case of a retrieval or parsing error, false is
2321// returned and Error() can be queried for the exact failure.
2322func (it *HermezAuctionProtocolNewForgeIterator) Next() bool {
2323	// If the iterator failed, stop iterating
2324	if it.fail != nil {
2325		return false
2326	}
2327	// If the iterator completed, deliver directly whatever's available
2328	if it.done {
2329		select {
2330		case log := <-it.logs:
2331			it.Event = new(HermezAuctionProtocolNewForge)
2332			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2333				it.fail = err
2334				return false
2335			}
2336			it.Event.Raw = log
2337			return true
2338
2339		default:
2340			return false
2341		}
2342	}
2343	// Iterator still in progress, wait for either a data or an error event
2344	select {
2345	case log := <-it.logs:
2346		it.Event = new(HermezAuctionProtocolNewForge)
2347		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2348			it.fail = err
2349			return false
2350		}
2351		it.Event.Raw = log
2352		return true
2353
2354	case err := <-it.sub.Err():
2355		it.done = true
2356		it.fail = err
2357		return it.Next()
2358	}
2359}
2360
2361// Error returns any retrieval or parsing error occurred during filtering.
2362func (it *HermezAuctionProtocolNewForgeIterator) Error() error {
2363	return it.fail
2364}
2365
2366// Close terminates the iteration process, releasing any pending underlying
2367// resources.
2368func (it *HermezAuctionProtocolNewForgeIterator) Close() error {
2369	it.sub.Unsubscribe()
2370	return nil
2371}
2372
2373// HermezAuctionProtocolNewForge represents a NewForge event raised by the HermezAuctionProtocol contract.
2374type HermezAuctionProtocolNewForge struct {
2375	Forger      common.Address
2376	SlotToForge *big.Int
2377	Raw         types.Log // Blockchain specific contextual infos
2378}
2379
2380// FilterNewForge is a free log retrieval operation binding the contract event 0x7cae662d4cfa9d9c5575c65f0cc41a858c51ca14ebcbd02a802a62376c3ad238.
2381//
2382// Solidity: event NewForge(address indexed forger, uint128 indexed slotToForge)
2383func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewForge(opts *bind.FilterOpts, forger []common.Address, slotToForge []*big.Int) (*HermezAuctionProtocolNewForgeIterator, error) {
2384
2385	var forgerRule []interface{}
2386	for _, forgerItem := range forger {
2387		forgerRule = append(forgerRule, forgerItem)
2388	}
2389	var slotToForgeRule []interface{}
2390	for _, slotToForgeItem := range slotToForge {
2391		slotToForgeRule = append(slotToForgeRule, slotToForgeItem)
2392	}
2393
2394	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewForge", forgerRule, slotToForgeRule)
2395	if err != nil {
2396		return nil, err
2397	}
2398	return &HermezAuctionProtocolNewForgeIterator{contract: _HermezAuctionProtocol.contract, event: "NewForge", logs: logs, sub: sub}, nil
2399}
2400
2401// WatchNewForge is a free log subscription operation binding the contract event 0x7cae662d4cfa9d9c5575c65f0cc41a858c51ca14ebcbd02a802a62376c3ad238.
2402//
2403// Solidity: event NewForge(address indexed forger, uint128 indexed slotToForge)
2404func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewForge(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewForge, forger []common.Address, slotToForge []*big.Int) (event.Subscription, error) {
2405
2406	var forgerRule []interface{}
2407	for _, forgerItem := range forger {
2408		forgerRule = append(forgerRule, forgerItem)
2409	}
2410	var slotToForgeRule []interface{}
2411	for _, slotToForgeItem := range slotToForge {
2412		slotToForgeRule = append(slotToForgeRule, slotToForgeItem)
2413	}
2414
2415	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewForge", forgerRule, slotToForgeRule)
2416	if err != nil {
2417		return nil, err
2418	}
2419	return event.NewSubscription(func(quit <-chan struct{}) error {
2420		defer sub.Unsubscribe()
2421		for {
2422			select {
2423			case log := <-logs:
2424				// New log arrived, parse the event and forward to the user
2425				event := new(HermezAuctionProtocolNewForge)
2426				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewForge", log); err != nil {
2427					return err
2428				}
2429				event.Raw = log
2430
2431				select {
2432				case sink <- event:
2433				case err := <-sub.Err():
2434					return err
2435				case <-quit:
2436					return nil
2437				}
2438			case err := <-sub.Err():
2439				return err
2440			case <-quit:
2441				return nil
2442			}
2443		}
2444	}), nil
2445}
2446
2447// ParseNewForge is a log parse operation binding the contract event 0x7cae662d4cfa9d9c5575c65f0cc41a858c51ca14ebcbd02a802a62376c3ad238.
2448//
2449// Solidity: event NewForge(address indexed forger, uint128 indexed slotToForge)
2450func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewForge(log types.Log) (*HermezAuctionProtocolNewForge, error) {
2451	event := new(HermezAuctionProtocolNewForge)
2452	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewForge", log); err != nil {
2453		return nil, err
2454	}
2455	return event, nil
2456}
2457
2458// 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.
2459type HermezAuctionProtocolNewForgeAllocatedIterator struct {
2460	Event *HermezAuctionProtocolNewForgeAllocated // Event containing the contract specifics and raw log
2461
2462	contract *bind.BoundContract // Generic contract to use for unpacking event data
2463	event    string              // Event name to use for unpacking event data
2464
2465	logs chan types.Log        // Log channel receiving the found contract events
2466	sub  ethereum.Subscription // Subscription for errors, completion and termination
2467	done bool                  // Whether the subscription completed delivering logs
2468	fail error                 // Occurred error to stop iteration
2469}
2470
2471// Next advances the iterator to the subsequent event, returning whether there
2472// are any more events found. In case of a retrieval or parsing error, false is
2473// returned and Error() can be queried for the exact failure.
2474func (it *HermezAuctionProtocolNewForgeAllocatedIterator) Next() bool {
2475	// If the iterator failed, stop iterating
2476	if it.fail != nil {
2477		return false
2478	}
2479	// If the iterator completed, deliver directly whatever's available
2480	if it.done {
2481		select {
2482		case log := <-it.logs:
2483			it.Event = new(HermezAuctionProtocolNewForgeAllocated)
2484			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2485				it.fail = err
2486				return false
2487			}
2488			it.Event.Raw = log
2489			return true
2490
2491		default:
2492			return false
2493		}
2494	}
2495	// Iterator still in progress, wait for either a data or an error event
2496	select {
2497	case log := <-it.logs:
2498		it.Event = new(HermezAuctionProtocolNewForgeAllocated)
2499		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2500			it.fail = err
2501			return false
2502		}
2503		it.Event.Raw = log
2504		return true
2505
2506	case err := <-it.sub.Err():
2507		it.done = true
2508		it.fail = err
2509		return it.Next()
2510	}
2511}
2512
2513// Error returns any retrieval or parsing error occurred during filtering.
2514func (it *HermezAuctionProtocolNewForgeAllocatedIterator) Error() error {
2515	return it.fail
2516}
2517
2518// Close terminates the iteration process, releasing any pending underlying
2519// resources.
2520func (it *HermezAuctionProtocolNewForgeAllocatedIterator) Close() error {
2521	it.sub.Unsubscribe()
2522	return nil
2523}
2524
2525// HermezAuctionProtocolNewForgeAllocated represents a NewForgeAllocated event raised by the HermezAuctionProtocol contract.
2526type HermezAuctionProtocolNewForgeAllocated struct {
2527	Forger           common.Address
2528	SlotToForge      *big.Int
2529	BurnAmount       *big.Int
2530	DonationAmount   *big.Int
2531	GovernanceAmount *big.Int
2532	Raw              types.Log // Blockchain specific contextual infos
2533}
2534
2535// FilterNewForgeAllocated is a free log retrieval operation binding the contract event 0x9c1175e346e9ec25b59d991c43dd2c3c982970d169dbd7315ad3d8bb91e0acf5.
2536//
2537// Solidity: event NewForgeAllocated(address indexed forger, uint128 indexed slotToForge, uint128 burnAmount, uint128 donationAmount, uint128 governanceAmount)
2538func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewForgeAllocated(opts *bind.FilterOpts, forger []common.Address, slotToForge []*big.Int) (*HermezAuctionProtocolNewForgeAllocatedIterator, error) {
2539
2540	var forgerRule []interface{}
2541	for _, forgerItem := range forger {
2542		forgerRule = append(forgerRule, forgerItem)
2543	}
2544	var slotToForgeRule []interface{}
2545	for _, slotToForgeItem := range slotToForge {
2546		slotToForgeRule = append(slotToForgeRule, slotToForgeItem)
2547	}
2548
2549	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewForgeAllocated", forgerRule, slotToForgeRule)
2550	if err != nil {
2551		return nil, err
2552	}
2553	return &HermezAuctionProtocolNewForgeAllocatedIterator{contract: _HermezAuctionProtocol.contract, event: "NewForgeAllocated", logs: logs, sub: sub}, nil
2554}
2555
2556// WatchNewForgeAllocated is a free log subscription operation binding the contract event 0x9c1175e346e9ec25b59d991c43dd2c3c982970d169dbd7315ad3d8bb91e0acf5.
2557//
2558// Solidity: event NewForgeAllocated(address indexed forger, uint128 indexed slotToForge, uint128 burnAmount, uint128 donationAmount, uint128 governanceAmount)
2559func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewForgeAllocated(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewForgeAllocated, forger []common.Address, slotToForge []*big.Int) (event.Subscription, error) {
2560
2561	var forgerRule []interface{}
2562	for _, forgerItem := range forger {
2563		forgerRule = append(forgerRule, forgerItem)
2564	}
2565	var slotToForgeRule []interface{}
2566	for _, slotToForgeItem := range slotToForge {
2567		slotToForgeRule = append(slotToForgeRule, slotToForgeItem)
2568	}
2569
2570	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewForgeAllocated", forgerRule, slotToForgeRule)
2571	if err != nil {
2572		return nil, err
2573	}
2574	return event.NewSubscription(func(quit <-chan struct{}) error {
2575		defer sub.Unsubscribe()
2576		for {
2577			select {
2578			case log := <-logs:
2579				// New log arrived, parse the event and forward to the user
2580				event := new(HermezAuctionProtocolNewForgeAllocated)
2581				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewForgeAllocated", log); err != nil {
2582					return err
2583				}
2584				event.Raw = log
2585
2586				select {
2587				case sink <- event:
2588				case err := <-sub.Err():
2589					return err
2590				case <-quit:
2591					return nil
2592				}
2593			case err := <-sub.Err():
2594				return err
2595			case <-quit:
2596				return nil
2597			}
2598		}
2599	}), nil
2600}
2601
2602// ParseNewForgeAllocated is a log parse operation binding the contract event 0x9c1175e346e9ec25b59d991c43dd2c3c982970d169dbd7315ad3d8bb91e0acf5.
2603//
2604// Solidity: event NewForgeAllocated(address indexed forger, uint128 indexed slotToForge, uint128 burnAmount, uint128 donationAmount, uint128 governanceAmount)
2605func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewForgeAllocated(log types.Log) (*HermezAuctionProtocolNewForgeAllocated, error) {
2606	event := new(HermezAuctionProtocolNewForgeAllocated)
2607	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewForgeAllocated", log); err != nil {
2608		return nil, err
2609	}
2610	return event, nil
2611}
2612
2613// HermezAuctionProtocolNewMinBidEpochIterator is returned from FilterNewMinBidEpoch and is used to iterate over the raw logs and unpacked data for NewMinBidEpoch events raised by the HermezAuctionProtocol contract.
2614type HermezAuctionProtocolNewMinBidEpochIterator struct {
2615	Event *HermezAuctionProtocolNewMinBidEpoch // Event containing the contract specifics and raw log
2616
2617	contract *bind.BoundContract // Generic contract to use for unpacking event data
2618	event    string              // Event name to use for unpacking event data
2619
2620	logs chan types.Log        // Log channel receiving the found contract events
2621	sub  ethereum.Subscription // Subscription for errors, completion and termination
2622	done bool                  // Whether the subscription completed delivering logs
2623	fail error                 // Occurred error to stop iteration
2624}
2625
2626// Next advances the iterator to the subsequent event, returning whether there
2627// are any more events found. In case of a retrieval or parsing error, false is
2628// returned and Error() can be queried for the exact failure.
2629func (it *HermezAuctionProtocolNewMinBidEpochIterator) Next() bool {
2630	// If the iterator failed, stop iterating
2631	if it.fail != nil {
2632		return false
2633	}
2634	// If the iterator completed, deliver directly whatever's available
2635	if it.done {
2636		select {
2637		case log := <-it.logs:
2638			it.Event = new(HermezAuctionProtocolNewMinBidEpoch)
2639			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2640				it.fail = err
2641				return false
2642			}
2643			it.Event.Raw = log
2644			return true
2645
2646		default:
2647			return false
2648		}
2649	}
2650	// Iterator still in progress, wait for either a data or an error event
2651	select {
2652	case log := <-it.logs:
2653		it.Event = new(HermezAuctionProtocolNewMinBidEpoch)
2654		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2655			it.fail = err
2656			return false
2657		}
2658		it.Event.Raw = log
2659		return true
2660
2661	case err := <-it.sub.Err():
2662		it.done = true
2663		it.fail = err
2664		return it.Next()
2665	}
2666}
2667
2668// Error returns any retrieval or parsing error occurred during filtering.
2669func (it *HermezAuctionProtocolNewMinBidEpochIterator) Error() error {
2670	return it.fail
2671}
2672
2673// Close terminates the iteration process, releasing any pending underlying
2674// resources.
2675func (it *HermezAuctionProtocolNewMinBidEpochIterator) Close() error {
2676	it.sub.Unsubscribe()
2677	return nil
2678}
2679
2680// HermezAuctionProtocolNewMinBidEpoch represents a NewMinBidEpoch event raised by the HermezAuctionProtocol contract.
2681type HermezAuctionProtocolNewMinBidEpoch struct {
2682	SlotEpoch        *big.Int
2683	NewInitialMinBid *big.Int
2684	Raw              types.Log // Blockchain specific contextual infos
2685}
2686
2687// FilterNewMinBidEpoch is a free log retrieval operation binding the contract event 0x7eaf5be1f9cd1e33195565552e1b0a6fedc1a225aa861987e3c64f463060449a.
2688//
2689// Solidity: event NewMinBidEpoch(uint128 slotEpoch, uint128 newInitialMinBid)
2690func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewMinBidEpoch(opts *bind.FilterOpts) (*HermezAuctionProtocolNewMinBidEpochIterator, error) {
2691
2692	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewMinBidEpoch")
2693	if err != nil {
2694		return nil, err
2695	}
2696	return &HermezAuctionProtocolNewMinBidEpochIterator{contract: _HermezAuctionProtocol.contract, event: "NewMinBidEpoch", logs: logs, sub: sub}, nil
2697}
2698
2699// WatchNewMinBidEpoch is a free log subscription operation binding the contract event 0x7eaf5be1f9cd1e33195565552e1b0a6fedc1a225aa861987e3c64f463060449a.
2700//
2701// Solidity: event NewMinBidEpoch(uint128 slotEpoch, uint128 newInitialMinBid)
2702func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewMinBidEpoch(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewMinBidEpoch) (event.Subscription, error) {
2703
2704	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewMinBidEpoch")
2705	if err != nil {
2706		return nil, err
2707	}
2708	return event.NewSubscription(func(quit <-chan struct{}) error {
2709		defer sub.Unsubscribe()
2710		for {
2711			select {
2712			case log := <-logs:
2713				// New log arrived, parse the event and forward to the user
2714				event := new(HermezAuctionProtocolNewMinBidEpoch)
2715				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewMinBidEpoch", log); err != nil {
2716					return err
2717				}
2718				event.Raw = log
2719
2720				select {
2721				case sink <- event:
2722				case err := <-sub.Err():
2723					return err
2724				case <-quit:
2725					return nil
2726				}
2727			case err := <-sub.Err():
2728				return err
2729			case <-quit:
2730				return nil
2731			}
2732		}
2733	}), nil
2734}
2735
2736// ParseNewMinBidEpoch is a log parse operation binding the contract event 0x7eaf5be1f9cd1e33195565552e1b0a6fedc1a225aa861987e3c64f463060449a.
2737//
2738// Solidity: event NewMinBidEpoch(uint128 slotEpoch, uint128 newInitialMinBid)
2739func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewMinBidEpoch(log types.Log) (*HermezAuctionProtocolNewMinBidEpoch, error) {
2740	event := new(HermezAuctionProtocolNewMinBidEpoch)
2741	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewMinBidEpoch", log); err != nil {
2742		return nil, err
2743	}
2744	return event, nil
2745}
2746
2747// 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.
2748type HermezAuctionProtocolNewOpenAuctionSlotsIterator struct {
2749	Event *HermezAuctionProtocolNewOpenAuctionSlots // Event containing the contract specifics and raw log
2750
2751	contract *bind.BoundContract // Generic contract to use for unpacking event data
2752	event    string              // Event name to use for unpacking event data
2753
2754	logs chan types.Log        // Log channel receiving the found contract events
2755	sub  ethereum.Subscription // Subscription for errors, completion and termination
2756	done bool                  // Whether the subscription completed delivering logs
2757	fail error                 // Occurred error to stop iteration
2758}
2759
2760// Next advances the iterator to the subsequent event, returning whether there
2761// are any more events found. In case of a retrieval or parsing error, false is
2762// returned and Error() can be queried for the exact failure.
2763func (it *HermezAuctionProtocolNewOpenAuctionSlotsIterator) Next() bool {
2764	// If the iterator failed, stop iterating
2765	if it.fail != nil {
2766		return false
2767	}
2768	// If the iterator completed, deliver directly whatever's available
2769	if it.done {
2770		select {
2771		case log := <-it.logs:
2772			it.Event = new(HermezAuctionProtocolNewOpenAuctionSlots)
2773			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2774				it.fail = err
2775				return false
2776			}
2777			it.Event.Raw = log
2778			return true
2779
2780		default:
2781			return false
2782		}
2783	}
2784	// Iterator still in progress, wait for either a data or an error event
2785	select {
2786	case log := <-it.logs:
2787		it.Event = new(HermezAuctionProtocolNewOpenAuctionSlots)
2788		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2789			it.fail = err
2790			return false
2791		}
2792		it.Event.Raw = log
2793		return true
2794
2795	case err := <-it.sub.Err():
2796		it.done = true
2797		it.fail = err
2798		return it.Next()
2799	}
2800}
2801
2802// Error returns any retrieval or parsing error occurred during filtering.
2803func (it *HermezAuctionProtocolNewOpenAuctionSlotsIterator) Error() error {
2804	return it.fail
2805}
2806
2807// Close terminates the iteration process, releasing any pending underlying
2808// resources.
2809func (it *HermezAuctionProtocolNewOpenAuctionSlotsIterator) Close() error {
2810	it.sub.Unsubscribe()
2811	return nil
2812}
2813
2814// HermezAuctionProtocolNewOpenAuctionSlots represents a NewOpenAuctionSlots event raised by the HermezAuctionProtocol contract.
2815type HermezAuctionProtocolNewOpenAuctionSlots struct {
2816	NewOpenAuctionSlots uint16
2817	Raw                 types.Log // Blockchain specific contextual infos
2818}
2819
2820// FilterNewOpenAuctionSlots is a free log retrieval operation binding the contract event 0x3da0492dea7298351bc14d1c0699905fd0657c33487449751af50fc0c8b593f1.
2821//
2822// Solidity: event NewOpenAuctionSlots(uint16 newOpenAuctionSlots)
2823func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewOpenAuctionSlots(opts *bind.FilterOpts) (*HermezAuctionProtocolNewOpenAuctionSlotsIterator, error) {
2824
2825	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewOpenAuctionSlots")
2826	if err != nil {
2827		return nil, err
2828	}
2829	return &HermezAuctionProtocolNewOpenAuctionSlotsIterator{contract: _HermezAuctionProtocol.contract, event: "NewOpenAuctionSlots", logs: logs, sub: sub}, nil
2830}
2831
2832// WatchNewOpenAuctionSlots is a free log subscription operation binding the contract event 0x3da0492dea7298351bc14d1c0699905fd0657c33487449751af50fc0c8b593f1.
2833//
2834// Solidity: event NewOpenAuctionSlots(uint16 newOpenAuctionSlots)
2835func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewOpenAuctionSlots(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewOpenAuctionSlots) (event.Subscription, error) {
2836
2837	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewOpenAuctionSlots")
2838	if err != nil {
2839		return nil, err
2840	}
2841	return event.NewSubscription(func(quit <-chan struct{}) error {
2842		defer sub.Unsubscribe()
2843		for {
2844			select {
2845			case log := <-logs:
2846				// New log arrived, parse the event and forward to the user
2847				event := new(HermezAuctionProtocolNewOpenAuctionSlots)
2848				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewOpenAuctionSlots", log); err != nil {
2849					return err
2850				}
2851				event.Raw = log
2852
2853				select {
2854				case sink <- event:
2855				case err := <-sub.Err():
2856					return err
2857				case <-quit:
2858					return nil
2859				}
2860			case err := <-sub.Err():
2861				return err
2862			case <-quit:
2863				return nil
2864			}
2865		}
2866	}), nil
2867}
2868
2869// ParseNewOpenAuctionSlots is a log parse operation binding the contract event 0x3da0492dea7298351bc14d1c0699905fd0657c33487449751af50fc0c8b593f1.
2870//
2871// Solidity: event NewOpenAuctionSlots(uint16 newOpenAuctionSlots)
2872func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewOpenAuctionSlots(log types.Log) (*HermezAuctionProtocolNewOpenAuctionSlots, error) {
2873	event := new(HermezAuctionProtocolNewOpenAuctionSlots)
2874	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewOpenAuctionSlots", log); err != nil {
2875		return nil, err
2876	}
2877	return event, nil
2878}
2879
2880// 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.
2881type HermezAuctionProtocolNewOutbiddingIterator struct {
2882	Event *HermezAuctionProtocolNewOutbidding // Event containing the contract specifics and raw log
2883
2884	contract *bind.BoundContract // Generic contract to use for unpacking event data
2885	event    string              // Event name to use for unpacking event data
2886
2887	logs chan types.Log        // Log channel receiving the found contract events
2888	sub  ethereum.Subscription // Subscription for errors, completion and termination
2889	done bool                  // Whether the subscription completed delivering logs
2890	fail error                 // Occurred error to stop iteration
2891}
2892
2893// Next advances the iterator to the subsequent event, returning whether there
2894// are any more events found. In case of a retrieval or parsing error, false is
2895// returned and Error() can be queried for the exact failure.
2896func (it *HermezAuctionProtocolNewOutbiddingIterator) Next() bool {
2897	// If the iterator failed, stop iterating
2898	if it.fail != nil {
2899		return false
2900	}
2901	// If the iterator completed, deliver directly whatever's available
2902	if it.done {
2903		select {
2904		case log := <-it.logs:
2905			it.Event = new(HermezAuctionProtocolNewOutbidding)
2906			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2907				it.fail = err
2908				return false
2909			}
2910			it.Event.Raw = log
2911			return true
2912
2913		default:
2914			return false
2915		}
2916	}
2917	// Iterator still in progress, wait for either a data or an error event
2918	select {
2919	case log := <-it.logs:
2920		it.Event = new(HermezAuctionProtocolNewOutbidding)
2921		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
2922			it.fail = err
2923			return false
2924		}
2925		it.Event.Raw = log
2926		return true
2927
2928	case err := <-it.sub.Err():
2929		it.done = true
2930		it.fail = err
2931		return it.Next()
2932	}
2933}
2934
2935// Error returns any retrieval or parsing error occurred during filtering.
2936func (it *HermezAuctionProtocolNewOutbiddingIterator) Error() error {
2937	return it.fail
2938}
2939
2940// Close terminates the iteration process, releasing any pending underlying
2941// resources.
2942func (it *HermezAuctionProtocolNewOutbiddingIterator) Close() error {
2943	it.sub.Unsubscribe()
2944	return nil
2945}
2946
2947// HermezAuctionProtocolNewOutbidding represents a NewOutbidding event raised by the HermezAuctionProtocol contract.
2948type HermezAuctionProtocolNewOutbidding struct {
2949	NewOutbidding uint8
2950	Raw           types.Log // Blockchain specific contextual infos
2951}
2952
2953// FilterNewOutbidding is a free log retrieval operation binding the contract event 0xbb54a221330f9969afbf14ba2ad1a2301a279cb9a86dc639af155c8af6eb5479.
2954//
2955// Solidity: event NewOutbidding(uint8 newOutbidding)
2956func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewOutbidding(opts *bind.FilterOpts) (*HermezAuctionProtocolNewOutbiddingIterator, error) {
2957
2958	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewOutbidding")
2959	if err != nil {
2960		return nil, err
2961	}
2962	return &HermezAuctionProtocolNewOutbiddingIterator{contract: _HermezAuctionProtocol.contract, event: "NewOutbidding", logs: logs, sub: sub}, nil
2963}
2964
2965// WatchNewOutbidding is a free log subscription operation binding the contract event 0xbb54a221330f9969afbf14ba2ad1a2301a279cb9a86dc639af155c8af6eb5479.
2966//
2967// Solidity: event NewOutbidding(uint8 newOutbidding)
2968func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewOutbidding(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewOutbidding) (event.Subscription, error) {
2969
2970	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewOutbidding")
2971	if err != nil {
2972		return nil, err
2973	}
2974	return event.NewSubscription(func(quit <-chan struct{}) error {
2975		defer sub.Unsubscribe()
2976		for {
2977			select {
2978			case log := <-logs:
2979				// New log arrived, parse the event and forward to the user
2980				event := new(HermezAuctionProtocolNewOutbidding)
2981				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewOutbidding", log); err != nil {
2982					return err
2983				}
2984				event.Raw = log
2985
2986				select {
2987				case sink <- event:
2988				case err := <-sub.Err():
2989					return err
2990				case <-quit:
2991					return nil
2992				}
2993			case err := <-sub.Err():
2994				return err
2995			case <-quit:
2996				return nil
2997			}
2998		}
2999	}), nil
3000}
3001
3002// ParseNewOutbidding is a log parse operation binding the contract event 0xbb54a221330f9969afbf14ba2ad1a2301a279cb9a86dc639af155c8af6eb5479.
3003//
3004// Solidity: event NewOutbidding(uint8 newOutbidding)
3005func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewOutbidding(log types.Log) (*HermezAuctionProtocolNewOutbidding, error) {
3006	event := new(HermezAuctionProtocolNewOutbidding)
3007	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewOutbidding", log); err != nil {
3008		return nil, err
3009	}
3010	return event, nil
3011}
3012
3013// 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.
3014type HermezAuctionProtocolNewSlotDeadlineIterator struct {
3015	Event *HermezAuctionProtocolNewSlotDeadline // Event containing the contract specifics and raw log
3016
3017	contract *bind.BoundContract // Generic contract to use for unpacking event data
3018	event    string              // Event name to use for unpacking event data
3019
3020	logs chan types.Log        // Log channel receiving the found contract events
3021	sub  ethereum.Subscription // Subscription for errors, completion and termination
3022	done bool                  // Whether the subscription completed delivering logs
3023	fail error                 // Occurred error to stop iteration
3024}
3025
3026// Next advances the iterator to the subsequent event, returning whether there
3027// are any more events found. In case of a retrieval or parsing error, false is
3028// returned and Error() can be queried for the exact failure.
3029func (it *HermezAuctionProtocolNewSlotDeadlineIterator) Next() bool {
3030	// If the iterator failed, stop iterating
3031	if it.fail != nil {
3032		return false
3033	}
3034	// If the iterator completed, deliver directly whatever's available
3035	if it.done {
3036		select {
3037		case log := <-it.logs:
3038			it.Event = new(HermezAuctionProtocolNewSlotDeadline)
3039			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
3040				it.fail = err
3041				return false
3042			}
3043			it.Event.Raw = log
3044			return true
3045
3046		default:
3047			return false
3048		}
3049	}
3050	// Iterator still in progress, wait for either a data or an error event
3051	select {
3052	case log := <-it.logs:
3053		it.Event = new(HermezAuctionProtocolNewSlotDeadline)
3054		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
3055			it.fail = err
3056			return false
3057		}
3058		it.Event.Raw = log
3059		return true
3060
3061	case err := <-it.sub.Err():
3062		it.done = true
3063		it.fail = err
3064		return it.Next()
3065	}
3066}
3067
3068// Error returns any retrieval or parsing error occurred during filtering.
3069func (it *HermezAuctionProtocolNewSlotDeadlineIterator) Error() error {
3070	return it.fail
3071}
3072
3073// Close terminates the iteration process, releasing any pending underlying
3074// resources.
3075func (it *HermezAuctionProtocolNewSlotDeadlineIterator) Close() error {
3076	it.sub.Unsubscribe()
3077	return nil
3078}
3079
3080// HermezAuctionProtocolNewSlotDeadline represents a NewSlotDeadline event raised by the HermezAuctionProtocol contract.
3081type HermezAuctionProtocolNewSlotDeadline struct {
3082	NewSlotDeadline uint8
3083	Raw             types.Log // Blockchain specific contextual infos
3084}
3085
3086// FilterNewSlotDeadline is a free log retrieval operation binding the contract event 0x4a0d90b611c15e02dbf23b10f35b936cf2c77665f8c77822d3eca131f9d986d3.
3087//
3088// Solidity: event NewSlotDeadline(uint8 newSlotDeadline)
3089func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterNewSlotDeadline(opts *bind.FilterOpts) (*HermezAuctionProtocolNewSlotDeadlineIterator, error) {
3090
3091	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "NewSlotDeadline")
3092	if err != nil {
3093		return nil, err
3094	}
3095	return &HermezAuctionProtocolNewSlotDeadlineIterator{contract: _HermezAuctionProtocol.contract, event: "NewSlotDeadline", logs: logs, sub: sub}, nil
3096}
3097
3098// WatchNewSlotDeadline is a free log subscription operation binding the contract event 0x4a0d90b611c15e02dbf23b10f35b936cf2c77665f8c77822d3eca131f9d986d3.
3099//
3100// Solidity: event NewSlotDeadline(uint8 newSlotDeadline)
3101func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchNewSlotDeadline(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolNewSlotDeadline) (event.Subscription, error) {
3102
3103	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "NewSlotDeadline")
3104	if err != nil {
3105		return nil, err
3106	}
3107	return event.NewSubscription(func(quit <-chan struct{}) error {
3108		defer sub.Unsubscribe()
3109		for {
3110			select {
3111			case log := <-logs:
3112				// New log arrived, parse the event and forward to the user
3113				event := new(HermezAuctionProtocolNewSlotDeadline)
3114				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewSlotDeadline", log); err != nil {
3115					return err
3116				}
3117				event.Raw = log
3118
3119				select {
3120				case sink <- event:
3121				case err := <-sub.Err():
3122					return err
3123				case <-quit:
3124					return nil
3125				}
3126			case err := <-sub.Err():
3127				return err
3128			case <-quit:
3129				return nil
3130			}
3131		}
3132	}), nil
3133}
3134
3135// ParseNewSlotDeadline is a log parse operation binding the contract event 0x4a0d90b611c15e02dbf23b10f35b936cf2c77665f8c77822d3eca131f9d986d3.
3136//
3137// Solidity: event NewSlotDeadline(uint8 newSlotDeadline)
3138func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseNewSlotDeadline(log types.Log) (*HermezAuctionProtocolNewSlotDeadline, error) {
3139	event := new(HermezAuctionProtocolNewSlotDeadline)
3140	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "NewSlotDeadline", log); err != nil {
3141		return nil, err
3142	}
3143	return event, nil
3144}
3145
3146// HermezAuctionProtocolOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the HermezAuctionProtocol contract.
3147type HermezAuctionProtocolOwnershipTransferredIterator struct {
3148	Event *HermezAuctionProtocolOwnershipTransferred // Event containing the contract specifics and raw log
3149
3150	contract *bind.BoundContract // Generic contract to use for unpacking event data
3151	event    string              // Event name to use for unpacking event data
3152
3153	logs chan types.Log        // Log channel receiving the found contract events
3154	sub  ethereum.Subscription // Subscription for errors, completion and termination
3155	done bool                  // Whether the subscription completed delivering logs
3156	fail error                 // Occurred error to stop iteration
3157}
3158
3159// Next advances the iterator to the subsequent event, returning whether there
3160// are any more events found. In case of a retrieval or parsing error, false is
3161// returned and Error() can be queried for the exact failure.
3162func (it *HermezAuctionProtocolOwnershipTransferredIterator) Next() bool {
3163	// If the iterator failed, stop iterating
3164	if it.fail != nil {
3165		return false
3166	}
3167	// If the iterator completed, deliver directly whatever's available
3168	if it.done {
3169		select {
3170		case log := <-it.logs:
3171			it.Event = new(HermezAuctionProtocolOwnershipTransferred)
3172			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
3173				it.fail = err
3174				return false
3175			}
3176			it.Event.Raw = log
3177			return true
3178
3179		default:
3180			return false
3181		}
3182	}
3183	// Iterator still in progress, wait for either a data or an error event
3184	select {
3185	case log := <-it.logs:
3186		it.Event = new(HermezAuctionProtocolOwnershipTransferred)
3187		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
3188			it.fail = err
3189			return false
3190		}
3191		it.Event.Raw = log
3192		return true
3193
3194	case err := <-it.sub.Err():
3195		it.done = true
3196		it.fail = err
3197		return it.Next()
3198	}
3199}
3200
3201// Error returns any retrieval or parsing error occurred during filtering.
3202func (it *HermezAuctionProtocolOwnershipTransferredIterator) Error() error {
3203	return it.fail
3204}
3205
3206// Close terminates the iteration process, releasing any pending underlying
3207// resources.
3208func (it *HermezAuctionProtocolOwnershipTransferredIterator) Close() error {
3209	it.sub.Unsubscribe()
3210	return nil
3211}
3212
3213// HermezAuctionProtocolOwnershipTransferred represents a OwnershipTransferred event raised by the HermezAuctionProtocol contract.
3214type HermezAuctionProtocolOwnershipTransferred struct {
3215	PreviousOwner common.Address
3216	NewOwner      common.Address
3217	Raw           types.Log // Blockchain specific contextual infos
3218}
3219
3220// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
3221//
3222// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
3223func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*HermezAuctionProtocolOwnershipTransferredIterator, error) {
3224
3225	var previousOwnerRule []interface{}
3226	for _, previousOwnerItem := range previousOwner {
3227		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
3228	}
3229	var newOwnerRule []interface{}
3230	for _, newOwnerItem := range newOwner {
3231		newOwnerRule = append(newOwnerRule, newOwnerItem)
3232	}
3233
3234	logs, sub, err := _HermezAuctionProtocol.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
3235	if err != nil {
3236		return nil, err
3237	}
3238	return &HermezAuctionProtocolOwnershipTransferredIterator{contract: _HermezAuctionProtocol.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
3239}
3240
3241// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
3242//
3243// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
3244func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *HermezAuctionProtocolOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
3245
3246	var previousOwnerRule []interface{}
3247	for _, previousOwnerItem := range previousOwner {
3248		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
3249	}
3250	var newOwnerRule []interface{}
3251	for _, newOwnerItem := range newOwner {
3252		newOwnerRule = append(newOwnerRule, newOwnerItem)
3253	}
3254
3255	logs, sub, err := _HermezAuctionProtocol.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
3256	if err != nil {
3257		return nil, err
3258	}
3259	return event.NewSubscription(func(quit <-chan struct{}) error {
3260		defer sub.Unsubscribe()
3261		for {
3262			select {
3263			case log := <-logs:
3264				// New log arrived, parse the event and forward to the user
3265				event := new(HermezAuctionProtocolOwnershipTransferred)
3266				if err := _HermezAuctionProtocol.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
3267					return err
3268				}
3269				event.Raw = log
3270
3271				select {
3272				case sink <- event:
3273				case err := <-sub.Err():
3274					return err
3275				case <-quit:
3276					return nil
3277				}
3278			case err := <-sub.Err():
3279				return err
3280			case <-quit:
3281				return nil
3282			}
3283		}
3284	}), nil
3285}
3286
3287// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
3288//
3289// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
3290func (_HermezAuctionProtocol *HermezAuctionProtocolFilterer) ParseOwnershipTransferred(log types.Log) (*HermezAuctionProtocolOwnershipTransferred, error) {
3291	event := new(HermezAuctionProtocolOwnershipTransferred)
3292	if err := _HermezAuctionProtocol.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
3293		return nil, err
3294	}
3295	return event, nil
3296}