github.com/diadata-org/diadata@v1.4.593/config/nftContracts/x2y2/x2y2.go (about)

     1  // Code generated - DO NOT EDIT.
     2  // This file is a generated binding and any manual changes will be lost.
     3  
     4  package x2y2
     5  
     6  import (
     7  	"errors"
     8  	"math/big"
     9  	"strings"
    10  
    11  	ethereum "github.com/ethereum/go-ethereum"
    12  	"github.com/ethereum/go-ethereum/accounts/abi"
    13  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    14  	"github.com/ethereum/go-ethereum/common"
    15  	"github.com/ethereum/go-ethereum/core/types"
    16  	"github.com/ethereum/go-ethereum/event"
    17  )
    18  
    19  // Reference imports to suppress errors if they are not otherwise used.
    20  var (
    21  	_ = errors.New
    22  	_ = big.NewInt
    23  	_ = strings.NewReader
    24  	_ = ethereum.NotFound
    25  	_ = bind.Bind
    26  	_ = common.Big1
    27  	_ = types.BloomLookup
    28  	_ = event.NewSubscription
    29  )
    30  
    31  // MarketFee is an auto generated low-level Go binding around an user-defined struct.
    32  type MarketFee struct {
    33  	Percentage *big.Int
    34  	To         common.Address
    35  }
    36  
    37  // MarketOrder is an auto generated low-level Go binding around an user-defined struct.
    38  type MarketOrder struct {
    39  	Salt         *big.Int
    40  	User         common.Address
    41  	Network      *big.Int
    42  	Intent       *big.Int
    43  	DelegateType *big.Int
    44  	Deadline     *big.Int
    45  	Currency     common.Address
    46  	DataMask     []byte
    47  	Items        []MarketOrderItem
    48  	R            [32]byte
    49  	S            [32]byte
    50  	V            uint8
    51  	SignVersion  uint8
    52  }
    53  
    54  // MarketOrderItem is an auto generated low-level Go binding around an user-defined struct.
    55  type MarketOrderItem struct {
    56  	Price *big.Int
    57  	Data  []byte
    58  }
    59  
    60  // MarketRunInput is an auto generated low-level Go binding around an user-defined struct.
    61  type MarketRunInput struct {
    62  	Orders  []MarketOrder
    63  	Details []MarketSettleDetail
    64  	Shared  MarketSettleShared
    65  	R       [32]byte
    66  	S       [32]byte
    67  	V       uint8
    68  }
    69  
    70  // MarketSettleDetail is an auto generated low-level Go binding around an user-defined struct.
    71  type MarketSettleDetail struct {
    72  	Op                 uint8
    73  	OrderIdx           *big.Int
    74  	ItemIdx            *big.Int
    75  	Price              *big.Int
    76  	ItemHash           [32]byte
    77  	ExecutionDelegate  common.Address
    78  	DataReplacement    []byte
    79  	BidIncentivePct    *big.Int
    80  	AucMinIncrementPct *big.Int
    81  	AucIncDurationSecs *big.Int
    82  	Fees               []MarketFee
    83  }
    84  
    85  // MarketSettleShared is an auto generated low-level Go binding around an user-defined struct.
    86  type MarketSettleShared struct {
    87  	Salt         *big.Int
    88  	Deadline     *big.Int
    89  	AmountToEth  *big.Int
    90  	AmountToWeth *big.Int
    91  	User         common.Address
    92  	CanFail      bool
    93  }
    94  
    95  // X2y2MetaData contains all meta data concerning the X2y2 contract.
    96  var X2y2MetaData = &bind.MetaData{
    97  	ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"itemHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"incentive\",\"type\":\"uint256\"}],\"name\":\"EvAuctionRefund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"itemHash\",\"type\":\"bytes32\"}],\"name\":\"EvCancel\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRemoval\",\"type\":\"bool\"}],\"name\":\"EvDelegate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"error\",\"type\":\"bytes\"}],\"name\":\"EvFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newValue\",\"type\":\"uint256\"}],\"name\":\"EvFeeCapUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"itemHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"taker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"orderSalt\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"settleSalt\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"intent\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delegateType\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"contractIERC20Upgradeable\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dataMask\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structMarket.OrderItem\",\"name\":\"item\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enumMarket.Op\",\"name\":\"op\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"orderIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"itemIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"itemHash\",\"type\":\"bytes32\"},{\"internalType\":\"contractIDelegate\",\"name\":\"executionDelegate\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"dataReplacement\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"bidIncentivePct\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aucMinIncrementPct\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aucIncDurationSecs\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"internalType\":\"structMarket.Fee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structMarket.SettleDetail\",\"name\":\"detail\",\"type\":\"tuple\"}],\"name\":\"EvInventory\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"itemHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EvProfit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isRemoval\",\"type\":\"bool\"}],\"name\":\"EvSigner\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"RATE_BASE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"itemHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeCapPct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"feeCapPct_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"weth_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"inventoryStatus\",\"outputs\":[{\"internalType\":\"enumMarket.InvStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"ongoingAuctions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endAt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"bidder\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"network\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delegateType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"contractIERC20Upgradeable\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"dataMask\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"structMarket.OrderItem[]\",\"name\":\"items\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"signVersion\",\"type\":\"uint8\"}],\"internalType\":\"structMarket.Order[]\",\"name\":\"orders\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enumMarket.Op\",\"name\":\"op\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"orderIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"itemIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"itemHash\",\"type\":\"bytes32\"},{\"internalType\":\"contractIDelegate\",\"name\":\"executionDelegate\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"dataReplacement\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"bidIncentivePct\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aucMinIncrementPct\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aucIncDurationSecs\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"internalType\":\"structMarket.Fee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"}],\"internalType\":\"structMarket.SettleDetail[]\",\"name\":\"details\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountToEth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountToWeth\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"canFail\",\"type\":\"bool\"}],\"internalType\":\"structMarket.SettleShared\",\"name\":\"shared\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"}],\"internalType\":\"structMarket.RunInput\",\"name\":\"input\",\"type\":\"tuple\"}],\"name\":\"run\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"network\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intent\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"delegateType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"contractIERC20Upgradeable\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"dataMask\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"structMarket.OrderItem[]\",\"name\":\"items\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"signVersion\",\"type\":\"uint8\"}],\"internalType\":\"structMarket.Order\",\"name\":\"order\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountToEth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountToWeth\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"canFail\",\"type\":\"bool\"}],\"internalType\":\"structMarket.SettleShared\",\"name\":\"shared\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enumMarket.Op\",\"name\":\"op\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"orderIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"itemIdx\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"itemHash\",\"type\":\"bytes32\"},{\"internalType\":\"contractIDelegate\",\"name\":\"executionDelegate\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"dataReplacement\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"bidIncentivePct\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aucMinIncrementPct\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aucIncDurationSecs\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"internalType\":\"structMarket.Fee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"}],\"internalType\":\"structMarket.SettleDetail\",\"name\":\"detail\",\"type\":\"tuple\"}],\"name\":\"run1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"signers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"toAdd\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"toRemove\",\"type\":\"address[]\"}],\"name\":\"updateDelegates\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"updateFeeCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"toAdd\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"toRemove\",\"type\":\"address[]\"}],\"name\":\"updateSigners\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weth\",\"outputs\":[{\"internalType\":\"contractIWETHUpgradable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]",
    98  }
    99  
   100  // X2y2ABI is the input ABI used to generate the binding from.
   101  // Deprecated: Use X2y2MetaData.ABI instead.
   102  var X2y2ABI = X2y2MetaData.ABI
   103  
   104  // X2y2 is an auto generated Go binding around an Ethereum contract.
   105  type X2y2 struct {
   106  	X2y2Caller     // Read-only binding to the contract
   107  	X2y2Transactor // Write-only binding to the contract
   108  	X2y2Filterer   // Log filterer for contract events
   109  }
   110  
   111  // X2y2Caller is an auto generated read-only Go binding around an Ethereum contract.
   112  type X2y2Caller struct {
   113  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   114  }
   115  
   116  // X2y2Transactor is an auto generated write-only Go binding around an Ethereum contract.
   117  type X2y2Transactor struct {
   118  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   119  }
   120  
   121  // X2y2Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
   122  type X2y2Filterer struct {
   123  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   124  }
   125  
   126  // X2y2Session is an auto generated Go binding around an Ethereum contract,
   127  // with pre-set call and transact options.
   128  type X2y2Session struct {
   129  	Contract     *X2y2             // Generic contract binding to set the session for
   130  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   131  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   132  }
   133  
   134  // X2y2CallerSession is an auto generated read-only Go binding around an Ethereum contract,
   135  // with pre-set call options.
   136  type X2y2CallerSession struct {
   137  	Contract *X2y2Caller   // Generic contract caller binding to set the session for
   138  	CallOpts bind.CallOpts // Call options to use throughout this session
   139  }
   140  
   141  // X2y2TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   142  // with pre-set transact options.
   143  type X2y2TransactorSession struct {
   144  	Contract     *X2y2Transactor   // Generic contract transactor binding to set the session for
   145  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   146  }
   147  
   148  // X2y2Raw is an auto generated low-level Go binding around an Ethereum contract.
   149  type X2y2Raw struct {
   150  	Contract *X2y2 // Generic contract binding to access the raw methods on
   151  }
   152  
   153  // X2y2CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   154  type X2y2CallerRaw struct {
   155  	Contract *X2y2Caller // Generic read-only contract binding to access the raw methods on
   156  }
   157  
   158  // X2y2TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   159  type X2y2TransactorRaw struct {
   160  	Contract *X2y2Transactor // Generic write-only contract binding to access the raw methods on
   161  }
   162  
   163  // NewX2y2 creates a new instance of X2y2, bound to a specific deployed contract.
   164  func NewX2y2(address common.Address, backend bind.ContractBackend) (*X2y2, error) {
   165  	contract, err := bindX2y2(address, backend, backend, backend)
   166  	if err != nil {
   167  		return nil, err
   168  	}
   169  	return &X2y2{X2y2Caller: X2y2Caller{contract: contract}, X2y2Transactor: X2y2Transactor{contract: contract}, X2y2Filterer: X2y2Filterer{contract: contract}}, nil
   170  }
   171  
   172  // NewX2y2Caller creates a new read-only instance of X2y2, bound to a specific deployed contract.
   173  func NewX2y2Caller(address common.Address, caller bind.ContractCaller) (*X2y2Caller, error) {
   174  	contract, err := bindX2y2(address, caller, nil, nil)
   175  	if err != nil {
   176  		return nil, err
   177  	}
   178  	return &X2y2Caller{contract: contract}, nil
   179  }
   180  
   181  // NewX2y2Transactor creates a new write-only instance of X2y2, bound to a specific deployed contract.
   182  func NewX2y2Transactor(address common.Address, transactor bind.ContractTransactor) (*X2y2Transactor, error) {
   183  	contract, err := bindX2y2(address, nil, transactor, nil)
   184  	if err != nil {
   185  		return nil, err
   186  	}
   187  	return &X2y2Transactor{contract: contract}, nil
   188  }
   189  
   190  // NewX2y2Filterer creates a new log filterer instance of X2y2, bound to a specific deployed contract.
   191  func NewX2y2Filterer(address common.Address, filterer bind.ContractFilterer) (*X2y2Filterer, error) {
   192  	contract, err := bindX2y2(address, nil, nil, filterer)
   193  	if err != nil {
   194  		return nil, err
   195  	}
   196  	return &X2y2Filterer{contract: contract}, nil
   197  }
   198  
   199  // bindX2y2 binds a generic wrapper to an already deployed contract.
   200  func bindX2y2(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   201  	parsed, err := abi.JSON(strings.NewReader(X2y2ABI))
   202  	if err != nil {
   203  		return nil, err
   204  	}
   205  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   206  }
   207  
   208  // Call invokes the (constant) contract method with params as input values and
   209  // sets the output to result. The result type might be a single field for simple
   210  // returns, a slice of interfaces for anonymous returns and a struct for named
   211  // returns.
   212  func (_X2y2 *X2y2Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   213  	return _X2y2.Contract.X2y2Caller.contract.Call(opts, result, method, params...)
   214  }
   215  
   216  // Transfer initiates a plain transaction to move funds to the contract, calling
   217  // its default method if one is available.
   218  func (_X2y2 *X2y2Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   219  	return _X2y2.Contract.X2y2Transactor.contract.Transfer(opts)
   220  }
   221  
   222  // Transact invokes the (paid) contract method with params as input values.
   223  func (_X2y2 *X2y2Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   224  	return _X2y2.Contract.X2y2Transactor.contract.Transact(opts, method, params...)
   225  }
   226  
   227  // Call invokes the (constant) contract method with params as input values and
   228  // sets the output to result. The result type might be a single field for simple
   229  // returns, a slice of interfaces for anonymous returns and a struct for named
   230  // returns.
   231  func (_X2y2 *X2y2CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   232  	return _X2y2.Contract.contract.Call(opts, result, method, params...)
   233  }
   234  
   235  // Transfer initiates a plain transaction to move funds to the contract, calling
   236  // its default method if one is available.
   237  func (_X2y2 *X2y2TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   238  	return _X2y2.Contract.contract.Transfer(opts)
   239  }
   240  
   241  // Transact invokes the (paid) contract method with params as input values.
   242  func (_X2y2 *X2y2TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   243  	return _X2y2.Contract.contract.Transact(opts, method, params...)
   244  }
   245  
   246  // RATEBASE is a free data retrieval call binding the contract method 0x0873c6ec.
   247  //
   248  // Solidity: function RATE_BASE() view returns(uint256)
   249  func (_X2y2 *X2y2Caller) RATEBASE(opts *bind.CallOpts) (*big.Int, error) {
   250  	var out []interface{}
   251  	err := _X2y2.contract.Call(opts, &out, "RATE_BASE")
   252  
   253  	if err != nil {
   254  		return *new(*big.Int), err
   255  	}
   256  
   257  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   258  
   259  	return out0, err
   260  
   261  }
   262  
   263  // RATEBASE is a free data retrieval call binding the contract method 0x0873c6ec.
   264  //
   265  // Solidity: function RATE_BASE() view returns(uint256)
   266  func (_X2y2 *X2y2Session) RATEBASE() (*big.Int, error) {
   267  	return _X2y2.Contract.RATEBASE(&_X2y2.CallOpts)
   268  }
   269  
   270  // RATEBASE is a free data retrieval call binding the contract method 0x0873c6ec.
   271  //
   272  // Solidity: function RATE_BASE() view returns(uint256)
   273  func (_X2y2 *X2y2CallerSession) RATEBASE() (*big.Int, error) {
   274  	return _X2y2.Contract.RATEBASE(&_X2y2.CallOpts)
   275  }
   276  
   277  // Delegates is a free data retrieval call binding the contract method 0x587cde1e.
   278  //
   279  // Solidity: function delegates(address ) view returns(bool)
   280  func (_X2y2 *X2y2Caller) Delegates(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
   281  	var out []interface{}
   282  	err := _X2y2.contract.Call(opts, &out, "delegates", arg0)
   283  
   284  	if err != nil {
   285  		return *new(bool), err
   286  	}
   287  
   288  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   289  
   290  	return out0, err
   291  
   292  }
   293  
   294  // Delegates is a free data retrieval call binding the contract method 0x587cde1e.
   295  //
   296  // Solidity: function delegates(address ) view returns(bool)
   297  func (_X2y2 *X2y2Session) Delegates(arg0 common.Address) (bool, error) {
   298  	return _X2y2.Contract.Delegates(&_X2y2.CallOpts, arg0)
   299  }
   300  
   301  // Delegates is a free data retrieval call binding the contract method 0x587cde1e.
   302  //
   303  // Solidity: function delegates(address ) view returns(bool)
   304  func (_X2y2 *X2y2CallerSession) Delegates(arg0 common.Address) (bool, error) {
   305  	return _X2y2.Contract.Delegates(&_X2y2.CallOpts, arg0)
   306  }
   307  
   308  // FeeCapPct is a free data retrieval call binding the contract method 0x9fb51467.
   309  //
   310  // Solidity: function feeCapPct() view returns(uint256)
   311  func (_X2y2 *X2y2Caller) FeeCapPct(opts *bind.CallOpts) (*big.Int, error) {
   312  	var out []interface{}
   313  	err := _X2y2.contract.Call(opts, &out, "feeCapPct")
   314  
   315  	if err != nil {
   316  		return *new(*big.Int), err
   317  	}
   318  
   319  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   320  
   321  	return out0, err
   322  
   323  }
   324  
   325  // FeeCapPct is a free data retrieval call binding the contract method 0x9fb51467.
   326  //
   327  // Solidity: function feeCapPct() view returns(uint256)
   328  func (_X2y2 *X2y2Session) FeeCapPct() (*big.Int, error) {
   329  	return _X2y2.Contract.FeeCapPct(&_X2y2.CallOpts)
   330  }
   331  
   332  // FeeCapPct is a free data retrieval call binding the contract method 0x9fb51467.
   333  //
   334  // Solidity: function feeCapPct() view returns(uint256)
   335  func (_X2y2 *X2y2CallerSession) FeeCapPct() (*big.Int, error) {
   336  	return _X2y2.Contract.FeeCapPct(&_X2y2.CallOpts)
   337  }
   338  
   339  // InventoryStatus is a free data retrieval call binding the contract method 0x912c860c.
   340  //
   341  // Solidity: function inventoryStatus(bytes32 ) view returns(uint8)
   342  func (_X2y2 *X2y2Caller) InventoryStatus(opts *bind.CallOpts, arg0 [32]byte) (uint8, error) {
   343  	var out []interface{}
   344  	err := _X2y2.contract.Call(opts, &out, "inventoryStatus", arg0)
   345  
   346  	if err != nil {
   347  		return *new(uint8), err
   348  	}
   349  
   350  	out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8)
   351  
   352  	return out0, err
   353  
   354  }
   355  
   356  // InventoryStatus is a free data retrieval call binding the contract method 0x912c860c.
   357  //
   358  // Solidity: function inventoryStatus(bytes32 ) view returns(uint8)
   359  func (_X2y2 *X2y2Session) InventoryStatus(arg0 [32]byte) (uint8, error) {
   360  	return _X2y2.Contract.InventoryStatus(&_X2y2.CallOpts, arg0)
   361  }
   362  
   363  // InventoryStatus is a free data retrieval call binding the contract method 0x912c860c.
   364  //
   365  // Solidity: function inventoryStatus(bytes32 ) view returns(uint8)
   366  func (_X2y2 *X2y2CallerSession) InventoryStatus(arg0 [32]byte) (uint8, error) {
   367  	return _X2y2.Contract.InventoryStatus(&_X2y2.CallOpts, arg0)
   368  }
   369  
   370  // OngoingAuctions is a free data retrieval call binding the contract method 0xea805917.
   371  //
   372  // Solidity: function ongoingAuctions(bytes32 ) view returns(uint256 price, uint256 netPrice, uint256 endAt, address bidder)
   373  func (_X2y2 *X2y2Caller) OngoingAuctions(opts *bind.CallOpts, arg0 [32]byte) (struct {
   374  	Price    *big.Int
   375  	NetPrice *big.Int
   376  	EndAt    *big.Int
   377  	Bidder   common.Address
   378  }, error) {
   379  	var out []interface{}
   380  	err := _X2y2.contract.Call(opts, &out, "ongoingAuctions", arg0)
   381  
   382  	outstruct := new(struct {
   383  		Price    *big.Int
   384  		NetPrice *big.Int
   385  		EndAt    *big.Int
   386  		Bidder   common.Address
   387  	})
   388  	if err != nil {
   389  		return *outstruct, err
   390  	}
   391  
   392  	outstruct.Price = *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   393  	outstruct.NetPrice = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int)
   394  	outstruct.EndAt = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int)
   395  	outstruct.Bidder = *abi.ConvertType(out[3], new(common.Address)).(*common.Address)
   396  
   397  	return *outstruct, err
   398  
   399  }
   400  
   401  // OngoingAuctions is a free data retrieval call binding the contract method 0xea805917.
   402  //
   403  // Solidity: function ongoingAuctions(bytes32 ) view returns(uint256 price, uint256 netPrice, uint256 endAt, address bidder)
   404  func (_X2y2 *X2y2Session) OngoingAuctions(arg0 [32]byte) (struct {
   405  	Price    *big.Int
   406  	NetPrice *big.Int
   407  	EndAt    *big.Int
   408  	Bidder   common.Address
   409  }, error) {
   410  	return _X2y2.Contract.OngoingAuctions(&_X2y2.CallOpts, arg0)
   411  }
   412  
   413  // OngoingAuctions is a free data retrieval call binding the contract method 0xea805917.
   414  //
   415  // Solidity: function ongoingAuctions(bytes32 ) view returns(uint256 price, uint256 netPrice, uint256 endAt, address bidder)
   416  func (_X2y2 *X2y2CallerSession) OngoingAuctions(arg0 [32]byte) (struct {
   417  	Price    *big.Int
   418  	NetPrice *big.Int
   419  	EndAt    *big.Int
   420  	Bidder   common.Address
   421  }, error) {
   422  	return _X2y2.Contract.OngoingAuctions(&_X2y2.CallOpts, arg0)
   423  }
   424  
   425  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   426  //
   427  // Solidity: function owner() view returns(address)
   428  func (_X2y2 *X2y2Caller) Owner(opts *bind.CallOpts) (common.Address, error) {
   429  	var out []interface{}
   430  	err := _X2y2.contract.Call(opts, &out, "owner")
   431  
   432  	if err != nil {
   433  		return *new(common.Address), err
   434  	}
   435  
   436  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   437  
   438  	return out0, err
   439  
   440  }
   441  
   442  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   443  //
   444  // Solidity: function owner() view returns(address)
   445  func (_X2y2 *X2y2Session) Owner() (common.Address, error) {
   446  	return _X2y2.Contract.Owner(&_X2y2.CallOpts)
   447  }
   448  
   449  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   450  //
   451  // Solidity: function owner() view returns(address)
   452  func (_X2y2 *X2y2CallerSession) Owner() (common.Address, error) {
   453  	return _X2y2.Contract.Owner(&_X2y2.CallOpts)
   454  }
   455  
   456  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
   457  //
   458  // Solidity: function paused() view returns(bool)
   459  func (_X2y2 *X2y2Caller) Paused(opts *bind.CallOpts) (bool, error) {
   460  	var out []interface{}
   461  	err := _X2y2.contract.Call(opts, &out, "paused")
   462  
   463  	if err != nil {
   464  		return *new(bool), err
   465  	}
   466  
   467  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   468  
   469  	return out0, err
   470  
   471  }
   472  
   473  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
   474  //
   475  // Solidity: function paused() view returns(bool)
   476  func (_X2y2 *X2y2Session) Paused() (bool, error) {
   477  	return _X2y2.Contract.Paused(&_X2y2.CallOpts)
   478  }
   479  
   480  // Paused is a free data retrieval call binding the contract method 0x5c975abb.
   481  //
   482  // Solidity: function paused() view returns(bool)
   483  func (_X2y2 *X2y2CallerSession) Paused() (bool, error) {
   484  	return _X2y2.Contract.Paused(&_X2y2.CallOpts)
   485  }
   486  
   487  // Signers is a free data retrieval call binding the contract method 0x736c0d5b.
   488  //
   489  // Solidity: function signers(address ) view returns(bool)
   490  func (_X2y2 *X2y2Caller) Signers(opts *bind.CallOpts, arg0 common.Address) (bool, error) {
   491  	var out []interface{}
   492  	err := _X2y2.contract.Call(opts, &out, "signers", arg0)
   493  
   494  	if err != nil {
   495  		return *new(bool), err
   496  	}
   497  
   498  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   499  
   500  	return out0, err
   501  
   502  }
   503  
   504  // Signers is a free data retrieval call binding the contract method 0x736c0d5b.
   505  //
   506  // Solidity: function signers(address ) view returns(bool)
   507  func (_X2y2 *X2y2Session) Signers(arg0 common.Address) (bool, error) {
   508  	return _X2y2.Contract.Signers(&_X2y2.CallOpts, arg0)
   509  }
   510  
   511  // Signers is a free data retrieval call binding the contract method 0x736c0d5b.
   512  //
   513  // Solidity: function signers(address ) view returns(bool)
   514  func (_X2y2 *X2y2CallerSession) Signers(arg0 common.Address) (bool, error) {
   515  	return _X2y2.Contract.Signers(&_X2y2.CallOpts, arg0)
   516  }
   517  
   518  // Weth is a free data retrieval call binding the contract method 0x3fc8cef3.
   519  //
   520  // Solidity: function weth() view returns(address)
   521  func (_X2y2 *X2y2Caller) Weth(opts *bind.CallOpts) (common.Address, error) {
   522  	var out []interface{}
   523  	err := _X2y2.contract.Call(opts, &out, "weth")
   524  
   525  	if err != nil {
   526  		return *new(common.Address), err
   527  	}
   528  
   529  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   530  
   531  	return out0, err
   532  
   533  }
   534  
   535  // Weth is a free data retrieval call binding the contract method 0x3fc8cef3.
   536  //
   537  // Solidity: function weth() view returns(address)
   538  func (_X2y2 *X2y2Session) Weth() (common.Address, error) {
   539  	return _X2y2.Contract.Weth(&_X2y2.CallOpts)
   540  }
   541  
   542  // Weth is a free data retrieval call binding the contract method 0x3fc8cef3.
   543  //
   544  // Solidity: function weth() view returns(address)
   545  func (_X2y2 *X2y2CallerSession) Weth() (common.Address, error) {
   546  	return _X2y2.Contract.Weth(&_X2y2.CallOpts)
   547  }
   548  
   549  // Cancel is a paid mutator transaction binding the contract method 0x2295f9bf.
   550  //
   551  // Solidity: function cancel(bytes32[] itemHashes, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns()
   552  func (_X2y2 *X2y2Transactor) Cancel(opts *bind.TransactOpts, itemHashes [][32]byte, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
   553  	return _X2y2.contract.Transact(opts, "cancel", itemHashes, deadline, v, r, s)
   554  }
   555  
   556  // Cancel is a paid mutator transaction binding the contract method 0x2295f9bf.
   557  //
   558  // Solidity: function cancel(bytes32[] itemHashes, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns()
   559  func (_X2y2 *X2y2Session) Cancel(itemHashes [][32]byte, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
   560  	return _X2y2.Contract.Cancel(&_X2y2.TransactOpts, itemHashes, deadline, v, r, s)
   561  }
   562  
   563  // Cancel is a paid mutator transaction binding the contract method 0x2295f9bf.
   564  //
   565  // Solidity: function cancel(bytes32[] itemHashes, uint256 deadline, uint8 v, bytes32 r, bytes32 s) returns()
   566  func (_X2y2 *X2y2TransactorSession) Cancel(itemHashes [][32]byte, deadline *big.Int, v uint8, r [32]byte, s [32]byte) (*types.Transaction, error) {
   567  	return _X2y2.Contract.Cancel(&_X2y2.TransactOpts, itemHashes, deadline, v, r, s)
   568  }
   569  
   570  // Initialize is a paid mutator transaction binding the contract method 0xda35a26f.
   571  //
   572  // Solidity: function initialize(uint256 feeCapPct_, address weth_) returns()
   573  func (_X2y2 *X2y2Transactor) Initialize(opts *bind.TransactOpts, feeCapPct_ *big.Int, weth_ common.Address) (*types.Transaction, error) {
   574  	return _X2y2.contract.Transact(opts, "initialize", feeCapPct_, weth_)
   575  }
   576  
   577  // Initialize is a paid mutator transaction binding the contract method 0xda35a26f.
   578  //
   579  // Solidity: function initialize(uint256 feeCapPct_, address weth_) returns()
   580  func (_X2y2 *X2y2Session) Initialize(feeCapPct_ *big.Int, weth_ common.Address) (*types.Transaction, error) {
   581  	return _X2y2.Contract.Initialize(&_X2y2.TransactOpts, feeCapPct_, weth_)
   582  }
   583  
   584  // Initialize is a paid mutator transaction binding the contract method 0xda35a26f.
   585  //
   586  // Solidity: function initialize(uint256 feeCapPct_, address weth_) returns()
   587  func (_X2y2 *X2y2TransactorSession) Initialize(feeCapPct_ *big.Int, weth_ common.Address) (*types.Transaction, error) {
   588  	return _X2y2.Contract.Initialize(&_X2y2.TransactOpts, feeCapPct_, weth_)
   589  }
   590  
   591  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
   592  //
   593  // Solidity: function pause() returns()
   594  func (_X2y2 *X2y2Transactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
   595  	return _X2y2.contract.Transact(opts, "pause")
   596  }
   597  
   598  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
   599  //
   600  // Solidity: function pause() returns()
   601  func (_X2y2 *X2y2Session) Pause() (*types.Transaction, error) {
   602  	return _X2y2.Contract.Pause(&_X2y2.TransactOpts)
   603  }
   604  
   605  // Pause is a paid mutator transaction binding the contract method 0x8456cb59.
   606  //
   607  // Solidity: function pause() returns()
   608  func (_X2y2 *X2y2TransactorSession) Pause() (*types.Transaction, error) {
   609  	return _X2y2.Contract.Pause(&_X2y2.TransactOpts)
   610  }
   611  
   612  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   613  //
   614  // Solidity: function renounceOwnership() returns()
   615  func (_X2y2 *X2y2Transactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
   616  	return _X2y2.contract.Transact(opts, "renounceOwnership")
   617  }
   618  
   619  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   620  //
   621  // Solidity: function renounceOwnership() returns()
   622  func (_X2y2 *X2y2Session) RenounceOwnership() (*types.Transaction, error) {
   623  	return _X2y2.Contract.RenounceOwnership(&_X2y2.TransactOpts)
   624  }
   625  
   626  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   627  //
   628  // Solidity: function renounceOwnership() returns()
   629  func (_X2y2 *X2y2TransactorSession) RenounceOwnership() (*types.Transaction, error) {
   630  	return _X2y2.Contract.RenounceOwnership(&_X2y2.TransactOpts)
   631  }
   632  
   633  // Run is a paid mutator transaction binding the contract method 0x357a150b.
   634  //
   635  // Solidity: function run(((uint256,address,uint256,uint256,uint256,uint256,address,bytes,(uint256,bytes)[],bytes32,bytes32,uint8,uint8)[],(uint8,uint256,uint256,uint256,bytes32,address,bytes,uint256,uint256,uint256,(uint256,address)[])[],(uint256,uint256,uint256,uint256,address,bool),bytes32,bytes32,uint8) input) payable returns()
   636  func (_X2y2 *X2y2Transactor) Run(opts *bind.TransactOpts, input MarketRunInput) (*types.Transaction, error) {
   637  	return _X2y2.contract.Transact(opts, "run", input)
   638  }
   639  
   640  // Run is a paid mutator transaction binding the contract method 0x357a150b.
   641  //
   642  // Solidity: function run(((uint256,address,uint256,uint256,uint256,uint256,address,bytes,(uint256,bytes)[],bytes32,bytes32,uint8,uint8)[],(uint8,uint256,uint256,uint256,bytes32,address,bytes,uint256,uint256,uint256,(uint256,address)[])[],(uint256,uint256,uint256,uint256,address,bool),bytes32,bytes32,uint8) input) payable returns()
   643  func (_X2y2 *X2y2Session) Run(input MarketRunInput) (*types.Transaction, error) {
   644  	return _X2y2.Contract.Run(&_X2y2.TransactOpts, input)
   645  }
   646  
   647  // Run is a paid mutator transaction binding the contract method 0x357a150b.
   648  //
   649  // Solidity: function run(((uint256,address,uint256,uint256,uint256,uint256,address,bytes,(uint256,bytes)[],bytes32,bytes32,uint8,uint8)[],(uint8,uint256,uint256,uint256,bytes32,address,bytes,uint256,uint256,uint256,(uint256,address)[])[],(uint256,uint256,uint256,uint256,address,bool),bytes32,bytes32,uint8) input) payable returns()
   650  func (_X2y2 *X2y2TransactorSession) Run(input MarketRunInput) (*types.Transaction, error) {
   651  	return _X2y2.Contract.Run(&_X2y2.TransactOpts, input)
   652  }
   653  
   654  // Run1 is a paid mutator transaction binding the contract method 0xd95e3c54.
   655  //
   656  // Solidity: function run1((uint256,address,uint256,uint256,uint256,uint256,address,bytes,(uint256,bytes)[],bytes32,bytes32,uint8,uint8) order, (uint256,uint256,uint256,uint256,address,bool) shared, (uint8,uint256,uint256,uint256,bytes32,address,bytes,uint256,uint256,uint256,(uint256,address)[]) detail) returns(uint256)
   657  func (_X2y2 *X2y2Transactor) Run1(opts *bind.TransactOpts, order MarketOrder, shared MarketSettleShared, detail MarketSettleDetail) (*types.Transaction, error) {
   658  	return _X2y2.contract.Transact(opts, "run1", order, shared, detail)
   659  }
   660  
   661  // Run1 is a paid mutator transaction binding the contract method 0xd95e3c54.
   662  //
   663  // Solidity: function run1((uint256,address,uint256,uint256,uint256,uint256,address,bytes,(uint256,bytes)[],bytes32,bytes32,uint8,uint8) order, (uint256,uint256,uint256,uint256,address,bool) shared, (uint8,uint256,uint256,uint256,bytes32,address,bytes,uint256,uint256,uint256,(uint256,address)[]) detail) returns(uint256)
   664  func (_X2y2 *X2y2Session) Run1(order MarketOrder, shared MarketSettleShared, detail MarketSettleDetail) (*types.Transaction, error) {
   665  	return _X2y2.Contract.Run1(&_X2y2.TransactOpts, order, shared, detail)
   666  }
   667  
   668  // Run1 is a paid mutator transaction binding the contract method 0xd95e3c54.
   669  //
   670  // Solidity: function run1((uint256,address,uint256,uint256,uint256,uint256,address,bytes,(uint256,bytes)[],bytes32,bytes32,uint8,uint8) order, (uint256,uint256,uint256,uint256,address,bool) shared, (uint8,uint256,uint256,uint256,bytes32,address,bytes,uint256,uint256,uint256,(uint256,address)[]) detail) returns(uint256)
   671  func (_X2y2 *X2y2TransactorSession) Run1(order MarketOrder, shared MarketSettleShared, detail MarketSettleDetail) (*types.Transaction, error) {
   672  	return _X2y2.Contract.Run1(&_X2y2.TransactOpts, order, shared, detail)
   673  }
   674  
   675  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   676  //
   677  // Solidity: function transferOwnership(address newOwner) returns()
   678  func (_X2y2 *X2y2Transactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
   679  	return _X2y2.contract.Transact(opts, "transferOwnership", newOwner)
   680  }
   681  
   682  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   683  //
   684  // Solidity: function transferOwnership(address newOwner) returns()
   685  func (_X2y2 *X2y2Session) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   686  	return _X2y2.Contract.TransferOwnership(&_X2y2.TransactOpts, newOwner)
   687  }
   688  
   689  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   690  //
   691  // Solidity: function transferOwnership(address newOwner) returns()
   692  func (_X2y2 *X2y2TransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   693  	return _X2y2.Contract.TransferOwnership(&_X2y2.TransactOpts, newOwner)
   694  }
   695  
   696  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
   697  //
   698  // Solidity: function unpause() returns()
   699  func (_X2y2 *X2y2Transactor) Unpause(opts *bind.TransactOpts) (*types.Transaction, error) {
   700  	return _X2y2.contract.Transact(opts, "unpause")
   701  }
   702  
   703  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
   704  //
   705  // Solidity: function unpause() returns()
   706  func (_X2y2 *X2y2Session) Unpause() (*types.Transaction, error) {
   707  	return _X2y2.Contract.Unpause(&_X2y2.TransactOpts)
   708  }
   709  
   710  // Unpause is a paid mutator transaction binding the contract method 0x3f4ba83a.
   711  //
   712  // Solidity: function unpause() returns()
   713  func (_X2y2 *X2y2TransactorSession) Unpause() (*types.Transaction, error) {
   714  	return _X2y2.Contract.Unpause(&_X2y2.TransactOpts)
   715  }
   716  
   717  // UpdateDelegates is a paid mutator transaction binding the contract method 0xe59f739a.
   718  //
   719  // Solidity: function updateDelegates(address[] toAdd, address[] toRemove) returns()
   720  func (_X2y2 *X2y2Transactor) UpdateDelegates(opts *bind.TransactOpts, toAdd []common.Address, toRemove []common.Address) (*types.Transaction, error) {
   721  	return _X2y2.contract.Transact(opts, "updateDelegates", toAdd, toRemove)
   722  }
   723  
   724  // UpdateDelegates is a paid mutator transaction binding the contract method 0xe59f739a.
   725  //
   726  // Solidity: function updateDelegates(address[] toAdd, address[] toRemove) returns()
   727  func (_X2y2 *X2y2Session) UpdateDelegates(toAdd []common.Address, toRemove []common.Address) (*types.Transaction, error) {
   728  	return _X2y2.Contract.UpdateDelegates(&_X2y2.TransactOpts, toAdd, toRemove)
   729  }
   730  
   731  // UpdateDelegates is a paid mutator transaction binding the contract method 0xe59f739a.
   732  //
   733  // Solidity: function updateDelegates(address[] toAdd, address[] toRemove) returns()
   734  func (_X2y2 *X2y2TransactorSession) UpdateDelegates(toAdd []common.Address, toRemove []common.Address) (*types.Transaction, error) {
   735  	return _X2y2.Contract.UpdateDelegates(&_X2y2.TransactOpts, toAdd, toRemove)
   736  }
   737  
   738  // UpdateFeeCap is a paid mutator transaction binding the contract method 0x95835fea.
   739  //
   740  // Solidity: function updateFeeCap(uint256 val) returns()
   741  func (_X2y2 *X2y2Transactor) UpdateFeeCap(opts *bind.TransactOpts, val *big.Int) (*types.Transaction, error) {
   742  	return _X2y2.contract.Transact(opts, "updateFeeCap", val)
   743  }
   744  
   745  // UpdateFeeCap is a paid mutator transaction binding the contract method 0x95835fea.
   746  //
   747  // Solidity: function updateFeeCap(uint256 val) returns()
   748  func (_X2y2 *X2y2Session) UpdateFeeCap(val *big.Int) (*types.Transaction, error) {
   749  	return _X2y2.Contract.UpdateFeeCap(&_X2y2.TransactOpts, val)
   750  }
   751  
   752  // UpdateFeeCap is a paid mutator transaction binding the contract method 0x95835fea.
   753  //
   754  // Solidity: function updateFeeCap(uint256 val) returns()
   755  func (_X2y2 *X2y2TransactorSession) UpdateFeeCap(val *big.Int) (*types.Transaction, error) {
   756  	return _X2y2.Contract.UpdateFeeCap(&_X2y2.TransactOpts, val)
   757  }
   758  
   759  // UpdateSigners is a paid mutator transaction binding the contract method 0x350b2369.
   760  //
   761  // Solidity: function updateSigners(address[] toAdd, address[] toRemove) returns()
   762  func (_X2y2 *X2y2Transactor) UpdateSigners(opts *bind.TransactOpts, toAdd []common.Address, toRemove []common.Address) (*types.Transaction, error) {
   763  	return _X2y2.contract.Transact(opts, "updateSigners", toAdd, toRemove)
   764  }
   765  
   766  // UpdateSigners is a paid mutator transaction binding the contract method 0x350b2369.
   767  //
   768  // Solidity: function updateSigners(address[] toAdd, address[] toRemove) returns()
   769  func (_X2y2 *X2y2Session) UpdateSigners(toAdd []common.Address, toRemove []common.Address) (*types.Transaction, error) {
   770  	return _X2y2.Contract.UpdateSigners(&_X2y2.TransactOpts, toAdd, toRemove)
   771  }
   772  
   773  // UpdateSigners is a paid mutator transaction binding the contract method 0x350b2369.
   774  //
   775  // Solidity: function updateSigners(address[] toAdd, address[] toRemove) returns()
   776  func (_X2y2 *X2y2TransactorSession) UpdateSigners(toAdd []common.Address, toRemove []common.Address) (*types.Transaction, error) {
   777  	return _X2y2.Contract.UpdateSigners(&_X2y2.TransactOpts, toAdd, toRemove)
   778  }
   779  
   780  // Receive is a paid mutator transaction binding the contract receive function.
   781  //
   782  // Solidity: receive() payable returns()
   783  func (_X2y2 *X2y2Transactor) Receive(opts *bind.TransactOpts) (*types.Transaction, error) {
   784  	return _X2y2.contract.RawTransact(opts, nil) // calldata is disallowed for receive function
   785  }
   786  
   787  // Receive is a paid mutator transaction binding the contract receive function.
   788  //
   789  // Solidity: receive() payable returns()
   790  func (_X2y2 *X2y2Session) Receive() (*types.Transaction, error) {
   791  	return _X2y2.Contract.Receive(&_X2y2.TransactOpts)
   792  }
   793  
   794  // Receive is a paid mutator transaction binding the contract receive function.
   795  //
   796  // Solidity: receive() payable returns()
   797  func (_X2y2 *X2y2TransactorSession) Receive() (*types.Transaction, error) {
   798  	return _X2y2.Contract.Receive(&_X2y2.TransactOpts)
   799  }
   800  
   801  // X2y2EvAuctionRefundIterator is returned from FilterEvAuctionRefund and is used to iterate over the raw logs and unpacked data for EvAuctionRefund events raised by the X2y2 contract.
   802  type X2y2EvAuctionRefundIterator struct {
   803  	Event *X2y2EvAuctionRefund // Event containing the contract specifics and raw log
   804  
   805  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   806  	event    string              // Event name to use for unpacking event data
   807  
   808  	logs chan types.Log        // Log channel receiving the found contract events
   809  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   810  	done bool                  // Whether the subscription completed delivering logs
   811  	fail error                 // Occurred error to stop iteration
   812  }
   813  
   814  // Next advances the iterator to the subsequent event, returning whether there
   815  // are any more events found. In case of a retrieval or parsing error, false is
   816  // returned and Error() can be queried for the exact failure.
   817  func (it *X2y2EvAuctionRefundIterator) Next() bool {
   818  	// If the iterator failed, stop iterating
   819  	if it.fail != nil {
   820  		return false
   821  	}
   822  	// If the iterator completed, deliver directly whatever's available
   823  	if it.done {
   824  		select {
   825  		case log := <-it.logs:
   826  			it.Event = new(X2y2EvAuctionRefund)
   827  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   828  				it.fail = err
   829  				return false
   830  			}
   831  			it.Event.Raw = log
   832  			return true
   833  
   834  		default:
   835  			return false
   836  		}
   837  	}
   838  	// Iterator still in progress, wait for either a data or an error event
   839  	select {
   840  	case log := <-it.logs:
   841  		it.Event = new(X2y2EvAuctionRefund)
   842  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   843  			it.fail = err
   844  			return false
   845  		}
   846  		it.Event.Raw = log
   847  		return true
   848  
   849  	case err := <-it.sub.Err():
   850  		it.done = true
   851  		it.fail = err
   852  		return it.Next()
   853  	}
   854  }
   855  
   856  // Error returns any retrieval or parsing error occurred during filtering.
   857  func (it *X2y2EvAuctionRefundIterator) Error() error {
   858  	return it.fail
   859  }
   860  
   861  // Close terminates the iteration process, releasing any pending underlying
   862  // resources.
   863  func (it *X2y2EvAuctionRefundIterator) Close() error {
   864  	it.sub.Unsubscribe()
   865  	return nil
   866  }
   867  
   868  // X2y2EvAuctionRefund represents a EvAuctionRefund event raised by the X2y2 contract.
   869  type X2y2EvAuctionRefund struct {
   870  	ItemHash  [32]byte
   871  	Currency  common.Address
   872  	To        common.Address
   873  	Amount    *big.Int
   874  	Incentive *big.Int
   875  	Raw       types.Log // Blockchain specific contextual infos
   876  }
   877  
   878  // FilterEvAuctionRefund is a free log retrieval operation binding the contract event 0x681e2055b67e23ce693a446bd0567fb9df559ce6f82da4397482bad968551ac2.
   879  //
   880  // Solidity: event EvAuctionRefund(bytes32 indexed itemHash, address currency, address to, uint256 amount, uint256 incentive)
   881  func (_X2y2 *X2y2Filterer) FilterEvAuctionRefund(opts *bind.FilterOpts, itemHash [][32]byte) (*X2y2EvAuctionRefundIterator, error) {
   882  
   883  	var itemHashRule []interface{}
   884  	for _, itemHashItem := range itemHash {
   885  		itemHashRule = append(itemHashRule, itemHashItem)
   886  	}
   887  
   888  	logs, sub, err := _X2y2.contract.FilterLogs(opts, "EvAuctionRefund", itemHashRule)
   889  	if err != nil {
   890  		return nil, err
   891  	}
   892  	return &X2y2EvAuctionRefundIterator{contract: _X2y2.contract, event: "EvAuctionRefund", logs: logs, sub: sub}, nil
   893  }
   894  
   895  // WatchEvAuctionRefund is a free log subscription operation binding the contract event 0x681e2055b67e23ce693a446bd0567fb9df559ce6f82da4397482bad968551ac2.
   896  //
   897  // Solidity: event EvAuctionRefund(bytes32 indexed itemHash, address currency, address to, uint256 amount, uint256 incentive)
   898  func (_X2y2 *X2y2Filterer) WatchEvAuctionRefund(opts *bind.WatchOpts, sink chan<- *X2y2EvAuctionRefund, itemHash [][32]byte) (event.Subscription, error) {
   899  
   900  	var itemHashRule []interface{}
   901  	for _, itemHashItem := range itemHash {
   902  		itemHashRule = append(itemHashRule, itemHashItem)
   903  	}
   904  
   905  	logs, sub, err := _X2y2.contract.WatchLogs(opts, "EvAuctionRefund", itemHashRule)
   906  	if err != nil {
   907  		return nil, err
   908  	}
   909  	return event.NewSubscription(func(quit <-chan struct{}) error {
   910  		defer sub.Unsubscribe()
   911  		for {
   912  			select {
   913  			case log := <-logs:
   914  				// New log arrived, parse the event and forward to the user
   915  				event := new(X2y2EvAuctionRefund)
   916  				if err := _X2y2.contract.UnpackLog(event, "EvAuctionRefund", log); err != nil {
   917  					return err
   918  				}
   919  				event.Raw = log
   920  
   921  				select {
   922  				case sink <- event:
   923  				case err := <-sub.Err():
   924  					return err
   925  				case <-quit:
   926  					return nil
   927  				}
   928  			case err := <-sub.Err():
   929  				return err
   930  			case <-quit:
   931  				return nil
   932  			}
   933  		}
   934  	}), nil
   935  }
   936  
   937  // ParseEvAuctionRefund is a log parse operation binding the contract event 0x681e2055b67e23ce693a446bd0567fb9df559ce6f82da4397482bad968551ac2.
   938  //
   939  // Solidity: event EvAuctionRefund(bytes32 indexed itemHash, address currency, address to, uint256 amount, uint256 incentive)
   940  func (_X2y2 *X2y2Filterer) ParseEvAuctionRefund(log types.Log) (*X2y2EvAuctionRefund, error) {
   941  	event := new(X2y2EvAuctionRefund)
   942  	if err := _X2y2.contract.UnpackLog(event, "EvAuctionRefund", log); err != nil {
   943  		return nil, err
   944  	}
   945  	event.Raw = log
   946  	return event, nil
   947  }
   948  
   949  // X2y2EvCancelIterator is returned from FilterEvCancel and is used to iterate over the raw logs and unpacked data for EvCancel events raised by the X2y2 contract.
   950  type X2y2EvCancelIterator struct {
   951  	Event *X2y2EvCancel // Event containing the contract specifics and raw log
   952  
   953  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   954  	event    string              // Event name to use for unpacking event data
   955  
   956  	logs chan types.Log        // Log channel receiving the found contract events
   957  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   958  	done bool                  // Whether the subscription completed delivering logs
   959  	fail error                 // Occurred error to stop iteration
   960  }
   961  
   962  // Next advances the iterator to the subsequent event, returning whether there
   963  // are any more events found. In case of a retrieval or parsing error, false is
   964  // returned and Error() can be queried for the exact failure.
   965  func (it *X2y2EvCancelIterator) Next() bool {
   966  	// If the iterator failed, stop iterating
   967  	if it.fail != nil {
   968  		return false
   969  	}
   970  	// If the iterator completed, deliver directly whatever's available
   971  	if it.done {
   972  		select {
   973  		case log := <-it.logs:
   974  			it.Event = new(X2y2EvCancel)
   975  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   976  				it.fail = err
   977  				return false
   978  			}
   979  			it.Event.Raw = log
   980  			return true
   981  
   982  		default:
   983  			return false
   984  		}
   985  	}
   986  	// Iterator still in progress, wait for either a data or an error event
   987  	select {
   988  	case log := <-it.logs:
   989  		it.Event = new(X2y2EvCancel)
   990  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   991  			it.fail = err
   992  			return false
   993  		}
   994  		it.Event.Raw = log
   995  		return true
   996  
   997  	case err := <-it.sub.Err():
   998  		it.done = true
   999  		it.fail = err
  1000  		return it.Next()
  1001  	}
  1002  }
  1003  
  1004  // Error returns any retrieval or parsing error occurred during filtering.
  1005  func (it *X2y2EvCancelIterator) Error() error {
  1006  	return it.fail
  1007  }
  1008  
  1009  // Close terminates the iteration process, releasing any pending underlying
  1010  // resources.
  1011  func (it *X2y2EvCancelIterator) Close() error {
  1012  	it.sub.Unsubscribe()
  1013  	return nil
  1014  }
  1015  
  1016  // X2y2EvCancel represents a EvCancel event raised by the X2y2 contract.
  1017  type X2y2EvCancel struct {
  1018  	ItemHash [32]byte
  1019  	Raw      types.Log // Blockchain specific contextual infos
  1020  }
  1021  
  1022  // FilterEvCancel is a free log retrieval operation binding the contract event 0x5b0b06d07e20243724d90e17a20034972f339eb28bd1c9437a71999bd15a1e7a.
  1023  //
  1024  // Solidity: event EvCancel(bytes32 indexed itemHash)
  1025  func (_X2y2 *X2y2Filterer) FilterEvCancel(opts *bind.FilterOpts, itemHash [][32]byte) (*X2y2EvCancelIterator, error) {
  1026  
  1027  	var itemHashRule []interface{}
  1028  	for _, itemHashItem := range itemHash {
  1029  		itemHashRule = append(itemHashRule, itemHashItem)
  1030  	}
  1031  
  1032  	logs, sub, err := _X2y2.contract.FilterLogs(opts, "EvCancel", itemHashRule)
  1033  	if err != nil {
  1034  		return nil, err
  1035  	}
  1036  	return &X2y2EvCancelIterator{contract: _X2y2.contract, event: "EvCancel", logs: logs, sub: sub}, nil
  1037  }
  1038  
  1039  // WatchEvCancel is a free log subscription operation binding the contract event 0x5b0b06d07e20243724d90e17a20034972f339eb28bd1c9437a71999bd15a1e7a.
  1040  //
  1041  // Solidity: event EvCancel(bytes32 indexed itemHash)
  1042  func (_X2y2 *X2y2Filterer) WatchEvCancel(opts *bind.WatchOpts, sink chan<- *X2y2EvCancel, itemHash [][32]byte) (event.Subscription, error) {
  1043  
  1044  	var itemHashRule []interface{}
  1045  	for _, itemHashItem := range itemHash {
  1046  		itemHashRule = append(itemHashRule, itemHashItem)
  1047  	}
  1048  
  1049  	logs, sub, err := _X2y2.contract.WatchLogs(opts, "EvCancel", itemHashRule)
  1050  	if err != nil {
  1051  		return nil, err
  1052  	}
  1053  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1054  		defer sub.Unsubscribe()
  1055  		for {
  1056  			select {
  1057  			case log := <-logs:
  1058  				// New log arrived, parse the event and forward to the user
  1059  				event := new(X2y2EvCancel)
  1060  				if err := _X2y2.contract.UnpackLog(event, "EvCancel", log); err != nil {
  1061  					return err
  1062  				}
  1063  				event.Raw = log
  1064  
  1065  				select {
  1066  				case sink <- event:
  1067  				case err := <-sub.Err():
  1068  					return err
  1069  				case <-quit:
  1070  					return nil
  1071  				}
  1072  			case err := <-sub.Err():
  1073  				return err
  1074  			case <-quit:
  1075  				return nil
  1076  			}
  1077  		}
  1078  	}), nil
  1079  }
  1080  
  1081  // ParseEvCancel is a log parse operation binding the contract event 0x5b0b06d07e20243724d90e17a20034972f339eb28bd1c9437a71999bd15a1e7a.
  1082  //
  1083  // Solidity: event EvCancel(bytes32 indexed itemHash)
  1084  func (_X2y2 *X2y2Filterer) ParseEvCancel(log types.Log) (*X2y2EvCancel, error) {
  1085  	event := new(X2y2EvCancel)
  1086  	if err := _X2y2.contract.UnpackLog(event, "EvCancel", log); err != nil {
  1087  		return nil, err
  1088  	}
  1089  	event.Raw = log
  1090  	return event, nil
  1091  }
  1092  
  1093  // X2y2EvDelegateIterator is returned from FilterEvDelegate and is used to iterate over the raw logs and unpacked data for EvDelegate events raised by the X2y2 contract.
  1094  type X2y2EvDelegateIterator struct {
  1095  	Event *X2y2EvDelegate // Event containing the contract specifics and raw log
  1096  
  1097  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1098  	event    string              // Event name to use for unpacking event data
  1099  
  1100  	logs chan types.Log        // Log channel receiving the found contract events
  1101  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1102  	done bool                  // Whether the subscription completed delivering logs
  1103  	fail error                 // Occurred error to stop iteration
  1104  }
  1105  
  1106  // Next advances the iterator to the subsequent event, returning whether there
  1107  // are any more events found. In case of a retrieval or parsing error, false is
  1108  // returned and Error() can be queried for the exact failure.
  1109  func (it *X2y2EvDelegateIterator) Next() bool {
  1110  	// If the iterator failed, stop iterating
  1111  	if it.fail != nil {
  1112  		return false
  1113  	}
  1114  	// If the iterator completed, deliver directly whatever's available
  1115  	if it.done {
  1116  		select {
  1117  		case log := <-it.logs:
  1118  			it.Event = new(X2y2EvDelegate)
  1119  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1120  				it.fail = err
  1121  				return false
  1122  			}
  1123  			it.Event.Raw = log
  1124  			return true
  1125  
  1126  		default:
  1127  			return false
  1128  		}
  1129  	}
  1130  	// Iterator still in progress, wait for either a data or an error event
  1131  	select {
  1132  	case log := <-it.logs:
  1133  		it.Event = new(X2y2EvDelegate)
  1134  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1135  			it.fail = err
  1136  			return false
  1137  		}
  1138  		it.Event.Raw = log
  1139  		return true
  1140  
  1141  	case err := <-it.sub.Err():
  1142  		it.done = true
  1143  		it.fail = err
  1144  		return it.Next()
  1145  	}
  1146  }
  1147  
  1148  // Error returns any retrieval or parsing error occurred during filtering.
  1149  func (it *X2y2EvDelegateIterator) Error() error {
  1150  	return it.fail
  1151  }
  1152  
  1153  // Close terminates the iteration process, releasing any pending underlying
  1154  // resources.
  1155  func (it *X2y2EvDelegateIterator) Close() error {
  1156  	it.sub.Unsubscribe()
  1157  	return nil
  1158  }
  1159  
  1160  // X2y2EvDelegate represents a EvDelegate event raised by the X2y2 contract.
  1161  type X2y2EvDelegate struct {
  1162  	Delegate  common.Address
  1163  	IsRemoval bool
  1164  	Raw       types.Log // Blockchain specific contextual infos
  1165  }
  1166  
  1167  // FilterEvDelegate is a free log retrieval operation binding the contract event 0x4a31a64b928a0e8aff42ef84d144ffe82d08cb41c8027060593135e2026899b2.
  1168  //
  1169  // Solidity: event EvDelegate(address delegate, bool isRemoval)
  1170  func (_X2y2 *X2y2Filterer) FilterEvDelegate(opts *bind.FilterOpts) (*X2y2EvDelegateIterator, error) {
  1171  
  1172  	logs, sub, err := _X2y2.contract.FilterLogs(opts, "EvDelegate")
  1173  	if err != nil {
  1174  		return nil, err
  1175  	}
  1176  	return &X2y2EvDelegateIterator{contract: _X2y2.contract, event: "EvDelegate", logs: logs, sub: sub}, nil
  1177  }
  1178  
  1179  // WatchEvDelegate is a free log subscription operation binding the contract event 0x4a31a64b928a0e8aff42ef84d144ffe82d08cb41c8027060593135e2026899b2.
  1180  //
  1181  // Solidity: event EvDelegate(address delegate, bool isRemoval)
  1182  func (_X2y2 *X2y2Filterer) WatchEvDelegate(opts *bind.WatchOpts, sink chan<- *X2y2EvDelegate) (event.Subscription, error) {
  1183  
  1184  	logs, sub, err := _X2y2.contract.WatchLogs(opts, "EvDelegate")
  1185  	if err != nil {
  1186  		return nil, err
  1187  	}
  1188  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1189  		defer sub.Unsubscribe()
  1190  		for {
  1191  			select {
  1192  			case log := <-logs:
  1193  				// New log arrived, parse the event and forward to the user
  1194  				event := new(X2y2EvDelegate)
  1195  				if err := _X2y2.contract.UnpackLog(event, "EvDelegate", log); err != nil {
  1196  					return err
  1197  				}
  1198  				event.Raw = log
  1199  
  1200  				select {
  1201  				case sink <- event:
  1202  				case err := <-sub.Err():
  1203  					return err
  1204  				case <-quit:
  1205  					return nil
  1206  				}
  1207  			case err := <-sub.Err():
  1208  				return err
  1209  			case <-quit:
  1210  				return nil
  1211  			}
  1212  		}
  1213  	}), nil
  1214  }
  1215  
  1216  // ParseEvDelegate is a log parse operation binding the contract event 0x4a31a64b928a0e8aff42ef84d144ffe82d08cb41c8027060593135e2026899b2.
  1217  //
  1218  // Solidity: event EvDelegate(address delegate, bool isRemoval)
  1219  func (_X2y2 *X2y2Filterer) ParseEvDelegate(log types.Log) (*X2y2EvDelegate, error) {
  1220  	event := new(X2y2EvDelegate)
  1221  	if err := _X2y2.contract.UnpackLog(event, "EvDelegate", log); err != nil {
  1222  		return nil, err
  1223  	}
  1224  	event.Raw = log
  1225  	return event, nil
  1226  }
  1227  
  1228  // X2y2EvFailureIterator is returned from FilterEvFailure and is used to iterate over the raw logs and unpacked data for EvFailure events raised by the X2y2 contract.
  1229  type X2y2EvFailureIterator struct {
  1230  	Event *X2y2EvFailure // Event containing the contract specifics and raw log
  1231  
  1232  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1233  	event    string              // Event name to use for unpacking event data
  1234  
  1235  	logs chan types.Log        // Log channel receiving the found contract events
  1236  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1237  	done bool                  // Whether the subscription completed delivering logs
  1238  	fail error                 // Occurred error to stop iteration
  1239  }
  1240  
  1241  // Next advances the iterator to the subsequent event, returning whether there
  1242  // are any more events found. In case of a retrieval or parsing error, false is
  1243  // returned and Error() can be queried for the exact failure.
  1244  func (it *X2y2EvFailureIterator) Next() bool {
  1245  	// If the iterator failed, stop iterating
  1246  	if it.fail != nil {
  1247  		return false
  1248  	}
  1249  	// If the iterator completed, deliver directly whatever's available
  1250  	if it.done {
  1251  		select {
  1252  		case log := <-it.logs:
  1253  			it.Event = new(X2y2EvFailure)
  1254  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1255  				it.fail = err
  1256  				return false
  1257  			}
  1258  			it.Event.Raw = log
  1259  			return true
  1260  
  1261  		default:
  1262  			return false
  1263  		}
  1264  	}
  1265  	// Iterator still in progress, wait for either a data or an error event
  1266  	select {
  1267  	case log := <-it.logs:
  1268  		it.Event = new(X2y2EvFailure)
  1269  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1270  			it.fail = err
  1271  			return false
  1272  		}
  1273  		it.Event.Raw = log
  1274  		return true
  1275  
  1276  	case err := <-it.sub.Err():
  1277  		it.done = true
  1278  		it.fail = err
  1279  		return it.Next()
  1280  	}
  1281  }
  1282  
  1283  // Error returns any retrieval or parsing error occurred during filtering.
  1284  func (it *X2y2EvFailureIterator) Error() error {
  1285  	return it.fail
  1286  }
  1287  
  1288  // Close terminates the iteration process, releasing any pending underlying
  1289  // resources.
  1290  func (it *X2y2EvFailureIterator) Close() error {
  1291  	it.sub.Unsubscribe()
  1292  	return nil
  1293  }
  1294  
  1295  // X2y2EvFailure represents a EvFailure event raised by the X2y2 contract.
  1296  type X2y2EvFailure struct {
  1297  	Index *big.Int
  1298  	Error []byte
  1299  	Raw   types.Log // Blockchain specific contextual infos
  1300  }
  1301  
  1302  // FilterEvFailure is a free log retrieval operation binding the contract event 0x97c789f43a3e7ac27906b5fbdac832f54441771021fba06f71207d9be6d4b623.
  1303  //
  1304  // Solidity: event EvFailure(uint256 index, bytes error)
  1305  func (_X2y2 *X2y2Filterer) FilterEvFailure(opts *bind.FilterOpts) (*X2y2EvFailureIterator, error) {
  1306  
  1307  	logs, sub, err := _X2y2.contract.FilterLogs(opts, "EvFailure")
  1308  	if err != nil {
  1309  		return nil, err
  1310  	}
  1311  	return &X2y2EvFailureIterator{contract: _X2y2.contract, event: "EvFailure", logs: logs, sub: sub}, nil
  1312  }
  1313  
  1314  // WatchEvFailure is a free log subscription operation binding the contract event 0x97c789f43a3e7ac27906b5fbdac832f54441771021fba06f71207d9be6d4b623.
  1315  //
  1316  // Solidity: event EvFailure(uint256 index, bytes error)
  1317  func (_X2y2 *X2y2Filterer) WatchEvFailure(opts *bind.WatchOpts, sink chan<- *X2y2EvFailure) (event.Subscription, error) {
  1318  
  1319  	logs, sub, err := _X2y2.contract.WatchLogs(opts, "EvFailure")
  1320  	if err != nil {
  1321  		return nil, err
  1322  	}
  1323  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1324  		defer sub.Unsubscribe()
  1325  		for {
  1326  			select {
  1327  			case log := <-logs:
  1328  				// New log arrived, parse the event and forward to the user
  1329  				event := new(X2y2EvFailure)
  1330  				if err := _X2y2.contract.UnpackLog(event, "EvFailure", log); err != nil {
  1331  					return err
  1332  				}
  1333  				event.Raw = log
  1334  
  1335  				select {
  1336  				case sink <- event:
  1337  				case err := <-sub.Err():
  1338  					return err
  1339  				case <-quit:
  1340  					return nil
  1341  				}
  1342  			case err := <-sub.Err():
  1343  				return err
  1344  			case <-quit:
  1345  				return nil
  1346  			}
  1347  		}
  1348  	}), nil
  1349  }
  1350  
  1351  // ParseEvFailure is a log parse operation binding the contract event 0x97c789f43a3e7ac27906b5fbdac832f54441771021fba06f71207d9be6d4b623.
  1352  //
  1353  // Solidity: event EvFailure(uint256 index, bytes error)
  1354  func (_X2y2 *X2y2Filterer) ParseEvFailure(log types.Log) (*X2y2EvFailure, error) {
  1355  	event := new(X2y2EvFailure)
  1356  	if err := _X2y2.contract.UnpackLog(event, "EvFailure", log); err != nil {
  1357  		return nil, err
  1358  	}
  1359  	event.Raw = log
  1360  	return event, nil
  1361  }
  1362  
  1363  // X2y2EvFeeCapUpdateIterator is returned from FilterEvFeeCapUpdate and is used to iterate over the raw logs and unpacked data for EvFeeCapUpdate events raised by the X2y2 contract.
  1364  type X2y2EvFeeCapUpdateIterator struct {
  1365  	Event *X2y2EvFeeCapUpdate // Event containing the contract specifics and raw log
  1366  
  1367  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1368  	event    string              // Event name to use for unpacking event data
  1369  
  1370  	logs chan types.Log        // Log channel receiving the found contract events
  1371  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1372  	done bool                  // Whether the subscription completed delivering logs
  1373  	fail error                 // Occurred error to stop iteration
  1374  }
  1375  
  1376  // Next advances the iterator to the subsequent event, returning whether there
  1377  // are any more events found. In case of a retrieval or parsing error, false is
  1378  // returned and Error() can be queried for the exact failure.
  1379  func (it *X2y2EvFeeCapUpdateIterator) Next() bool {
  1380  	// If the iterator failed, stop iterating
  1381  	if it.fail != nil {
  1382  		return false
  1383  	}
  1384  	// If the iterator completed, deliver directly whatever's available
  1385  	if it.done {
  1386  		select {
  1387  		case log := <-it.logs:
  1388  			it.Event = new(X2y2EvFeeCapUpdate)
  1389  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1390  				it.fail = err
  1391  				return false
  1392  			}
  1393  			it.Event.Raw = log
  1394  			return true
  1395  
  1396  		default:
  1397  			return false
  1398  		}
  1399  	}
  1400  	// Iterator still in progress, wait for either a data or an error event
  1401  	select {
  1402  	case log := <-it.logs:
  1403  		it.Event = new(X2y2EvFeeCapUpdate)
  1404  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1405  			it.fail = err
  1406  			return false
  1407  		}
  1408  		it.Event.Raw = log
  1409  		return true
  1410  
  1411  	case err := <-it.sub.Err():
  1412  		it.done = true
  1413  		it.fail = err
  1414  		return it.Next()
  1415  	}
  1416  }
  1417  
  1418  // Error returns any retrieval or parsing error occurred during filtering.
  1419  func (it *X2y2EvFeeCapUpdateIterator) Error() error {
  1420  	return it.fail
  1421  }
  1422  
  1423  // Close terminates the iteration process, releasing any pending underlying
  1424  // resources.
  1425  func (it *X2y2EvFeeCapUpdateIterator) Close() error {
  1426  	it.sub.Unsubscribe()
  1427  	return nil
  1428  }
  1429  
  1430  // X2y2EvFeeCapUpdate represents a EvFeeCapUpdate event raised by the X2y2 contract.
  1431  type X2y2EvFeeCapUpdate struct {
  1432  	NewValue *big.Int
  1433  	Raw      types.Log // Blockchain specific contextual infos
  1434  }
  1435  
  1436  // FilterEvFeeCapUpdate is a free log retrieval operation binding the contract event 0x19fc3beddeea399f0966d5f8664ad94006f16a10fb28c4e2fe6fae62626b7128.
  1437  //
  1438  // Solidity: event EvFeeCapUpdate(uint256 newValue)
  1439  func (_X2y2 *X2y2Filterer) FilterEvFeeCapUpdate(opts *bind.FilterOpts) (*X2y2EvFeeCapUpdateIterator, error) {
  1440  
  1441  	logs, sub, err := _X2y2.contract.FilterLogs(opts, "EvFeeCapUpdate")
  1442  	if err != nil {
  1443  		return nil, err
  1444  	}
  1445  	return &X2y2EvFeeCapUpdateIterator{contract: _X2y2.contract, event: "EvFeeCapUpdate", logs: logs, sub: sub}, nil
  1446  }
  1447  
  1448  // WatchEvFeeCapUpdate is a free log subscription operation binding the contract event 0x19fc3beddeea399f0966d5f8664ad94006f16a10fb28c4e2fe6fae62626b7128.
  1449  //
  1450  // Solidity: event EvFeeCapUpdate(uint256 newValue)
  1451  func (_X2y2 *X2y2Filterer) WatchEvFeeCapUpdate(opts *bind.WatchOpts, sink chan<- *X2y2EvFeeCapUpdate) (event.Subscription, error) {
  1452  
  1453  	logs, sub, err := _X2y2.contract.WatchLogs(opts, "EvFeeCapUpdate")
  1454  	if err != nil {
  1455  		return nil, err
  1456  	}
  1457  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1458  		defer sub.Unsubscribe()
  1459  		for {
  1460  			select {
  1461  			case log := <-logs:
  1462  				// New log arrived, parse the event and forward to the user
  1463  				event := new(X2y2EvFeeCapUpdate)
  1464  				if err := _X2y2.contract.UnpackLog(event, "EvFeeCapUpdate", log); err != nil {
  1465  					return err
  1466  				}
  1467  				event.Raw = log
  1468  
  1469  				select {
  1470  				case sink <- event:
  1471  				case err := <-sub.Err():
  1472  					return err
  1473  				case <-quit:
  1474  					return nil
  1475  				}
  1476  			case err := <-sub.Err():
  1477  				return err
  1478  			case <-quit:
  1479  				return nil
  1480  			}
  1481  		}
  1482  	}), nil
  1483  }
  1484  
  1485  // ParseEvFeeCapUpdate is a log parse operation binding the contract event 0x19fc3beddeea399f0966d5f8664ad94006f16a10fb28c4e2fe6fae62626b7128.
  1486  //
  1487  // Solidity: event EvFeeCapUpdate(uint256 newValue)
  1488  func (_X2y2 *X2y2Filterer) ParseEvFeeCapUpdate(log types.Log) (*X2y2EvFeeCapUpdate, error) {
  1489  	event := new(X2y2EvFeeCapUpdate)
  1490  	if err := _X2y2.contract.UnpackLog(event, "EvFeeCapUpdate", log); err != nil {
  1491  		return nil, err
  1492  	}
  1493  	event.Raw = log
  1494  	return event, nil
  1495  }
  1496  
  1497  // X2y2EvInventoryIterator is returned from FilterEvInventory and is used to iterate over the raw logs and unpacked data for EvInventory events raised by the X2y2 contract.
  1498  type X2y2EvInventoryIterator struct {
  1499  	Event *X2y2EvInventory // Event containing the contract specifics and raw log
  1500  
  1501  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1502  	event    string              // Event name to use for unpacking event data
  1503  
  1504  	logs chan types.Log        // Log channel receiving the found contract events
  1505  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1506  	done bool                  // Whether the subscription completed delivering logs
  1507  	fail error                 // Occurred error to stop iteration
  1508  }
  1509  
  1510  // Next advances the iterator to the subsequent event, returning whether there
  1511  // are any more events found. In case of a retrieval or parsing error, false is
  1512  // returned and Error() can be queried for the exact failure.
  1513  func (it *X2y2EvInventoryIterator) Next() bool {
  1514  	// If the iterator failed, stop iterating
  1515  	if it.fail != nil {
  1516  		return false
  1517  	}
  1518  	// If the iterator completed, deliver directly whatever's available
  1519  	if it.done {
  1520  		select {
  1521  		case log := <-it.logs:
  1522  			it.Event = new(X2y2EvInventory)
  1523  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1524  				it.fail = err
  1525  				return false
  1526  			}
  1527  			it.Event.Raw = log
  1528  			return true
  1529  
  1530  		default:
  1531  			return false
  1532  		}
  1533  	}
  1534  	// Iterator still in progress, wait for either a data or an error event
  1535  	select {
  1536  	case log := <-it.logs:
  1537  		it.Event = new(X2y2EvInventory)
  1538  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1539  			it.fail = err
  1540  			return false
  1541  		}
  1542  		it.Event.Raw = log
  1543  		return true
  1544  
  1545  	case err := <-it.sub.Err():
  1546  		it.done = true
  1547  		it.fail = err
  1548  		return it.Next()
  1549  	}
  1550  }
  1551  
  1552  // Error returns any retrieval or parsing error occurred during filtering.
  1553  func (it *X2y2EvInventoryIterator) Error() error {
  1554  	return it.fail
  1555  }
  1556  
  1557  // Close terminates the iteration process, releasing any pending underlying
  1558  // resources.
  1559  func (it *X2y2EvInventoryIterator) Close() error {
  1560  	it.sub.Unsubscribe()
  1561  	return nil
  1562  }
  1563  
  1564  // X2y2EvInventory represents a EvInventory event raised by the X2y2 contract.
  1565  type X2y2EvInventory struct {
  1566  	ItemHash     [32]byte
  1567  	Maker        common.Address
  1568  	Taker        common.Address
  1569  	OrderSalt    *big.Int
  1570  	SettleSalt   *big.Int
  1571  	Intent       *big.Int
  1572  	DelegateType *big.Int
  1573  	Deadline     *big.Int
  1574  	Currency     common.Address
  1575  	DataMask     []byte
  1576  	Item         MarketOrderItem
  1577  	Detail       MarketSettleDetail
  1578  	Raw          types.Log // Blockchain specific contextual infos
  1579  }
  1580  
  1581  // FilterEvInventory is a free log retrieval operation binding the contract event 0x3cbb63f144840e5b1b0a38a7c19211d2e89de4d7c5faf8b2d3c1776c302d1d33.
  1582  //
  1583  // Solidity: event EvInventory(bytes32 indexed itemHash, address maker, address taker, uint256 orderSalt, uint256 settleSalt, uint256 intent, uint256 delegateType, uint256 deadline, address currency, bytes dataMask, (uint256,bytes) item, (uint8,uint256,uint256,uint256,bytes32,address,bytes,uint256,uint256,uint256,(uint256,address)[]) detail)
  1584  func (_X2y2 *X2y2Filterer) FilterEvInventory(opts *bind.FilterOpts, itemHash [][32]byte) (*X2y2EvInventoryIterator, error) {
  1585  
  1586  	var itemHashRule []interface{}
  1587  	for _, itemHashItem := range itemHash {
  1588  		itemHashRule = append(itemHashRule, itemHashItem)
  1589  	}
  1590  
  1591  	logs, sub, err := _X2y2.contract.FilterLogs(opts, "EvInventory", itemHashRule)
  1592  	if err != nil {
  1593  		return nil, err
  1594  	}
  1595  	return &X2y2EvInventoryIterator{contract: _X2y2.contract, event: "EvInventory", logs: logs, sub: sub}, nil
  1596  }
  1597  
  1598  // WatchEvInventory is a free log subscription operation binding the contract event 0x3cbb63f144840e5b1b0a38a7c19211d2e89de4d7c5faf8b2d3c1776c302d1d33.
  1599  //
  1600  // Solidity: event EvInventory(bytes32 indexed itemHash, address maker, address taker, uint256 orderSalt, uint256 settleSalt, uint256 intent, uint256 delegateType, uint256 deadline, address currency, bytes dataMask, (uint256,bytes) item, (uint8,uint256,uint256,uint256,bytes32,address,bytes,uint256,uint256,uint256,(uint256,address)[]) detail)
  1601  func (_X2y2 *X2y2Filterer) WatchEvInventory(opts *bind.WatchOpts, sink chan<- *X2y2EvInventory, itemHash [][32]byte) (event.Subscription, error) {
  1602  
  1603  	var itemHashRule []interface{}
  1604  	for _, itemHashItem := range itemHash {
  1605  		itemHashRule = append(itemHashRule, itemHashItem)
  1606  	}
  1607  
  1608  	logs, sub, err := _X2y2.contract.WatchLogs(opts, "EvInventory", itemHashRule)
  1609  	if err != nil {
  1610  		return nil, err
  1611  	}
  1612  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1613  		defer sub.Unsubscribe()
  1614  		for {
  1615  			select {
  1616  			case log := <-logs:
  1617  				// New log arrived, parse the event and forward to the user
  1618  				event := new(X2y2EvInventory)
  1619  				if err := _X2y2.contract.UnpackLog(event, "EvInventory", log); err != nil {
  1620  					return err
  1621  				}
  1622  				event.Raw = log
  1623  
  1624  				select {
  1625  				case sink <- event:
  1626  				case err := <-sub.Err():
  1627  					return err
  1628  				case <-quit:
  1629  					return nil
  1630  				}
  1631  			case err := <-sub.Err():
  1632  				return err
  1633  			case <-quit:
  1634  				return nil
  1635  			}
  1636  		}
  1637  	}), nil
  1638  }
  1639  
  1640  // ParseEvInventory is a log parse operation binding the contract event 0x3cbb63f144840e5b1b0a38a7c19211d2e89de4d7c5faf8b2d3c1776c302d1d33.
  1641  //
  1642  // Solidity: event EvInventory(bytes32 indexed itemHash, address maker, address taker, uint256 orderSalt, uint256 settleSalt, uint256 intent, uint256 delegateType, uint256 deadline, address currency, bytes dataMask, (uint256,bytes) item, (uint8,uint256,uint256,uint256,bytes32,address,bytes,uint256,uint256,uint256,(uint256,address)[]) detail)
  1643  func (_X2y2 *X2y2Filterer) ParseEvInventory(log types.Log) (*X2y2EvInventory, error) {
  1644  	event := new(X2y2EvInventory)
  1645  	if err := _X2y2.contract.UnpackLog(event, "EvInventory", log); err != nil {
  1646  		return nil, err
  1647  	}
  1648  	event.Raw = log
  1649  	return event, nil
  1650  }
  1651  
  1652  // X2y2EvProfitIterator is returned from FilterEvProfit and is used to iterate over the raw logs and unpacked data for EvProfit events raised by the X2y2 contract.
  1653  type X2y2EvProfitIterator struct {
  1654  	Event *X2y2EvProfit // Event containing the contract specifics and raw log
  1655  
  1656  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1657  	event    string              // Event name to use for unpacking event data
  1658  
  1659  	logs chan types.Log        // Log channel receiving the found contract events
  1660  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1661  	done bool                  // Whether the subscription completed delivering logs
  1662  	fail error                 // Occurred error to stop iteration
  1663  }
  1664  
  1665  // Next advances the iterator to the subsequent event, returning whether there
  1666  // are any more events found. In case of a retrieval or parsing error, false is
  1667  // returned and Error() can be queried for the exact failure.
  1668  func (it *X2y2EvProfitIterator) Next() bool {
  1669  	// If the iterator failed, stop iterating
  1670  	if it.fail != nil {
  1671  		return false
  1672  	}
  1673  	// If the iterator completed, deliver directly whatever's available
  1674  	if it.done {
  1675  		select {
  1676  		case log := <-it.logs:
  1677  			it.Event = new(X2y2EvProfit)
  1678  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1679  				it.fail = err
  1680  				return false
  1681  			}
  1682  			it.Event.Raw = log
  1683  			return true
  1684  
  1685  		default:
  1686  			return false
  1687  		}
  1688  	}
  1689  	// Iterator still in progress, wait for either a data or an error event
  1690  	select {
  1691  	case log := <-it.logs:
  1692  		it.Event = new(X2y2EvProfit)
  1693  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1694  			it.fail = err
  1695  			return false
  1696  		}
  1697  		it.Event.Raw = log
  1698  		return true
  1699  
  1700  	case err := <-it.sub.Err():
  1701  		it.done = true
  1702  		it.fail = err
  1703  		return it.Next()
  1704  	}
  1705  }
  1706  
  1707  // Error returns any retrieval or parsing error occurred during filtering.
  1708  func (it *X2y2EvProfitIterator) Error() error {
  1709  	return it.fail
  1710  }
  1711  
  1712  // Close terminates the iteration process, releasing any pending underlying
  1713  // resources.
  1714  func (it *X2y2EvProfitIterator) Close() error {
  1715  	it.sub.Unsubscribe()
  1716  	return nil
  1717  }
  1718  
  1719  // X2y2EvProfit represents a EvProfit event raised by the X2y2 contract.
  1720  type X2y2EvProfit struct {
  1721  	ItemHash [32]byte
  1722  	Currency common.Address
  1723  	To       common.Address
  1724  	Amount   *big.Int
  1725  	Raw      types.Log // Blockchain specific contextual infos
  1726  }
  1727  
  1728  // FilterEvProfit is a free log retrieval operation binding the contract event 0xe2c49856b032c255ae7e325d18109bc4e22a2804e2e49a017ec0f59f19cd447b.
  1729  //
  1730  // Solidity: event EvProfit(bytes32 itemHash, address currency, address to, uint256 amount)
  1731  func (_X2y2 *X2y2Filterer) FilterEvProfit(opts *bind.FilterOpts) (*X2y2EvProfitIterator, error) {
  1732  
  1733  	logs, sub, err := _X2y2.contract.FilterLogs(opts, "EvProfit")
  1734  	if err != nil {
  1735  		return nil, err
  1736  	}
  1737  	return &X2y2EvProfitIterator{contract: _X2y2.contract, event: "EvProfit", logs: logs, sub: sub}, nil
  1738  }
  1739  
  1740  // WatchEvProfit is a free log subscription operation binding the contract event 0xe2c49856b032c255ae7e325d18109bc4e22a2804e2e49a017ec0f59f19cd447b.
  1741  //
  1742  // Solidity: event EvProfit(bytes32 itemHash, address currency, address to, uint256 amount)
  1743  func (_X2y2 *X2y2Filterer) WatchEvProfit(opts *bind.WatchOpts, sink chan<- *X2y2EvProfit) (event.Subscription, error) {
  1744  
  1745  	logs, sub, err := _X2y2.contract.WatchLogs(opts, "EvProfit")
  1746  	if err != nil {
  1747  		return nil, err
  1748  	}
  1749  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1750  		defer sub.Unsubscribe()
  1751  		for {
  1752  			select {
  1753  			case log := <-logs:
  1754  				// New log arrived, parse the event and forward to the user
  1755  				event := new(X2y2EvProfit)
  1756  				if err := _X2y2.contract.UnpackLog(event, "EvProfit", log); err != nil {
  1757  					return err
  1758  				}
  1759  				event.Raw = log
  1760  
  1761  				select {
  1762  				case sink <- event:
  1763  				case err := <-sub.Err():
  1764  					return err
  1765  				case <-quit:
  1766  					return nil
  1767  				}
  1768  			case err := <-sub.Err():
  1769  				return err
  1770  			case <-quit:
  1771  				return nil
  1772  			}
  1773  		}
  1774  	}), nil
  1775  }
  1776  
  1777  // ParseEvProfit is a log parse operation binding the contract event 0xe2c49856b032c255ae7e325d18109bc4e22a2804e2e49a017ec0f59f19cd447b.
  1778  //
  1779  // Solidity: event EvProfit(bytes32 itemHash, address currency, address to, uint256 amount)
  1780  func (_X2y2 *X2y2Filterer) ParseEvProfit(log types.Log) (*X2y2EvProfit, error) {
  1781  	event := new(X2y2EvProfit)
  1782  	if err := _X2y2.contract.UnpackLog(event, "EvProfit", log); err != nil {
  1783  		return nil, err
  1784  	}
  1785  	event.Raw = log
  1786  	return event, nil
  1787  }
  1788  
  1789  // X2y2EvSignerIterator is returned from FilterEvSigner and is used to iterate over the raw logs and unpacked data for EvSigner events raised by the X2y2 contract.
  1790  type X2y2EvSignerIterator struct {
  1791  	Event *X2y2EvSigner // Event containing the contract specifics and raw log
  1792  
  1793  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1794  	event    string              // Event name to use for unpacking event data
  1795  
  1796  	logs chan types.Log        // Log channel receiving the found contract events
  1797  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1798  	done bool                  // Whether the subscription completed delivering logs
  1799  	fail error                 // Occurred error to stop iteration
  1800  }
  1801  
  1802  // Next advances the iterator to the subsequent event, returning whether there
  1803  // are any more events found. In case of a retrieval or parsing error, false is
  1804  // returned and Error() can be queried for the exact failure.
  1805  func (it *X2y2EvSignerIterator) Next() bool {
  1806  	// If the iterator failed, stop iterating
  1807  	if it.fail != nil {
  1808  		return false
  1809  	}
  1810  	// If the iterator completed, deliver directly whatever's available
  1811  	if it.done {
  1812  		select {
  1813  		case log := <-it.logs:
  1814  			it.Event = new(X2y2EvSigner)
  1815  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1816  				it.fail = err
  1817  				return false
  1818  			}
  1819  			it.Event.Raw = log
  1820  			return true
  1821  
  1822  		default:
  1823  			return false
  1824  		}
  1825  	}
  1826  	// Iterator still in progress, wait for either a data or an error event
  1827  	select {
  1828  	case log := <-it.logs:
  1829  		it.Event = new(X2y2EvSigner)
  1830  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1831  			it.fail = err
  1832  			return false
  1833  		}
  1834  		it.Event.Raw = log
  1835  		return true
  1836  
  1837  	case err := <-it.sub.Err():
  1838  		it.done = true
  1839  		it.fail = err
  1840  		return it.Next()
  1841  	}
  1842  }
  1843  
  1844  // Error returns any retrieval or parsing error occurred during filtering.
  1845  func (it *X2y2EvSignerIterator) Error() error {
  1846  	return it.fail
  1847  }
  1848  
  1849  // Close terminates the iteration process, releasing any pending underlying
  1850  // resources.
  1851  func (it *X2y2EvSignerIterator) Close() error {
  1852  	it.sub.Unsubscribe()
  1853  	return nil
  1854  }
  1855  
  1856  // X2y2EvSigner represents a EvSigner event raised by the X2y2 contract.
  1857  type X2y2EvSigner struct {
  1858  	Signer    common.Address
  1859  	IsRemoval bool
  1860  	Raw       types.Log // Blockchain specific contextual infos
  1861  }
  1862  
  1863  // FilterEvSigner is a free log retrieval operation binding the contract event 0x0127aee741cbb6bc48b5475b8eb3eb2e5d053809d551dedd517a0b5b52b80fd5.
  1864  //
  1865  // Solidity: event EvSigner(address signer, bool isRemoval)
  1866  func (_X2y2 *X2y2Filterer) FilterEvSigner(opts *bind.FilterOpts) (*X2y2EvSignerIterator, error) {
  1867  
  1868  	logs, sub, err := _X2y2.contract.FilterLogs(opts, "EvSigner")
  1869  	if err != nil {
  1870  		return nil, err
  1871  	}
  1872  	return &X2y2EvSignerIterator{contract: _X2y2.contract, event: "EvSigner", logs: logs, sub: sub}, nil
  1873  }
  1874  
  1875  // WatchEvSigner is a free log subscription operation binding the contract event 0x0127aee741cbb6bc48b5475b8eb3eb2e5d053809d551dedd517a0b5b52b80fd5.
  1876  //
  1877  // Solidity: event EvSigner(address signer, bool isRemoval)
  1878  func (_X2y2 *X2y2Filterer) WatchEvSigner(opts *bind.WatchOpts, sink chan<- *X2y2EvSigner) (event.Subscription, error) {
  1879  
  1880  	logs, sub, err := _X2y2.contract.WatchLogs(opts, "EvSigner")
  1881  	if err != nil {
  1882  		return nil, err
  1883  	}
  1884  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1885  		defer sub.Unsubscribe()
  1886  		for {
  1887  			select {
  1888  			case log := <-logs:
  1889  				// New log arrived, parse the event and forward to the user
  1890  				event := new(X2y2EvSigner)
  1891  				if err := _X2y2.contract.UnpackLog(event, "EvSigner", log); err != nil {
  1892  					return err
  1893  				}
  1894  				event.Raw = log
  1895  
  1896  				select {
  1897  				case sink <- event:
  1898  				case err := <-sub.Err():
  1899  					return err
  1900  				case <-quit:
  1901  					return nil
  1902  				}
  1903  			case err := <-sub.Err():
  1904  				return err
  1905  			case <-quit:
  1906  				return nil
  1907  			}
  1908  		}
  1909  	}), nil
  1910  }
  1911  
  1912  // ParseEvSigner is a log parse operation binding the contract event 0x0127aee741cbb6bc48b5475b8eb3eb2e5d053809d551dedd517a0b5b52b80fd5.
  1913  //
  1914  // Solidity: event EvSigner(address signer, bool isRemoval)
  1915  func (_X2y2 *X2y2Filterer) ParseEvSigner(log types.Log) (*X2y2EvSigner, error) {
  1916  	event := new(X2y2EvSigner)
  1917  	if err := _X2y2.contract.UnpackLog(event, "EvSigner", log); err != nil {
  1918  		return nil, err
  1919  	}
  1920  	event.Raw = log
  1921  	return event, nil
  1922  }
  1923  
  1924  // X2y2OwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the X2y2 contract.
  1925  type X2y2OwnershipTransferredIterator struct {
  1926  	Event *X2y2OwnershipTransferred // Event containing the contract specifics and raw log
  1927  
  1928  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1929  	event    string              // Event name to use for unpacking event data
  1930  
  1931  	logs chan types.Log        // Log channel receiving the found contract events
  1932  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1933  	done bool                  // Whether the subscription completed delivering logs
  1934  	fail error                 // Occurred error to stop iteration
  1935  }
  1936  
  1937  // Next advances the iterator to the subsequent event, returning whether there
  1938  // are any more events found. In case of a retrieval or parsing error, false is
  1939  // returned and Error() can be queried for the exact failure.
  1940  func (it *X2y2OwnershipTransferredIterator) Next() bool {
  1941  	// If the iterator failed, stop iterating
  1942  	if it.fail != nil {
  1943  		return false
  1944  	}
  1945  	// If the iterator completed, deliver directly whatever's available
  1946  	if it.done {
  1947  		select {
  1948  		case log := <-it.logs:
  1949  			it.Event = new(X2y2OwnershipTransferred)
  1950  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1951  				it.fail = err
  1952  				return false
  1953  			}
  1954  			it.Event.Raw = log
  1955  			return true
  1956  
  1957  		default:
  1958  			return false
  1959  		}
  1960  	}
  1961  	// Iterator still in progress, wait for either a data or an error event
  1962  	select {
  1963  	case log := <-it.logs:
  1964  		it.Event = new(X2y2OwnershipTransferred)
  1965  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1966  			it.fail = err
  1967  			return false
  1968  		}
  1969  		it.Event.Raw = log
  1970  		return true
  1971  
  1972  	case err := <-it.sub.Err():
  1973  		it.done = true
  1974  		it.fail = err
  1975  		return it.Next()
  1976  	}
  1977  }
  1978  
  1979  // Error returns any retrieval or parsing error occurred during filtering.
  1980  func (it *X2y2OwnershipTransferredIterator) Error() error {
  1981  	return it.fail
  1982  }
  1983  
  1984  // Close terminates the iteration process, releasing any pending underlying
  1985  // resources.
  1986  func (it *X2y2OwnershipTransferredIterator) Close() error {
  1987  	it.sub.Unsubscribe()
  1988  	return nil
  1989  }
  1990  
  1991  // X2y2OwnershipTransferred represents a OwnershipTransferred event raised by the X2y2 contract.
  1992  type X2y2OwnershipTransferred struct {
  1993  	PreviousOwner common.Address
  1994  	NewOwner      common.Address
  1995  	Raw           types.Log // Blockchain specific contextual infos
  1996  }
  1997  
  1998  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  1999  //
  2000  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2001  func (_X2y2 *X2y2Filterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*X2y2OwnershipTransferredIterator, error) {
  2002  
  2003  	var previousOwnerRule []interface{}
  2004  	for _, previousOwnerItem := range previousOwner {
  2005  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  2006  	}
  2007  	var newOwnerRule []interface{}
  2008  	for _, newOwnerItem := range newOwner {
  2009  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  2010  	}
  2011  
  2012  	logs, sub, err := _X2y2.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  2013  	if err != nil {
  2014  		return nil, err
  2015  	}
  2016  	return &X2y2OwnershipTransferredIterator{contract: _X2y2.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  2017  }
  2018  
  2019  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2020  //
  2021  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2022  func (_X2y2 *X2y2Filterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *X2y2OwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  2023  
  2024  	var previousOwnerRule []interface{}
  2025  	for _, previousOwnerItem := range previousOwner {
  2026  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  2027  	}
  2028  	var newOwnerRule []interface{}
  2029  	for _, newOwnerItem := range newOwner {
  2030  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  2031  	}
  2032  
  2033  	logs, sub, err := _X2y2.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  2034  	if err != nil {
  2035  		return nil, err
  2036  	}
  2037  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2038  		defer sub.Unsubscribe()
  2039  		for {
  2040  			select {
  2041  			case log := <-logs:
  2042  				// New log arrived, parse the event and forward to the user
  2043  				event := new(X2y2OwnershipTransferred)
  2044  				if err := _X2y2.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  2045  					return err
  2046  				}
  2047  				event.Raw = log
  2048  
  2049  				select {
  2050  				case sink <- event:
  2051  				case err := <-sub.Err():
  2052  					return err
  2053  				case <-quit:
  2054  					return nil
  2055  				}
  2056  			case err := <-sub.Err():
  2057  				return err
  2058  			case <-quit:
  2059  				return nil
  2060  			}
  2061  		}
  2062  	}), nil
  2063  }
  2064  
  2065  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  2066  //
  2067  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  2068  func (_X2y2 *X2y2Filterer) ParseOwnershipTransferred(log types.Log) (*X2y2OwnershipTransferred, error) {
  2069  	event := new(X2y2OwnershipTransferred)
  2070  	if err := _X2y2.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  2071  		return nil, err
  2072  	}
  2073  	event.Raw = log
  2074  	return event, nil
  2075  }
  2076  
  2077  // X2y2PausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the X2y2 contract.
  2078  type X2y2PausedIterator struct {
  2079  	Event *X2y2Paused // Event containing the contract specifics and raw log
  2080  
  2081  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2082  	event    string              // Event name to use for unpacking event data
  2083  
  2084  	logs chan types.Log        // Log channel receiving the found contract events
  2085  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2086  	done bool                  // Whether the subscription completed delivering logs
  2087  	fail error                 // Occurred error to stop iteration
  2088  }
  2089  
  2090  // Next advances the iterator to the subsequent event, returning whether there
  2091  // are any more events found. In case of a retrieval or parsing error, false is
  2092  // returned and Error() can be queried for the exact failure.
  2093  func (it *X2y2PausedIterator) Next() bool {
  2094  	// If the iterator failed, stop iterating
  2095  	if it.fail != nil {
  2096  		return false
  2097  	}
  2098  	// If the iterator completed, deliver directly whatever's available
  2099  	if it.done {
  2100  		select {
  2101  		case log := <-it.logs:
  2102  			it.Event = new(X2y2Paused)
  2103  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2104  				it.fail = err
  2105  				return false
  2106  			}
  2107  			it.Event.Raw = log
  2108  			return true
  2109  
  2110  		default:
  2111  			return false
  2112  		}
  2113  	}
  2114  	// Iterator still in progress, wait for either a data or an error event
  2115  	select {
  2116  	case log := <-it.logs:
  2117  		it.Event = new(X2y2Paused)
  2118  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2119  			it.fail = err
  2120  			return false
  2121  		}
  2122  		it.Event.Raw = log
  2123  		return true
  2124  
  2125  	case err := <-it.sub.Err():
  2126  		it.done = true
  2127  		it.fail = err
  2128  		return it.Next()
  2129  	}
  2130  }
  2131  
  2132  // Error returns any retrieval or parsing error occurred during filtering.
  2133  func (it *X2y2PausedIterator) Error() error {
  2134  	return it.fail
  2135  }
  2136  
  2137  // Close terminates the iteration process, releasing any pending underlying
  2138  // resources.
  2139  func (it *X2y2PausedIterator) Close() error {
  2140  	it.sub.Unsubscribe()
  2141  	return nil
  2142  }
  2143  
  2144  // X2y2Paused represents a Paused event raised by the X2y2 contract.
  2145  type X2y2Paused struct {
  2146  	Account common.Address
  2147  	Raw     types.Log // Blockchain specific contextual infos
  2148  }
  2149  
  2150  // FilterPaused is a free log retrieval operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258.
  2151  //
  2152  // Solidity: event Paused(address account)
  2153  func (_X2y2 *X2y2Filterer) FilterPaused(opts *bind.FilterOpts) (*X2y2PausedIterator, error) {
  2154  
  2155  	logs, sub, err := _X2y2.contract.FilterLogs(opts, "Paused")
  2156  	if err != nil {
  2157  		return nil, err
  2158  	}
  2159  	return &X2y2PausedIterator{contract: _X2y2.contract, event: "Paused", logs: logs, sub: sub}, nil
  2160  }
  2161  
  2162  // WatchPaused is a free log subscription operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258.
  2163  //
  2164  // Solidity: event Paused(address account)
  2165  func (_X2y2 *X2y2Filterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *X2y2Paused) (event.Subscription, error) {
  2166  
  2167  	logs, sub, err := _X2y2.contract.WatchLogs(opts, "Paused")
  2168  	if err != nil {
  2169  		return nil, err
  2170  	}
  2171  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2172  		defer sub.Unsubscribe()
  2173  		for {
  2174  			select {
  2175  			case log := <-logs:
  2176  				// New log arrived, parse the event and forward to the user
  2177  				event := new(X2y2Paused)
  2178  				if err := _X2y2.contract.UnpackLog(event, "Paused", log); err != nil {
  2179  					return err
  2180  				}
  2181  				event.Raw = log
  2182  
  2183  				select {
  2184  				case sink <- event:
  2185  				case err := <-sub.Err():
  2186  					return err
  2187  				case <-quit:
  2188  					return nil
  2189  				}
  2190  			case err := <-sub.Err():
  2191  				return err
  2192  			case <-quit:
  2193  				return nil
  2194  			}
  2195  		}
  2196  	}), nil
  2197  }
  2198  
  2199  // ParsePaused is a log parse operation binding the contract event 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258.
  2200  //
  2201  // Solidity: event Paused(address account)
  2202  func (_X2y2 *X2y2Filterer) ParsePaused(log types.Log) (*X2y2Paused, error) {
  2203  	event := new(X2y2Paused)
  2204  	if err := _X2y2.contract.UnpackLog(event, "Paused", log); err != nil {
  2205  		return nil, err
  2206  	}
  2207  	event.Raw = log
  2208  	return event, nil
  2209  }
  2210  
  2211  // X2y2UnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the X2y2 contract.
  2212  type X2y2UnpausedIterator struct {
  2213  	Event *X2y2Unpaused // Event containing the contract specifics and raw log
  2214  
  2215  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2216  	event    string              // Event name to use for unpacking event data
  2217  
  2218  	logs chan types.Log        // Log channel receiving the found contract events
  2219  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2220  	done bool                  // Whether the subscription completed delivering logs
  2221  	fail error                 // Occurred error to stop iteration
  2222  }
  2223  
  2224  // Next advances the iterator to the subsequent event, returning whether there
  2225  // are any more events found. In case of a retrieval or parsing error, false is
  2226  // returned and Error() can be queried for the exact failure.
  2227  func (it *X2y2UnpausedIterator) Next() bool {
  2228  	// If the iterator failed, stop iterating
  2229  	if it.fail != nil {
  2230  		return false
  2231  	}
  2232  	// If the iterator completed, deliver directly whatever's available
  2233  	if it.done {
  2234  		select {
  2235  		case log := <-it.logs:
  2236  			it.Event = new(X2y2Unpaused)
  2237  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2238  				it.fail = err
  2239  				return false
  2240  			}
  2241  			it.Event.Raw = log
  2242  			return true
  2243  
  2244  		default:
  2245  			return false
  2246  		}
  2247  	}
  2248  	// Iterator still in progress, wait for either a data or an error event
  2249  	select {
  2250  	case log := <-it.logs:
  2251  		it.Event = new(X2y2Unpaused)
  2252  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2253  			it.fail = err
  2254  			return false
  2255  		}
  2256  		it.Event.Raw = log
  2257  		return true
  2258  
  2259  	case err := <-it.sub.Err():
  2260  		it.done = true
  2261  		it.fail = err
  2262  		return it.Next()
  2263  	}
  2264  }
  2265  
  2266  // Error returns any retrieval or parsing error occurred during filtering.
  2267  func (it *X2y2UnpausedIterator) Error() error {
  2268  	return it.fail
  2269  }
  2270  
  2271  // Close terminates the iteration process, releasing any pending underlying
  2272  // resources.
  2273  func (it *X2y2UnpausedIterator) Close() error {
  2274  	it.sub.Unsubscribe()
  2275  	return nil
  2276  }
  2277  
  2278  // X2y2Unpaused represents a Unpaused event raised by the X2y2 contract.
  2279  type X2y2Unpaused struct {
  2280  	Account common.Address
  2281  	Raw     types.Log // Blockchain specific contextual infos
  2282  }
  2283  
  2284  // FilterUnpaused is a free log retrieval operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa.
  2285  //
  2286  // Solidity: event Unpaused(address account)
  2287  func (_X2y2 *X2y2Filterer) FilterUnpaused(opts *bind.FilterOpts) (*X2y2UnpausedIterator, error) {
  2288  
  2289  	logs, sub, err := _X2y2.contract.FilterLogs(opts, "Unpaused")
  2290  	if err != nil {
  2291  		return nil, err
  2292  	}
  2293  	return &X2y2UnpausedIterator{contract: _X2y2.contract, event: "Unpaused", logs: logs, sub: sub}, nil
  2294  }
  2295  
  2296  // WatchUnpaused is a free log subscription operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa.
  2297  //
  2298  // Solidity: event Unpaused(address account)
  2299  func (_X2y2 *X2y2Filterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *X2y2Unpaused) (event.Subscription, error) {
  2300  
  2301  	logs, sub, err := _X2y2.contract.WatchLogs(opts, "Unpaused")
  2302  	if err != nil {
  2303  		return nil, err
  2304  	}
  2305  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2306  		defer sub.Unsubscribe()
  2307  		for {
  2308  			select {
  2309  			case log := <-logs:
  2310  				// New log arrived, parse the event and forward to the user
  2311  				event := new(X2y2Unpaused)
  2312  				if err := _X2y2.contract.UnpackLog(event, "Unpaused", log); err != nil {
  2313  					return err
  2314  				}
  2315  				event.Raw = log
  2316  
  2317  				select {
  2318  				case sink <- event:
  2319  				case err := <-sub.Err():
  2320  					return err
  2321  				case <-quit:
  2322  					return nil
  2323  				}
  2324  			case err := <-sub.Err():
  2325  				return err
  2326  			case <-quit:
  2327  				return nil
  2328  			}
  2329  		}
  2330  	}), nil
  2331  }
  2332  
  2333  // ParseUnpaused is a log parse operation binding the contract event 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa.
  2334  //
  2335  // Solidity: event Unpaused(address account)
  2336  func (_X2y2 *X2y2Filterer) ParseUnpaused(log types.Log) (*X2y2Unpaused, error) {
  2337  	event := new(X2y2Unpaused)
  2338  	if err := _X2y2.contract.UnpackLog(event, "Unpaused", log); err != nil {
  2339  		return nil, err
  2340  	}
  2341  	event.Raw = log
  2342  	return event, nil
  2343  }