github.com/diadata-org/diadata@v1.4.593/config/nftContracts/blurv1/blurv1.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 blurv1
     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  	_ = abi.ConvertType
    30  )
    31  
    32  // Execution is an auto generated low-level Go binding around an user-defined struct.
    33  type Execution struct {
    34  	Sell Input
    35  	Buy  Input
    36  }
    37  
    38  // Fee is an auto generated low-level Go binding around an user-defined struct.
    39  type Fee struct {
    40  	Rate      uint16
    41  	Recipient common.Address
    42  }
    43  
    44  // Input is an auto generated low-level Go binding around an user-defined struct.
    45  type Input struct {
    46  	Order            Order
    47  	V                uint8
    48  	R                [32]byte
    49  	S                [32]byte
    50  	ExtraSignature   []byte
    51  	SignatureVersion uint8
    52  	BlockNumber      *big.Int
    53  }
    54  
    55  // Order is an auto generated low-level Go binding around an user-defined struct.
    56  type Order struct {
    57  	Trader         common.Address
    58  	Side           uint8
    59  	MatchingPolicy common.Address
    60  	Collection     common.Address
    61  	TokenId        *big.Int
    62  	Amount         *big.Int
    63  	PaymentToken   common.Address
    64  	Price          *big.Int
    65  	ListingTime    *big.Int
    66  	ExpirationTime *big.Int
    67  	Fees           []Fee
    68  	Salt           *big.Int
    69  	ExtraParams    []byte
    70  }
    71  
    72  // Blurv1MetaData contains all meta data concerning the Blurv1 contract.
    73  var Blurv1MetaData = &bind.MetaData{
    74  	ABI: "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Closed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockRange\",\"type\":\"uint256\"}],\"name\":\"NewBlockRange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contractIExecutionDelegate\",\"name\":\"executionDelegate\",\"type\":\"address\"}],\"name\":\"NewExecutionDelegate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeRate\",\"type\":\"uint256\"}],\"name\":\"NewFeeRate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"}],\"name\":\"NewFeeRecipient\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"governor\",\"type\":\"address\"}],\"name\":\"NewGovernor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"NewOracle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contractIPolicyManager\",\"name\":\"policyManager\",\"type\":\"address\"}],\"name\":\"NewPolicyManager\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newNonce\",\"type\":\"uint256\"}],\"name\":\"NonceIncremented\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Opened\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"OrderCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"taker\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"enumSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"matchingPolicy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"rate\",\"type\":\"uint16\"},{\"internalType\":\"addresspayable\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"structFee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraParams\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOrder\",\"name\":\"sell\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"sellHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"enumSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"matchingPolicy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"rate\",\"type\":\"uint16\"},{\"internalType\":\"addresspayable\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"structFee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraParams\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"structOrder\",\"name\":\"buy\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"buyHash\",\"type\":\"bytes32\"}],\"name\":\"OrdersMatched\",\"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\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FEE_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INVERSE_BASIS_POINT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ORACLE_ORDER_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ORDER_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WETH\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"enumSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"matchingPolicy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"rate\",\"type\":\"uint16\"},{\"internalType\":\"addresspayable\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"structFee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraParams\",\"type\":\"bytes\"}],\"internalType\":\"structOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraSignature\",\"type\":\"bytes\"},{\"internalType\":\"enumSignatureVersion\",\"name\":\"signatureVersion\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"internalType\":\"structInput\",\"name\":\"sell\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"enumSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"matchingPolicy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"rate\",\"type\":\"uint16\"},{\"internalType\":\"addresspayable\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"structFee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraParams\",\"type\":\"bytes\"}],\"internalType\":\"structOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraSignature\",\"type\":\"bytes\"},{\"internalType\":\"enumSignatureVersion\",\"name\":\"signatureVersion\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"internalType\":\"structInput\",\"name\":\"buy\",\"type\":\"tuple\"}],\"name\":\"_execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"enumSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"matchingPolicy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"rate\",\"type\":\"uint16\"},{\"internalType\":\"addresspayable\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"structFee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraParams\",\"type\":\"bytes\"}],\"internalType\":\"structOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraSignature\",\"type\":\"bytes\"},{\"internalType\":\"enumSignatureVersion\",\"name\":\"signatureVersion\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"internalType\":\"structInput\",\"name\":\"sell\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"enumSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"matchingPolicy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"rate\",\"type\":\"uint16\"},{\"internalType\":\"addresspayable\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"structFee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraParams\",\"type\":\"bytes\"}],\"internalType\":\"structOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraSignature\",\"type\":\"bytes\"},{\"internalType\":\"enumSignatureVersion\",\"name\":\"signatureVersion\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"internalType\":\"structInput\",\"name\":\"buy\",\"type\":\"tuple\"}],\"internalType\":\"structExecution[]\",\"name\":\"executions\",\"type\":\"tuple[]\"}],\"name\":\"bulkExecute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"enumSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"matchingPolicy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"rate\",\"type\":\"uint16\"},{\"internalType\":\"addresspayable\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"structFee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraParams\",\"type\":\"bytes\"}],\"internalType\":\"structOrder\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"cancelOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"enumSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"matchingPolicy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"rate\",\"type\":\"uint16\"},{\"internalType\":\"addresspayable\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"structFee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraParams\",\"type\":\"bytes\"}],\"internalType\":\"structOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"}],\"name\":\"cancelOrders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"cancelledOrFilled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"enumSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"matchingPolicy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"rate\",\"type\":\"uint16\"},{\"internalType\":\"addresspayable\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"structFee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraParams\",\"type\":\"bytes\"}],\"internalType\":\"structOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraSignature\",\"type\":\"bytes\"},{\"internalType\":\"enumSignatureVersion\",\"name\":\"signatureVersion\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"internalType\":\"structInput\",\"name\":\"sell\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"enumSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"matchingPolicy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"listingTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"rate\",\"type\":\"uint16\"},{\"internalType\":\"addresspayable\",\"name\":\"recipient\",\"type\":\"address\"}],\"internalType\":\"structFee[]\",\"name\":\"fees\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"extraParams\",\"type\":\"bytes\"}],\"internalType\":\"structOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"extraSignature\",\"type\":\"bytes\"},{\"internalType\":\"enumSignatureVersion\",\"name\":\"signatureVersion\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"internalType\":\"structInput\",\"name\":\"buy\",\"type\":\"tuple\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"executionDelegate\",\"outputs\":[{\"internalType\":\"contractIExecutionDelegate\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"governor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"incrementNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIExecutionDelegate\",\"name\":\"_executionDelegate\",\"type\":\"address\"},{\"internalType\":\"contractIPolicyManager\",\"name\":\"_policyManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_oracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_blockRange\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInternal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOpen\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"open\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policyManager\",\"outputs\":[{\"internalType\":\"contractIPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remainingETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockRange\",\"type\":\"uint256\"}],\"name\":\"setBlockRange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIExecutionDelegate\",\"name\":\"_executionDelegate\",\"type\":\"address\"}],\"name\":\"setExecutionDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_feeRate\",\"type\":\"uint256\"}],\"name\":\"setFeeRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeRecipient\",\"type\":\"address\"}],\"name\":\"setFeeRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_governor\",\"type\":\"address\"}],\"name\":\"setGovernor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oracle\",\"type\":\"address\"}],\"name\":\"setOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIPolicyManager\",\"name\":\"_policyManager\",\"type\":\"address\"}],\"name\":\"setPolicyManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}]",
    75  }
    76  
    77  // Blurv1ABI is the input ABI used to generate the binding from.
    78  // Deprecated: Use Blurv1MetaData.ABI instead.
    79  var Blurv1ABI = Blurv1MetaData.ABI
    80  
    81  // Blurv1 is an auto generated Go binding around an Ethereum contract.
    82  type Blurv1 struct {
    83  	Blurv1Caller     // Read-only binding to the contract
    84  	Blurv1Transactor // Write-only binding to the contract
    85  	Blurv1Filterer   // Log filterer for contract events
    86  }
    87  
    88  // Blurv1Caller is an auto generated read-only Go binding around an Ethereum contract.
    89  type Blurv1Caller struct {
    90  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    91  }
    92  
    93  // Blurv1Transactor is an auto generated write-only Go binding around an Ethereum contract.
    94  type Blurv1Transactor struct {
    95  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    96  }
    97  
    98  // Blurv1Filterer is an auto generated log filtering Go binding around an Ethereum contract events.
    99  type Blurv1Filterer struct {
   100  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
   101  }
   102  
   103  // Blurv1Session is an auto generated Go binding around an Ethereum contract,
   104  // with pre-set call and transact options.
   105  type Blurv1Session struct {
   106  	Contract     *Blurv1           // Generic contract binding to set the session for
   107  	CallOpts     bind.CallOpts     // Call options to use throughout this session
   108  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   109  }
   110  
   111  // Blurv1CallerSession is an auto generated read-only Go binding around an Ethereum contract,
   112  // with pre-set call options.
   113  type Blurv1CallerSession struct {
   114  	Contract *Blurv1Caller // Generic contract caller binding to set the session for
   115  	CallOpts bind.CallOpts // Call options to use throughout this session
   116  }
   117  
   118  // Blurv1TransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   119  // with pre-set transact options.
   120  type Blurv1TransactorSession struct {
   121  	Contract     *Blurv1Transactor // Generic contract transactor binding to set the session for
   122  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
   123  }
   124  
   125  // Blurv1Raw is an auto generated low-level Go binding around an Ethereum contract.
   126  type Blurv1Raw struct {
   127  	Contract *Blurv1 // Generic contract binding to access the raw methods on
   128  }
   129  
   130  // Blurv1CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   131  type Blurv1CallerRaw struct {
   132  	Contract *Blurv1Caller // Generic read-only contract binding to access the raw methods on
   133  }
   134  
   135  // Blurv1TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   136  type Blurv1TransactorRaw struct {
   137  	Contract *Blurv1Transactor // Generic write-only contract binding to access the raw methods on
   138  }
   139  
   140  // NewBlurv1 creates a new instance of Blurv1, bound to a specific deployed contract.
   141  func NewBlurv1(address common.Address, backend bind.ContractBackend) (*Blurv1, error) {
   142  	contract, err := bindBlurv1(address, backend, backend, backend)
   143  	if err != nil {
   144  		return nil, err
   145  	}
   146  	return &Blurv1{Blurv1Caller: Blurv1Caller{contract: contract}, Blurv1Transactor: Blurv1Transactor{contract: contract}, Blurv1Filterer: Blurv1Filterer{contract: contract}}, nil
   147  }
   148  
   149  // NewBlurv1Caller creates a new read-only instance of Blurv1, bound to a specific deployed contract.
   150  func NewBlurv1Caller(address common.Address, caller bind.ContractCaller) (*Blurv1Caller, error) {
   151  	contract, err := bindBlurv1(address, caller, nil, nil)
   152  	if err != nil {
   153  		return nil, err
   154  	}
   155  	return &Blurv1Caller{contract: contract}, nil
   156  }
   157  
   158  // NewBlurv1Transactor creates a new write-only instance of Blurv1, bound to a specific deployed contract.
   159  func NewBlurv1Transactor(address common.Address, transactor bind.ContractTransactor) (*Blurv1Transactor, error) {
   160  	contract, err := bindBlurv1(address, nil, transactor, nil)
   161  	if err != nil {
   162  		return nil, err
   163  	}
   164  	return &Blurv1Transactor{contract: contract}, nil
   165  }
   166  
   167  // NewBlurv1Filterer creates a new log filterer instance of Blurv1, bound to a specific deployed contract.
   168  func NewBlurv1Filterer(address common.Address, filterer bind.ContractFilterer) (*Blurv1Filterer, error) {
   169  	contract, err := bindBlurv1(address, nil, nil, filterer)
   170  	if err != nil {
   171  		return nil, err
   172  	}
   173  	return &Blurv1Filterer{contract: contract}, nil
   174  }
   175  
   176  // bindBlurv1 binds a generic wrapper to an already deployed contract.
   177  func bindBlurv1(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   178  	parsed, err := Blurv1MetaData.GetAbi()
   179  	if err != nil {
   180  		return nil, err
   181  	}
   182  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   183  }
   184  
   185  // Call invokes the (constant) contract method with params as input values and
   186  // sets the output to result. The result type might be a single field for simple
   187  // returns, a slice of interfaces for anonymous returns and a struct for named
   188  // returns.
   189  func (_Blurv1 *Blurv1Raw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   190  	return _Blurv1.Contract.Blurv1Caller.contract.Call(opts, result, method, params...)
   191  }
   192  
   193  // Transfer initiates a plain transaction to move funds to the contract, calling
   194  // its default method if one is available.
   195  func (_Blurv1 *Blurv1Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   196  	return _Blurv1.Contract.Blurv1Transactor.contract.Transfer(opts)
   197  }
   198  
   199  // Transact invokes the (paid) contract method with params as input values.
   200  func (_Blurv1 *Blurv1Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   201  	return _Blurv1.Contract.Blurv1Transactor.contract.Transact(opts, method, params...)
   202  }
   203  
   204  // Call invokes the (constant) contract method with params as input values and
   205  // sets the output to result. The result type might be a single field for simple
   206  // returns, a slice of interfaces for anonymous returns and a struct for named
   207  // returns.
   208  func (_Blurv1 *Blurv1CallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   209  	return _Blurv1.Contract.contract.Call(opts, result, method, params...)
   210  }
   211  
   212  // Transfer initiates a plain transaction to move funds to the contract, calling
   213  // its default method if one is available.
   214  func (_Blurv1 *Blurv1TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   215  	return _Blurv1.Contract.contract.Transfer(opts)
   216  }
   217  
   218  // Transact invokes the (paid) contract method with params as input values.
   219  func (_Blurv1 *Blurv1TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   220  	return _Blurv1.Contract.contract.Transact(opts, method, params...)
   221  }
   222  
   223  // FEETYPEHASH is a free data retrieval call binding the contract method 0x4832ede1.
   224  //
   225  // Solidity: function FEE_TYPEHASH() view returns(bytes32)
   226  func (_Blurv1 *Blurv1Caller) FEETYPEHASH(opts *bind.CallOpts) ([32]byte, error) {
   227  	var out []interface{}
   228  	err := _Blurv1.contract.Call(opts, &out, "FEE_TYPEHASH")
   229  
   230  	if err != nil {
   231  		return *new([32]byte), err
   232  	}
   233  
   234  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   235  
   236  	return out0, err
   237  
   238  }
   239  
   240  // FEETYPEHASH is a free data retrieval call binding the contract method 0x4832ede1.
   241  //
   242  // Solidity: function FEE_TYPEHASH() view returns(bytes32)
   243  func (_Blurv1 *Blurv1Session) FEETYPEHASH() ([32]byte, error) {
   244  	return _Blurv1.Contract.FEETYPEHASH(&_Blurv1.CallOpts)
   245  }
   246  
   247  // FEETYPEHASH is a free data retrieval call binding the contract method 0x4832ede1.
   248  //
   249  // Solidity: function FEE_TYPEHASH() view returns(bytes32)
   250  func (_Blurv1 *Blurv1CallerSession) FEETYPEHASH() ([32]byte, error) {
   251  	return _Blurv1.Contract.FEETYPEHASH(&_Blurv1.CallOpts)
   252  }
   253  
   254  // INVERSEBASISPOINT is a free data retrieval call binding the contract method 0xcae6047f.
   255  //
   256  // Solidity: function INVERSE_BASIS_POINT() view returns(uint256)
   257  func (_Blurv1 *Blurv1Caller) INVERSEBASISPOINT(opts *bind.CallOpts) (*big.Int, error) {
   258  	var out []interface{}
   259  	err := _Blurv1.contract.Call(opts, &out, "INVERSE_BASIS_POINT")
   260  
   261  	if err != nil {
   262  		return *new(*big.Int), err
   263  	}
   264  
   265  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   266  
   267  	return out0, err
   268  
   269  }
   270  
   271  // INVERSEBASISPOINT is a free data retrieval call binding the contract method 0xcae6047f.
   272  //
   273  // Solidity: function INVERSE_BASIS_POINT() view returns(uint256)
   274  func (_Blurv1 *Blurv1Session) INVERSEBASISPOINT() (*big.Int, error) {
   275  	return _Blurv1.Contract.INVERSEBASISPOINT(&_Blurv1.CallOpts)
   276  }
   277  
   278  // INVERSEBASISPOINT is a free data retrieval call binding the contract method 0xcae6047f.
   279  //
   280  // Solidity: function INVERSE_BASIS_POINT() view returns(uint256)
   281  func (_Blurv1 *Blurv1CallerSession) INVERSEBASISPOINT() (*big.Int, error) {
   282  	return _Blurv1.Contract.INVERSEBASISPOINT(&_Blurv1.CallOpts)
   283  }
   284  
   285  // NAME is a free data retrieval call binding the contract method 0xa3f4df7e.
   286  //
   287  // Solidity: function NAME() view returns(string)
   288  func (_Blurv1 *Blurv1Caller) NAME(opts *bind.CallOpts) (string, error) {
   289  	var out []interface{}
   290  	err := _Blurv1.contract.Call(opts, &out, "NAME")
   291  
   292  	if err != nil {
   293  		return *new(string), err
   294  	}
   295  
   296  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   297  
   298  	return out0, err
   299  
   300  }
   301  
   302  // NAME is a free data retrieval call binding the contract method 0xa3f4df7e.
   303  //
   304  // Solidity: function NAME() view returns(string)
   305  func (_Blurv1 *Blurv1Session) NAME() (string, error) {
   306  	return _Blurv1.Contract.NAME(&_Blurv1.CallOpts)
   307  }
   308  
   309  // NAME is a free data retrieval call binding the contract method 0xa3f4df7e.
   310  //
   311  // Solidity: function NAME() view returns(string)
   312  func (_Blurv1 *Blurv1CallerSession) NAME() (string, error) {
   313  	return _Blurv1.Contract.NAME(&_Blurv1.CallOpts)
   314  }
   315  
   316  // ORACLEORDERTYPEHASH is a free data retrieval call binding the contract method 0x1d97c9bb.
   317  //
   318  // Solidity: function ORACLE_ORDER_TYPEHASH() view returns(bytes32)
   319  func (_Blurv1 *Blurv1Caller) ORACLEORDERTYPEHASH(opts *bind.CallOpts) ([32]byte, error) {
   320  	var out []interface{}
   321  	err := _Blurv1.contract.Call(opts, &out, "ORACLE_ORDER_TYPEHASH")
   322  
   323  	if err != nil {
   324  		return *new([32]byte), err
   325  	}
   326  
   327  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   328  
   329  	return out0, err
   330  
   331  }
   332  
   333  // ORACLEORDERTYPEHASH is a free data retrieval call binding the contract method 0x1d97c9bb.
   334  //
   335  // Solidity: function ORACLE_ORDER_TYPEHASH() view returns(bytes32)
   336  func (_Blurv1 *Blurv1Session) ORACLEORDERTYPEHASH() ([32]byte, error) {
   337  	return _Blurv1.Contract.ORACLEORDERTYPEHASH(&_Blurv1.CallOpts)
   338  }
   339  
   340  // ORACLEORDERTYPEHASH is a free data retrieval call binding the contract method 0x1d97c9bb.
   341  //
   342  // Solidity: function ORACLE_ORDER_TYPEHASH() view returns(bytes32)
   343  func (_Blurv1 *Blurv1CallerSession) ORACLEORDERTYPEHASH() ([32]byte, error) {
   344  	return _Blurv1.Contract.ORACLEORDERTYPEHASH(&_Blurv1.CallOpts)
   345  }
   346  
   347  // ORDERTYPEHASH is a free data retrieval call binding the contract method 0xf973a209.
   348  //
   349  // Solidity: function ORDER_TYPEHASH() view returns(bytes32)
   350  func (_Blurv1 *Blurv1Caller) ORDERTYPEHASH(opts *bind.CallOpts) ([32]byte, error) {
   351  	var out []interface{}
   352  	err := _Blurv1.contract.Call(opts, &out, "ORDER_TYPEHASH")
   353  
   354  	if err != nil {
   355  		return *new([32]byte), err
   356  	}
   357  
   358  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   359  
   360  	return out0, err
   361  
   362  }
   363  
   364  // ORDERTYPEHASH is a free data retrieval call binding the contract method 0xf973a209.
   365  //
   366  // Solidity: function ORDER_TYPEHASH() view returns(bytes32)
   367  func (_Blurv1 *Blurv1Session) ORDERTYPEHASH() ([32]byte, error) {
   368  	return _Blurv1.Contract.ORDERTYPEHASH(&_Blurv1.CallOpts)
   369  }
   370  
   371  // ORDERTYPEHASH is a free data retrieval call binding the contract method 0xf973a209.
   372  //
   373  // Solidity: function ORDER_TYPEHASH() view returns(bytes32)
   374  func (_Blurv1 *Blurv1CallerSession) ORDERTYPEHASH() ([32]byte, error) {
   375  	return _Blurv1.Contract.ORDERTYPEHASH(&_Blurv1.CallOpts)
   376  }
   377  
   378  // POOL is a free data retrieval call binding the contract method 0x7535d246.
   379  //
   380  // Solidity: function POOL() view returns(address)
   381  func (_Blurv1 *Blurv1Caller) POOL(opts *bind.CallOpts) (common.Address, error) {
   382  	var out []interface{}
   383  	err := _Blurv1.contract.Call(opts, &out, "POOL")
   384  
   385  	if err != nil {
   386  		return *new(common.Address), err
   387  	}
   388  
   389  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   390  
   391  	return out0, err
   392  
   393  }
   394  
   395  // POOL is a free data retrieval call binding the contract method 0x7535d246.
   396  //
   397  // Solidity: function POOL() view returns(address)
   398  func (_Blurv1 *Blurv1Session) POOL() (common.Address, error) {
   399  	return _Blurv1.Contract.POOL(&_Blurv1.CallOpts)
   400  }
   401  
   402  // POOL is a free data retrieval call binding the contract method 0x7535d246.
   403  //
   404  // Solidity: function POOL() view returns(address)
   405  func (_Blurv1 *Blurv1CallerSession) POOL() (common.Address, error) {
   406  	return _Blurv1.Contract.POOL(&_Blurv1.CallOpts)
   407  }
   408  
   409  // ROOTTYPEHASH is a free data retrieval call binding the contract method 0x31e6d0fe.
   410  //
   411  // Solidity: function ROOT_TYPEHASH() view returns(bytes32)
   412  func (_Blurv1 *Blurv1Caller) ROOTTYPEHASH(opts *bind.CallOpts) ([32]byte, error) {
   413  	var out []interface{}
   414  	err := _Blurv1.contract.Call(opts, &out, "ROOT_TYPEHASH")
   415  
   416  	if err != nil {
   417  		return *new([32]byte), err
   418  	}
   419  
   420  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   421  
   422  	return out0, err
   423  
   424  }
   425  
   426  // ROOTTYPEHASH is a free data retrieval call binding the contract method 0x31e6d0fe.
   427  //
   428  // Solidity: function ROOT_TYPEHASH() view returns(bytes32)
   429  func (_Blurv1 *Blurv1Session) ROOTTYPEHASH() ([32]byte, error) {
   430  	return _Blurv1.Contract.ROOTTYPEHASH(&_Blurv1.CallOpts)
   431  }
   432  
   433  // ROOTTYPEHASH is a free data retrieval call binding the contract method 0x31e6d0fe.
   434  //
   435  // Solidity: function ROOT_TYPEHASH() view returns(bytes32)
   436  func (_Blurv1 *Blurv1CallerSession) ROOTTYPEHASH() ([32]byte, error) {
   437  	return _Blurv1.Contract.ROOTTYPEHASH(&_Blurv1.CallOpts)
   438  }
   439  
   440  // VERSION is a free data retrieval call binding the contract method 0xffa1ad74.
   441  //
   442  // Solidity: function VERSION() view returns(string)
   443  func (_Blurv1 *Blurv1Caller) VERSION(opts *bind.CallOpts) (string, error) {
   444  	var out []interface{}
   445  	err := _Blurv1.contract.Call(opts, &out, "VERSION")
   446  
   447  	if err != nil {
   448  		return *new(string), err
   449  	}
   450  
   451  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   452  
   453  	return out0, err
   454  
   455  }
   456  
   457  // VERSION is a free data retrieval call binding the contract method 0xffa1ad74.
   458  //
   459  // Solidity: function VERSION() view returns(string)
   460  func (_Blurv1 *Blurv1Session) VERSION() (string, error) {
   461  	return _Blurv1.Contract.VERSION(&_Blurv1.CallOpts)
   462  }
   463  
   464  // VERSION is a free data retrieval call binding the contract method 0xffa1ad74.
   465  //
   466  // Solidity: function VERSION() view returns(string)
   467  func (_Blurv1 *Blurv1CallerSession) VERSION() (string, error) {
   468  	return _Blurv1.Contract.VERSION(&_Blurv1.CallOpts)
   469  }
   470  
   471  // WETH is a free data retrieval call binding the contract method 0xad5c4648.
   472  //
   473  // Solidity: function WETH() view returns(address)
   474  func (_Blurv1 *Blurv1Caller) WETH(opts *bind.CallOpts) (common.Address, error) {
   475  	var out []interface{}
   476  	err := _Blurv1.contract.Call(opts, &out, "WETH")
   477  
   478  	if err != nil {
   479  		return *new(common.Address), err
   480  	}
   481  
   482  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   483  
   484  	return out0, err
   485  
   486  }
   487  
   488  // WETH is a free data retrieval call binding the contract method 0xad5c4648.
   489  //
   490  // Solidity: function WETH() view returns(address)
   491  func (_Blurv1 *Blurv1Session) WETH() (common.Address, error) {
   492  	return _Blurv1.Contract.WETH(&_Blurv1.CallOpts)
   493  }
   494  
   495  // WETH is a free data retrieval call binding the contract method 0xad5c4648.
   496  //
   497  // Solidity: function WETH() view returns(address)
   498  func (_Blurv1 *Blurv1CallerSession) WETH() (common.Address, error) {
   499  	return _Blurv1.Contract.WETH(&_Blurv1.CallOpts)
   500  }
   501  
   502  // BlockRange is a free data retrieval call binding the contract method 0xa4b2c674.
   503  //
   504  // Solidity: function blockRange() view returns(uint256)
   505  func (_Blurv1 *Blurv1Caller) BlockRange(opts *bind.CallOpts) (*big.Int, error) {
   506  	var out []interface{}
   507  	err := _Blurv1.contract.Call(opts, &out, "blockRange")
   508  
   509  	if err != nil {
   510  		return *new(*big.Int), err
   511  	}
   512  
   513  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   514  
   515  	return out0, err
   516  
   517  }
   518  
   519  // BlockRange is a free data retrieval call binding the contract method 0xa4b2c674.
   520  //
   521  // Solidity: function blockRange() view returns(uint256)
   522  func (_Blurv1 *Blurv1Session) BlockRange() (*big.Int, error) {
   523  	return _Blurv1.Contract.BlockRange(&_Blurv1.CallOpts)
   524  }
   525  
   526  // BlockRange is a free data retrieval call binding the contract method 0xa4b2c674.
   527  //
   528  // Solidity: function blockRange() view returns(uint256)
   529  func (_Blurv1 *Blurv1CallerSession) BlockRange() (*big.Int, error) {
   530  	return _Blurv1.Contract.BlockRange(&_Blurv1.CallOpts)
   531  }
   532  
   533  // CancelledOrFilled is a free data retrieval call binding the contract method 0x5511f319.
   534  //
   535  // Solidity: function cancelledOrFilled(bytes32 ) view returns(bool)
   536  func (_Blurv1 *Blurv1Caller) CancelledOrFilled(opts *bind.CallOpts, arg0 [32]byte) (bool, error) {
   537  	var out []interface{}
   538  	err := _Blurv1.contract.Call(opts, &out, "cancelledOrFilled", arg0)
   539  
   540  	if err != nil {
   541  		return *new(bool), err
   542  	}
   543  
   544  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   545  
   546  	return out0, err
   547  
   548  }
   549  
   550  // CancelledOrFilled is a free data retrieval call binding the contract method 0x5511f319.
   551  //
   552  // Solidity: function cancelledOrFilled(bytes32 ) view returns(bool)
   553  func (_Blurv1 *Blurv1Session) CancelledOrFilled(arg0 [32]byte) (bool, error) {
   554  	return _Blurv1.Contract.CancelledOrFilled(&_Blurv1.CallOpts, arg0)
   555  }
   556  
   557  // CancelledOrFilled is a free data retrieval call binding the contract method 0x5511f319.
   558  //
   559  // Solidity: function cancelledOrFilled(bytes32 ) view returns(bool)
   560  func (_Blurv1 *Blurv1CallerSession) CancelledOrFilled(arg0 [32]byte) (bool, error) {
   561  	return _Blurv1.Contract.CancelledOrFilled(&_Blurv1.CallOpts, arg0)
   562  }
   563  
   564  // ExecutionDelegate is a free data retrieval call binding the contract method 0x986c9b20.
   565  //
   566  // Solidity: function executionDelegate() view returns(address)
   567  func (_Blurv1 *Blurv1Caller) ExecutionDelegate(opts *bind.CallOpts) (common.Address, error) {
   568  	var out []interface{}
   569  	err := _Blurv1.contract.Call(opts, &out, "executionDelegate")
   570  
   571  	if err != nil {
   572  		return *new(common.Address), err
   573  	}
   574  
   575  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   576  
   577  	return out0, err
   578  
   579  }
   580  
   581  // ExecutionDelegate is a free data retrieval call binding the contract method 0x986c9b20.
   582  //
   583  // Solidity: function executionDelegate() view returns(address)
   584  func (_Blurv1 *Blurv1Session) ExecutionDelegate() (common.Address, error) {
   585  	return _Blurv1.Contract.ExecutionDelegate(&_Blurv1.CallOpts)
   586  }
   587  
   588  // ExecutionDelegate is a free data retrieval call binding the contract method 0x986c9b20.
   589  //
   590  // Solidity: function executionDelegate() view returns(address)
   591  func (_Blurv1 *Blurv1CallerSession) ExecutionDelegate() (common.Address, error) {
   592  	return _Blurv1.Contract.ExecutionDelegate(&_Blurv1.CallOpts)
   593  }
   594  
   595  // FeeRate is a free data retrieval call binding the contract method 0x978bbdb9.
   596  //
   597  // Solidity: function feeRate() view returns(uint256)
   598  func (_Blurv1 *Blurv1Caller) FeeRate(opts *bind.CallOpts) (*big.Int, error) {
   599  	var out []interface{}
   600  	err := _Blurv1.contract.Call(opts, &out, "feeRate")
   601  
   602  	if err != nil {
   603  		return *new(*big.Int), err
   604  	}
   605  
   606  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   607  
   608  	return out0, err
   609  
   610  }
   611  
   612  // FeeRate is a free data retrieval call binding the contract method 0x978bbdb9.
   613  //
   614  // Solidity: function feeRate() view returns(uint256)
   615  func (_Blurv1 *Blurv1Session) FeeRate() (*big.Int, error) {
   616  	return _Blurv1.Contract.FeeRate(&_Blurv1.CallOpts)
   617  }
   618  
   619  // FeeRate is a free data retrieval call binding the contract method 0x978bbdb9.
   620  //
   621  // Solidity: function feeRate() view returns(uint256)
   622  func (_Blurv1 *Blurv1CallerSession) FeeRate() (*big.Int, error) {
   623  	return _Blurv1.Contract.FeeRate(&_Blurv1.CallOpts)
   624  }
   625  
   626  // FeeRecipient is a free data retrieval call binding the contract method 0x46904840.
   627  //
   628  // Solidity: function feeRecipient() view returns(address)
   629  func (_Blurv1 *Blurv1Caller) FeeRecipient(opts *bind.CallOpts) (common.Address, error) {
   630  	var out []interface{}
   631  	err := _Blurv1.contract.Call(opts, &out, "feeRecipient")
   632  
   633  	if err != nil {
   634  		return *new(common.Address), err
   635  	}
   636  
   637  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   638  
   639  	return out0, err
   640  
   641  }
   642  
   643  // FeeRecipient is a free data retrieval call binding the contract method 0x46904840.
   644  //
   645  // Solidity: function feeRecipient() view returns(address)
   646  func (_Blurv1 *Blurv1Session) FeeRecipient() (common.Address, error) {
   647  	return _Blurv1.Contract.FeeRecipient(&_Blurv1.CallOpts)
   648  }
   649  
   650  // FeeRecipient is a free data retrieval call binding the contract method 0x46904840.
   651  //
   652  // Solidity: function feeRecipient() view returns(address)
   653  func (_Blurv1 *Blurv1CallerSession) FeeRecipient() (common.Address, error) {
   654  	return _Blurv1.Contract.FeeRecipient(&_Blurv1.CallOpts)
   655  }
   656  
   657  // Governor is a free data retrieval call binding the contract method 0x0c340a24.
   658  //
   659  // Solidity: function governor() view returns(address)
   660  func (_Blurv1 *Blurv1Caller) Governor(opts *bind.CallOpts) (common.Address, error) {
   661  	var out []interface{}
   662  	err := _Blurv1.contract.Call(opts, &out, "governor")
   663  
   664  	if err != nil {
   665  		return *new(common.Address), err
   666  	}
   667  
   668  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   669  
   670  	return out0, err
   671  
   672  }
   673  
   674  // Governor is a free data retrieval call binding the contract method 0x0c340a24.
   675  //
   676  // Solidity: function governor() view returns(address)
   677  func (_Blurv1 *Blurv1Session) Governor() (common.Address, error) {
   678  	return _Blurv1.Contract.Governor(&_Blurv1.CallOpts)
   679  }
   680  
   681  // Governor is a free data retrieval call binding the contract method 0x0c340a24.
   682  //
   683  // Solidity: function governor() view returns(address)
   684  func (_Blurv1 *Blurv1CallerSession) Governor() (common.Address, error) {
   685  	return _Blurv1.Contract.Governor(&_Blurv1.CallOpts)
   686  }
   687  
   688  // IsInternal is a free data retrieval call binding the contract method 0x16e29d71.
   689  //
   690  // Solidity: function isInternal() view returns(bool)
   691  func (_Blurv1 *Blurv1Caller) IsInternal(opts *bind.CallOpts) (bool, error) {
   692  	var out []interface{}
   693  	err := _Blurv1.contract.Call(opts, &out, "isInternal")
   694  
   695  	if err != nil {
   696  		return *new(bool), err
   697  	}
   698  
   699  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   700  
   701  	return out0, err
   702  
   703  }
   704  
   705  // IsInternal is a free data retrieval call binding the contract method 0x16e29d71.
   706  //
   707  // Solidity: function isInternal() view returns(bool)
   708  func (_Blurv1 *Blurv1Session) IsInternal() (bool, error) {
   709  	return _Blurv1.Contract.IsInternal(&_Blurv1.CallOpts)
   710  }
   711  
   712  // IsInternal is a free data retrieval call binding the contract method 0x16e29d71.
   713  //
   714  // Solidity: function isInternal() view returns(bool)
   715  func (_Blurv1 *Blurv1CallerSession) IsInternal() (bool, error) {
   716  	return _Blurv1.Contract.IsInternal(&_Blurv1.CallOpts)
   717  }
   718  
   719  // IsOpen is a free data retrieval call binding the contract method 0x47535d7b.
   720  //
   721  // Solidity: function isOpen() view returns(uint256)
   722  func (_Blurv1 *Blurv1Caller) IsOpen(opts *bind.CallOpts) (*big.Int, error) {
   723  	var out []interface{}
   724  	err := _Blurv1.contract.Call(opts, &out, "isOpen")
   725  
   726  	if err != nil {
   727  		return *new(*big.Int), err
   728  	}
   729  
   730  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   731  
   732  	return out0, err
   733  
   734  }
   735  
   736  // IsOpen is a free data retrieval call binding the contract method 0x47535d7b.
   737  //
   738  // Solidity: function isOpen() view returns(uint256)
   739  func (_Blurv1 *Blurv1Session) IsOpen() (*big.Int, error) {
   740  	return _Blurv1.Contract.IsOpen(&_Blurv1.CallOpts)
   741  }
   742  
   743  // IsOpen is a free data retrieval call binding the contract method 0x47535d7b.
   744  //
   745  // Solidity: function isOpen() view returns(uint256)
   746  func (_Blurv1 *Blurv1CallerSession) IsOpen() (*big.Int, error) {
   747  	return _Blurv1.Contract.IsOpen(&_Blurv1.CallOpts)
   748  }
   749  
   750  // Nonces is a free data retrieval call binding the contract method 0x7ecebe00.
   751  //
   752  // Solidity: function nonces(address ) view returns(uint256)
   753  func (_Blurv1 *Blurv1Caller) Nonces(opts *bind.CallOpts, arg0 common.Address) (*big.Int, error) {
   754  	var out []interface{}
   755  	err := _Blurv1.contract.Call(opts, &out, "nonces", arg0)
   756  
   757  	if err != nil {
   758  		return *new(*big.Int), err
   759  	}
   760  
   761  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   762  
   763  	return out0, err
   764  
   765  }
   766  
   767  // Nonces is a free data retrieval call binding the contract method 0x7ecebe00.
   768  //
   769  // Solidity: function nonces(address ) view returns(uint256)
   770  func (_Blurv1 *Blurv1Session) Nonces(arg0 common.Address) (*big.Int, error) {
   771  	return _Blurv1.Contract.Nonces(&_Blurv1.CallOpts, arg0)
   772  }
   773  
   774  // Nonces is a free data retrieval call binding the contract method 0x7ecebe00.
   775  //
   776  // Solidity: function nonces(address ) view returns(uint256)
   777  func (_Blurv1 *Blurv1CallerSession) Nonces(arg0 common.Address) (*big.Int, error) {
   778  	return _Blurv1.Contract.Nonces(&_Blurv1.CallOpts, arg0)
   779  }
   780  
   781  // Oracle is a free data retrieval call binding the contract method 0x7dc0d1d0.
   782  //
   783  // Solidity: function oracle() view returns(address)
   784  func (_Blurv1 *Blurv1Caller) Oracle(opts *bind.CallOpts) (common.Address, error) {
   785  	var out []interface{}
   786  	err := _Blurv1.contract.Call(opts, &out, "oracle")
   787  
   788  	if err != nil {
   789  		return *new(common.Address), err
   790  	}
   791  
   792  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   793  
   794  	return out0, err
   795  
   796  }
   797  
   798  // Oracle is a free data retrieval call binding the contract method 0x7dc0d1d0.
   799  //
   800  // Solidity: function oracle() view returns(address)
   801  func (_Blurv1 *Blurv1Session) Oracle() (common.Address, error) {
   802  	return _Blurv1.Contract.Oracle(&_Blurv1.CallOpts)
   803  }
   804  
   805  // Oracle is a free data retrieval call binding the contract method 0x7dc0d1d0.
   806  //
   807  // Solidity: function oracle() view returns(address)
   808  func (_Blurv1 *Blurv1CallerSession) Oracle() (common.Address, error) {
   809  	return _Blurv1.Contract.Oracle(&_Blurv1.CallOpts)
   810  }
   811  
   812  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   813  //
   814  // Solidity: function owner() view returns(address)
   815  func (_Blurv1 *Blurv1Caller) Owner(opts *bind.CallOpts) (common.Address, error) {
   816  	var out []interface{}
   817  	err := _Blurv1.contract.Call(opts, &out, "owner")
   818  
   819  	if err != nil {
   820  		return *new(common.Address), err
   821  	}
   822  
   823  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   824  
   825  	return out0, err
   826  
   827  }
   828  
   829  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   830  //
   831  // Solidity: function owner() view returns(address)
   832  func (_Blurv1 *Blurv1Session) Owner() (common.Address, error) {
   833  	return _Blurv1.Contract.Owner(&_Blurv1.CallOpts)
   834  }
   835  
   836  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   837  //
   838  // Solidity: function owner() view returns(address)
   839  func (_Blurv1 *Blurv1CallerSession) Owner() (common.Address, error) {
   840  	return _Blurv1.Contract.Owner(&_Blurv1.CallOpts)
   841  }
   842  
   843  // PolicyManager is a free data retrieval call binding the contract method 0xab3dbf3b.
   844  //
   845  // Solidity: function policyManager() view returns(address)
   846  func (_Blurv1 *Blurv1Caller) PolicyManager(opts *bind.CallOpts) (common.Address, error) {
   847  	var out []interface{}
   848  	err := _Blurv1.contract.Call(opts, &out, "policyManager")
   849  
   850  	if err != nil {
   851  		return *new(common.Address), err
   852  	}
   853  
   854  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   855  
   856  	return out0, err
   857  
   858  }
   859  
   860  // PolicyManager is a free data retrieval call binding the contract method 0xab3dbf3b.
   861  //
   862  // Solidity: function policyManager() view returns(address)
   863  func (_Blurv1 *Blurv1Session) PolicyManager() (common.Address, error) {
   864  	return _Blurv1.Contract.PolicyManager(&_Blurv1.CallOpts)
   865  }
   866  
   867  // PolicyManager is a free data retrieval call binding the contract method 0xab3dbf3b.
   868  //
   869  // Solidity: function policyManager() view returns(address)
   870  func (_Blurv1 *Blurv1CallerSession) PolicyManager() (common.Address, error) {
   871  	return _Blurv1.Contract.PolicyManager(&_Blurv1.CallOpts)
   872  }
   873  
   874  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
   875  //
   876  // Solidity: function proxiableUUID() view returns(bytes32)
   877  func (_Blurv1 *Blurv1Caller) ProxiableUUID(opts *bind.CallOpts) ([32]byte, error) {
   878  	var out []interface{}
   879  	err := _Blurv1.contract.Call(opts, &out, "proxiableUUID")
   880  
   881  	if err != nil {
   882  		return *new([32]byte), err
   883  	}
   884  
   885  	out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte)
   886  
   887  	return out0, err
   888  
   889  }
   890  
   891  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
   892  //
   893  // Solidity: function proxiableUUID() view returns(bytes32)
   894  func (_Blurv1 *Blurv1Session) ProxiableUUID() ([32]byte, error) {
   895  	return _Blurv1.Contract.ProxiableUUID(&_Blurv1.CallOpts)
   896  }
   897  
   898  // ProxiableUUID is a free data retrieval call binding the contract method 0x52d1902d.
   899  //
   900  // Solidity: function proxiableUUID() view returns(bytes32)
   901  func (_Blurv1 *Blurv1CallerSession) ProxiableUUID() ([32]byte, error) {
   902  	return _Blurv1.Contract.ProxiableUUID(&_Blurv1.CallOpts)
   903  }
   904  
   905  // RemainingETH is a free data retrieval call binding the contract method 0x2c7acf8c.
   906  //
   907  // Solidity: function remainingETH() view returns(uint256)
   908  func (_Blurv1 *Blurv1Caller) RemainingETH(opts *bind.CallOpts) (*big.Int, error) {
   909  	var out []interface{}
   910  	err := _Blurv1.contract.Call(opts, &out, "remainingETH")
   911  
   912  	if err != nil {
   913  		return *new(*big.Int), err
   914  	}
   915  
   916  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   917  
   918  	return out0, err
   919  
   920  }
   921  
   922  // RemainingETH is a free data retrieval call binding the contract method 0x2c7acf8c.
   923  //
   924  // Solidity: function remainingETH() view returns(uint256)
   925  func (_Blurv1 *Blurv1Session) RemainingETH() (*big.Int, error) {
   926  	return _Blurv1.Contract.RemainingETH(&_Blurv1.CallOpts)
   927  }
   928  
   929  // RemainingETH is a free data retrieval call binding the contract method 0x2c7acf8c.
   930  //
   931  // Solidity: function remainingETH() view returns(uint256)
   932  func (_Blurv1 *Blurv1CallerSession) RemainingETH() (*big.Int, error) {
   933  	return _Blurv1.Contract.RemainingETH(&_Blurv1.CallOpts)
   934  }
   935  
   936  // Execution is a paid mutator transaction binding the contract method 0xe04d94ae.
   937  //
   938  // Solidity: function _execute(((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256) sell, ((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256) buy) payable returns()
   939  func (_Blurv1 *Blurv1Transactor) Execution(opts *bind.TransactOpts, sell Input, buy Input) (*types.Transaction, error) {
   940  	return _Blurv1.contract.Transact(opts, "_execute", sell, buy)
   941  }
   942  
   943  // Execution is a paid mutator transaction binding the contract method 0xe04d94ae.
   944  //
   945  // Solidity: function _execute(((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256) sell, ((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256) buy) payable returns()
   946  func (_Blurv1 *Blurv1Session) Execution(sell Input, buy Input) (*types.Transaction, error) {
   947  	return _Blurv1.Contract.Execution(&_Blurv1.TransactOpts, sell, buy)
   948  }
   949  
   950  // Execution is a paid mutator transaction binding the contract method 0xe04d94ae.
   951  //
   952  // Solidity: function _execute(((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256) sell, ((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256) buy) payable returns()
   953  func (_Blurv1 *Blurv1TransactorSession) Execution(sell Input, buy Input) (*types.Transaction, error) {
   954  	return _Blurv1.Contract.Execution(&_Blurv1.TransactOpts, sell, buy)
   955  }
   956  
   957  // BulkExecute is a paid mutator transaction binding the contract method 0xb3be57f8.
   958  //
   959  // Solidity: function bulkExecute((((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256),((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256))[] executions) payable returns()
   960  func (_Blurv1 *Blurv1Transactor) BulkExecute(opts *bind.TransactOpts, executions []Execution) (*types.Transaction, error) {
   961  	return _Blurv1.contract.Transact(opts, "bulkExecute", executions)
   962  }
   963  
   964  // BulkExecute is a paid mutator transaction binding the contract method 0xb3be57f8.
   965  //
   966  // Solidity: function bulkExecute((((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256),((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256))[] executions) payable returns()
   967  func (_Blurv1 *Blurv1Session) BulkExecute(executions []Execution) (*types.Transaction, error) {
   968  	return _Blurv1.Contract.BulkExecute(&_Blurv1.TransactOpts, executions)
   969  }
   970  
   971  // BulkExecute is a paid mutator transaction binding the contract method 0xb3be57f8.
   972  //
   973  // Solidity: function bulkExecute((((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256),((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256))[] executions) payable returns()
   974  func (_Blurv1 *Blurv1TransactorSession) BulkExecute(executions []Execution) (*types.Transaction, error) {
   975  	return _Blurv1.Contract.BulkExecute(&_Blurv1.TransactOpts, executions)
   976  }
   977  
   978  // CancelOrder is a paid mutator transaction binding the contract method 0xf4acd740.
   979  //
   980  // Solidity: function cancelOrder((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes) order) returns()
   981  func (_Blurv1 *Blurv1Transactor) CancelOrder(opts *bind.TransactOpts, order Order) (*types.Transaction, error) {
   982  	return _Blurv1.contract.Transact(opts, "cancelOrder", order)
   983  }
   984  
   985  // CancelOrder is a paid mutator transaction binding the contract method 0xf4acd740.
   986  //
   987  // Solidity: function cancelOrder((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes) order) returns()
   988  func (_Blurv1 *Blurv1Session) CancelOrder(order Order) (*types.Transaction, error) {
   989  	return _Blurv1.Contract.CancelOrder(&_Blurv1.TransactOpts, order)
   990  }
   991  
   992  // CancelOrder is a paid mutator transaction binding the contract method 0xf4acd740.
   993  //
   994  // Solidity: function cancelOrder((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes) order) returns()
   995  func (_Blurv1 *Blurv1TransactorSession) CancelOrder(order Order) (*types.Transaction, error) {
   996  	return _Blurv1.Contract.CancelOrder(&_Blurv1.TransactOpts, order)
   997  }
   998  
   999  // CancelOrders is a paid mutator transaction binding the contract method 0xab7e8cba.
  1000  //
  1001  // Solidity: function cancelOrders((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes)[] orders) returns()
  1002  func (_Blurv1 *Blurv1Transactor) CancelOrders(opts *bind.TransactOpts, orders []Order) (*types.Transaction, error) {
  1003  	return _Blurv1.contract.Transact(opts, "cancelOrders", orders)
  1004  }
  1005  
  1006  // CancelOrders is a paid mutator transaction binding the contract method 0xab7e8cba.
  1007  //
  1008  // Solidity: function cancelOrders((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes)[] orders) returns()
  1009  func (_Blurv1 *Blurv1Session) CancelOrders(orders []Order) (*types.Transaction, error) {
  1010  	return _Blurv1.Contract.CancelOrders(&_Blurv1.TransactOpts, orders)
  1011  }
  1012  
  1013  // CancelOrders is a paid mutator transaction binding the contract method 0xab7e8cba.
  1014  //
  1015  // Solidity: function cancelOrders((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes)[] orders) returns()
  1016  func (_Blurv1 *Blurv1TransactorSession) CancelOrders(orders []Order) (*types.Transaction, error) {
  1017  	return _Blurv1.Contract.CancelOrders(&_Blurv1.TransactOpts, orders)
  1018  }
  1019  
  1020  // Close is a paid mutator transaction binding the contract method 0x43d726d6.
  1021  //
  1022  // Solidity: function close() returns()
  1023  func (_Blurv1 *Blurv1Transactor) Close(opts *bind.TransactOpts) (*types.Transaction, error) {
  1024  	return _Blurv1.contract.Transact(opts, "close")
  1025  }
  1026  
  1027  // Close is a paid mutator transaction binding the contract method 0x43d726d6.
  1028  //
  1029  // Solidity: function close() returns()
  1030  func (_Blurv1 *Blurv1Session) Close() (*types.Transaction, error) {
  1031  	return _Blurv1.Contract.Close(&_Blurv1.TransactOpts)
  1032  }
  1033  
  1034  // Close is a paid mutator transaction binding the contract method 0x43d726d6.
  1035  //
  1036  // Solidity: function close() returns()
  1037  func (_Blurv1 *Blurv1TransactorSession) Close() (*types.Transaction, error) {
  1038  	return _Blurv1.Contract.Close(&_Blurv1.TransactOpts)
  1039  }
  1040  
  1041  // Execute is a paid mutator transaction binding the contract method 0x9a1fc3a7.
  1042  //
  1043  // Solidity: function execute(((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256) sell, ((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256) buy) payable returns()
  1044  func (_Blurv1 *Blurv1Transactor) Execute(opts *bind.TransactOpts, sell Input, buy Input) (*types.Transaction, error) {
  1045  	return _Blurv1.contract.Transact(opts, "execute", sell, buy)
  1046  }
  1047  
  1048  // Execute is a paid mutator transaction binding the contract method 0x9a1fc3a7.
  1049  //
  1050  // Solidity: function execute(((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256) sell, ((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256) buy) payable returns()
  1051  func (_Blurv1 *Blurv1Session) Execute(sell Input, buy Input) (*types.Transaction, error) {
  1052  	return _Blurv1.Contract.Execute(&_Blurv1.TransactOpts, sell, buy)
  1053  }
  1054  
  1055  // Execute is a paid mutator transaction binding the contract method 0x9a1fc3a7.
  1056  //
  1057  // Solidity: function execute(((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256) sell, ((address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes),uint8,bytes32,bytes32,bytes,uint8,uint256) buy) payable returns()
  1058  func (_Blurv1 *Blurv1TransactorSession) Execute(sell Input, buy Input) (*types.Transaction, error) {
  1059  	return _Blurv1.Contract.Execute(&_Blurv1.TransactOpts, sell, buy)
  1060  }
  1061  
  1062  // IncrementNonce is a paid mutator transaction binding the contract method 0x627cdcb9.
  1063  //
  1064  // Solidity: function incrementNonce() returns()
  1065  func (_Blurv1 *Blurv1Transactor) IncrementNonce(opts *bind.TransactOpts) (*types.Transaction, error) {
  1066  	return _Blurv1.contract.Transact(opts, "incrementNonce")
  1067  }
  1068  
  1069  // IncrementNonce is a paid mutator transaction binding the contract method 0x627cdcb9.
  1070  //
  1071  // Solidity: function incrementNonce() returns()
  1072  func (_Blurv1 *Blurv1Session) IncrementNonce() (*types.Transaction, error) {
  1073  	return _Blurv1.Contract.IncrementNonce(&_Blurv1.TransactOpts)
  1074  }
  1075  
  1076  // IncrementNonce is a paid mutator transaction binding the contract method 0x627cdcb9.
  1077  //
  1078  // Solidity: function incrementNonce() returns()
  1079  func (_Blurv1 *Blurv1TransactorSession) IncrementNonce() (*types.Transaction, error) {
  1080  	return _Blurv1.Contract.IncrementNonce(&_Blurv1.TransactOpts)
  1081  }
  1082  
  1083  // Initialize is a paid mutator transaction binding the contract method 0xcf756fdf.
  1084  //
  1085  // Solidity: function initialize(address _executionDelegate, address _policyManager, address _oracle, uint256 _blockRange) returns()
  1086  func (_Blurv1 *Blurv1Transactor) Initialize(opts *bind.TransactOpts, _executionDelegate common.Address, _policyManager common.Address, _oracle common.Address, _blockRange *big.Int) (*types.Transaction, error) {
  1087  	return _Blurv1.contract.Transact(opts, "initialize", _executionDelegate, _policyManager, _oracle, _blockRange)
  1088  }
  1089  
  1090  // Initialize is a paid mutator transaction binding the contract method 0xcf756fdf.
  1091  //
  1092  // Solidity: function initialize(address _executionDelegate, address _policyManager, address _oracle, uint256 _blockRange) returns()
  1093  func (_Blurv1 *Blurv1Session) Initialize(_executionDelegate common.Address, _policyManager common.Address, _oracle common.Address, _blockRange *big.Int) (*types.Transaction, error) {
  1094  	return _Blurv1.Contract.Initialize(&_Blurv1.TransactOpts, _executionDelegate, _policyManager, _oracle, _blockRange)
  1095  }
  1096  
  1097  // Initialize is a paid mutator transaction binding the contract method 0xcf756fdf.
  1098  //
  1099  // Solidity: function initialize(address _executionDelegate, address _policyManager, address _oracle, uint256 _blockRange) returns()
  1100  func (_Blurv1 *Blurv1TransactorSession) Initialize(_executionDelegate common.Address, _policyManager common.Address, _oracle common.Address, _blockRange *big.Int) (*types.Transaction, error) {
  1101  	return _Blurv1.Contract.Initialize(&_Blurv1.TransactOpts, _executionDelegate, _policyManager, _oracle, _blockRange)
  1102  }
  1103  
  1104  // Open is a paid mutator transaction binding the contract method 0xfcfff16f.
  1105  //
  1106  // Solidity: function open() returns()
  1107  func (_Blurv1 *Blurv1Transactor) Open(opts *bind.TransactOpts) (*types.Transaction, error) {
  1108  	return _Blurv1.contract.Transact(opts, "open")
  1109  }
  1110  
  1111  // Open is a paid mutator transaction binding the contract method 0xfcfff16f.
  1112  //
  1113  // Solidity: function open() returns()
  1114  func (_Blurv1 *Blurv1Session) Open() (*types.Transaction, error) {
  1115  	return _Blurv1.Contract.Open(&_Blurv1.TransactOpts)
  1116  }
  1117  
  1118  // Open is a paid mutator transaction binding the contract method 0xfcfff16f.
  1119  //
  1120  // Solidity: function open() returns()
  1121  func (_Blurv1 *Blurv1TransactorSession) Open() (*types.Transaction, error) {
  1122  	return _Blurv1.Contract.Open(&_Blurv1.TransactOpts)
  1123  }
  1124  
  1125  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1126  //
  1127  // Solidity: function renounceOwnership() returns()
  1128  func (_Blurv1 *Blurv1Transactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  1129  	return _Blurv1.contract.Transact(opts, "renounceOwnership")
  1130  }
  1131  
  1132  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1133  //
  1134  // Solidity: function renounceOwnership() returns()
  1135  func (_Blurv1 *Blurv1Session) RenounceOwnership() (*types.Transaction, error) {
  1136  	return _Blurv1.Contract.RenounceOwnership(&_Blurv1.TransactOpts)
  1137  }
  1138  
  1139  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
  1140  //
  1141  // Solidity: function renounceOwnership() returns()
  1142  func (_Blurv1 *Blurv1TransactorSession) RenounceOwnership() (*types.Transaction, error) {
  1143  	return _Blurv1.Contract.RenounceOwnership(&_Blurv1.TransactOpts)
  1144  }
  1145  
  1146  // SetBlockRange is a paid mutator transaction binding the contract method 0x6992aa36.
  1147  //
  1148  // Solidity: function setBlockRange(uint256 _blockRange) returns()
  1149  func (_Blurv1 *Blurv1Transactor) SetBlockRange(opts *bind.TransactOpts, _blockRange *big.Int) (*types.Transaction, error) {
  1150  	return _Blurv1.contract.Transact(opts, "setBlockRange", _blockRange)
  1151  }
  1152  
  1153  // SetBlockRange is a paid mutator transaction binding the contract method 0x6992aa36.
  1154  //
  1155  // Solidity: function setBlockRange(uint256 _blockRange) returns()
  1156  func (_Blurv1 *Blurv1Session) SetBlockRange(_blockRange *big.Int) (*types.Transaction, error) {
  1157  	return _Blurv1.Contract.SetBlockRange(&_Blurv1.TransactOpts, _blockRange)
  1158  }
  1159  
  1160  // SetBlockRange is a paid mutator transaction binding the contract method 0x6992aa36.
  1161  //
  1162  // Solidity: function setBlockRange(uint256 _blockRange) returns()
  1163  func (_Blurv1 *Blurv1TransactorSession) SetBlockRange(_blockRange *big.Int) (*types.Transaction, error) {
  1164  	return _Blurv1.Contract.SetBlockRange(&_Blurv1.TransactOpts, _blockRange)
  1165  }
  1166  
  1167  // SetExecutionDelegate is a paid mutator transaction binding the contract method 0x037c9be2.
  1168  //
  1169  // Solidity: function setExecutionDelegate(address _executionDelegate) returns()
  1170  func (_Blurv1 *Blurv1Transactor) SetExecutionDelegate(opts *bind.TransactOpts, _executionDelegate common.Address) (*types.Transaction, error) {
  1171  	return _Blurv1.contract.Transact(opts, "setExecutionDelegate", _executionDelegate)
  1172  }
  1173  
  1174  // SetExecutionDelegate is a paid mutator transaction binding the contract method 0x037c9be2.
  1175  //
  1176  // Solidity: function setExecutionDelegate(address _executionDelegate) returns()
  1177  func (_Blurv1 *Blurv1Session) SetExecutionDelegate(_executionDelegate common.Address) (*types.Transaction, error) {
  1178  	return _Blurv1.Contract.SetExecutionDelegate(&_Blurv1.TransactOpts, _executionDelegate)
  1179  }
  1180  
  1181  // SetExecutionDelegate is a paid mutator transaction binding the contract method 0x037c9be2.
  1182  //
  1183  // Solidity: function setExecutionDelegate(address _executionDelegate) returns()
  1184  func (_Blurv1 *Blurv1TransactorSession) SetExecutionDelegate(_executionDelegate common.Address) (*types.Transaction, error) {
  1185  	return _Blurv1.Contract.SetExecutionDelegate(&_Blurv1.TransactOpts, _executionDelegate)
  1186  }
  1187  
  1188  // SetFeeRate is a paid mutator transaction binding the contract method 0x45596e2e.
  1189  //
  1190  // Solidity: function setFeeRate(uint256 _feeRate) returns()
  1191  func (_Blurv1 *Blurv1Transactor) SetFeeRate(opts *bind.TransactOpts, _feeRate *big.Int) (*types.Transaction, error) {
  1192  	return _Blurv1.contract.Transact(opts, "setFeeRate", _feeRate)
  1193  }
  1194  
  1195  // SetFeeRate is a paid mutator transaction binding the contract method 0x45596e2e.
  1196  //
  1197  // Solidity: function setFeeRate(uint256 _feeRate) returns()
  1198  func (_Blurv1 *Blurv1Session) SetFeeRate(_feeRate *big.Int) (*types.Transaction, error) {
  1199  	return _Blurv1.Contract.SetFeeRate(&_Blurv1.TransactOpts, _feeRate)
  1200  }
  1201  
  1202  // SetFeeRate is a paid mutator transaction binding the contract method 0x45596e2e.
  1203  //
  1204  // Solidity: function setFeeRate(uint256 _feeRate) returns()
  1205  func (_Blurv1 *Blurv1TransactorSession) SetFeeRate(_feeRate *big.Int) (*types.Transaction, error) {
  1206  	return _Blurv1.Contract.SetFeeRate(&_Blurv1.TransactOpts, _feeRate)
  1207  }
  1208  
  1209  // SetFeeRecipient is a paid mutator transaction binding the contract method 0xe74b981b.
  1210  //
  1211  // Solidity: function setFeeRecipient(address _feeRecipient) returns()
  1212  func (_Blurv1 *Blurv1Transactor) SetFeeRecipient(opts *bind.TransactOpts, _feeRecipient common.Address) (*types.Transaction, error) {
  1213  	return _Blurv1.contract.Transact(opts, "setFeeRecipient", _feeRecipient)
  1214  }
  1215  
  1216  // SetFeeRecipient is a paid mutator transaction binding the contract method 0xe74b981b.
  1217  //
  1218  // Solidity: function setFeeRecipient(address _feeRecipient) returns()
  1219  func (_Blurv1 *Blurv1Session) SetFeeRecipient(_feeRecipient common.Address) (*types.Transaction, error) {
  1220  	return _Blurv1.Contract.SetFeeRecipient(&_Blurv1.TransactOpts, _feeRecipient)
  1221  }
  1222  
  1223  // SetFeeRecipient is a paid mutator transaction binding the contract method 0xe74b981b.
  1224  //
  1225  // Solidity: function setFeeRecipient(address _feeRecipient) returns()
  1226  func (_Blurv1 *Blurv1TransactorSession) SetFeeRecipient(_feeRecipient common.Address) (*types.Transaction, error) {
  1227  	return _Blurv1.Contract.SetFeeRecipient(&_Blurv1.TransactOpts, _feeRecipient)
  1228  }
  1229  
  1230  // SetGovernor is a paid mutator transaction binding the contract method 0xc42cf535.
  1231  //
  1232  // Solidity: function setGovernor(address _governor) returns()
  1233  func (_Blurv1 *Blurv1Transactor) SetGovernor(opts *bind.TransactOpts, _governor common.Address) (*types.Transaction, error) {
  1234  	return _Blurv1.contract.Transact(opts, "setGovernor", _governor)
  1235  }
  1236  
  1237  // SetGovernor is a paid mutator transaction binding the contract method 0xc42cf535.
  1238  //
  1239  // Solidity: function setGovernor(address _governor) returns()
  1240  func (_Blurv1 *Blurv1Session) SetGovernor(_governor common.Address) (*types.Transaction, error) {
  1241  	return _Blurv1.Contract.SetGovernor(&_Blurv1.TransactOpts, _governor)
  1242  }
  1243  
  1244  // SetGovernor is a paid mutator transaction binding the contract method 0xc42cf535.
  1245  //
  1246  // Solidity: function setGovernor(address _governor) returns()
  1247  func (_Blurv1 *Blurv1TransactorSession) SetGovernor(_governor common.Address) (*types.Transaction, error) {
  1248  	return _Blurv1.Contract.SetGovernor(&_Blurv1.TransactOpts, _governor)
  1249  }
  1250  
  1251  // SetOracle is a paid mutator transaction binding the contract method 0x7adbf973.
  1252  //
  1253  // Solidity: function setOracle(address _oracle) returns()
  1254  func (_Blurv1 *Blurv1Transactor) SetOracle(opts *bind.TransactOpts, _oracle common.Address) (*types.Transaction, error) {
  1255  	return _Blurv1.contract.Transact(opts, "setOracle", _oracle)
  1256  }
  1257  
  1258  // SetOracle is a paid mutator transaction binding the contract method 0x7adbf973.
  1259  //
  1260  // Solidity: function setOracle(address _oracle) returns()
  1261  func (_Blurv1 *Blurv1Session) SetOracle(_oracle common.Address) (*types.Transaction, error) {
  1262  	return _Blurv1.Contract.SetOracle(&_Blurv1.TransactOpts, _oracle)
  1263  }
  1264  
  1265  // SetOracle is a paid mutator transaction binding the contract method 0x7adbf973.
  1266  //
  1267  // Solidity: function setOracle(address _oracle) returns()
  1268  func (_Blurv1 *Blurv1TransactorSession) SetOracle(_oracle common.Address) (*types.Transaction, error) {
  1269  	return _Blurv1.Contract.SetOracle(&_Blurv1.TransactOpts, _oracle)
  1270  }
  1271  
  1272  // SetPolicyManager is a paid mutator transaction binding the contract method 0xadde41e1.
  1273  //
  1274  // Solidity: function setPolicyManager(address _policyManager) returns()
  1275  func (_Blurv1 *Blurv1Transactor) SetPolicyManager(opts *bind.TransactOpts, _policyManager common.Address) (*types.Transaction, error) {
  1276  	return _Blurv1.contract.Transact(opts, "setPolicyManager", _policyManager)
  1277  }
  1278  
  1279  // SetPolicyManager is a paid mutator transaction binding the contract method 0xadde41e1.
  1280  //
  1281  // Solidity: function setPolicyManager(address _policyManager) returns()
  1282  func (_Blurv1 *Blurv1Session) SetPolicyManager(_policyManager common.Address) (*types.Transaction, error) {
  1283  	return _Blurv1.Contract.SetPolicyManager(&_Blurv1.TransactOpts, _policyManager)
  1284  }
  1285  
  1286  // SetPolicyManager is a paid mutator transaction binding the contract method 0xadde41e1.
  1287  //
  1288  // Solidity: function setPolicyManager(address _policyManager) returns()
  1289  func (_Blurv1 *Blurv1TransactorSession) SetPolicyManager(_policyManager common.Address) (*types.Transaction, error) {
  1290  	return _Blurv1.Contract.SetPolicyManager(&_Blurv1.TransactOpts, _policyManager)
  1291  }
  1292  
  1293  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1294  //
  1295  // Solidity: function transferOwnership(address newOwner) returns()
  1296  func (_Blurv1 *Blurv1Transactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
  1297  	return _Blurv1.contract.Transact(opts, "transferOwnership", newOwner)
  1298  }
  1299  
  1300  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1301  //
  1302  // Solidity: function transferOwnership(address newOwner) returns()
  1303  func (_Blurv1 *Blurv1Session) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1304  	return _Blurv1.Contract.TransferOwnership(&_Blurv1.TransactOpts, newOwner)
  1305  }
  1306  
  1307  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1308  //
  1309  // Solidity: function transferOwnership(address newOwner) returns()
  1310  func (_Blurv1 *Blurv1TransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
  1311  	return _Blurv1.Contract.TransferOwnership(&_Blurv1.TransactOpts, newOwner)
  1312  }
  1313  
  1314  // UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6.
  1315  //
  1316  // Solidity: function upgradeTo(address newImplementation) returns()
  1317  func (_Blurv1 *Blurv1Transactor) UpgradeTo(opts *bind.TransactOpts, newImplementation common.Address) (*types.Transaction, error) {
  1318  	return _Blurv1.contract.Transact(opts, "upgradeTo", newImplementation)
  1319  }
  1320  
  1321  // UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6.
  1322  //
  1323  // Solidity: function upgradeTo(address newImplementation) returns()
  1324  func (_Blurv1 *Blurv1Session) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) {
  1325  	return _Blurv1.Contract.UpgradeTo(&_Blurv1.TransactOpts, newImplementation)
  1326  }
  1327  
  1328  // UpgradeTo is a paid mutator transaction binding the contract method 0x3659cfe6.
  1329  //
  1330  // Solidity: function upgradeTo(address newImplementation) returns()
  1331  func (_Blurv1 *Blurv1TransactorSession) UpgradeTo(newImplementation common.Address) (*types.Transaction, error) {
  1332  	return _Blurv1.Contract.UpgradeTo(&_Blurv1.TransactOpts, newImplementation)
  1333  }
  1334  
  1335  // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286.
  1336  //
  1337  // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns()
  1338  func (_Blurv1 *Blurv1Transactor) UpgradeToAndCall(opts *bind.TransactOpts, newImplementation common.Address, data []byte) (*types.Transaction, error) {
  1339  	return _Blurv1.contract.Transact(opts, "upgradeToAndCall", newImplementation, data)
  1340  }
  1341  
  1342  // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286.
  1343  //
  1344  // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns()
  1345  func (_Blurv1 *Blurv1Session) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) {
  1346  	return _Blurv1.Contract.UpgradeToAndCall(&_Blurv1.TransactOpts, newImplementation, data)
  1347  }
  1348  
  1349  // UpgradeToAndCall is a paid mutator transaction binding the contract method 0x4f1ef286.
  1350  //
  1351  // Solidity: function upgradeToAndCall(address newImplementation, bytes data) payable returns()
  1352  func (_Blurv1 *Blurv1TransactorSession) UpgradeToAndCall(newImplementation common.Address, data []byte) (*types.Transaction, error) {
  1353  	return _Blurv1.Contract.UpgradeToAndCall(&_Blurv1.TransactOpts, newImplementation, data)
  1354  }
  1355  
  1356  // Blurv1AdminChangedIterator is returned from FilterAdminChanged and is used to iterate over the raw logs and unpacked data for AdminChanged events raised by the Blurv1 contract.
  1357  type Blurv1AdminChangedIterator struct {
  1358  	Event *Blurv1AdminChanged // Event containing the contract specifics and raw log
  1359  
  1360  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1361  	event    string              // Event name to use for unpacking event data
  1362  
  1363  	logs chan types.Log        // Log channel receiving the found contract events
  1364  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1365  	done bool                  // Whether the subscription completed delivering logs
  1366  	fail error                 // Occurred error to stop iteration
  1367  }
  1368  
  1369  // Next advances the iterator to the subsequent event, returning whether there
  1370  // are any more events found. In case of a retrieval or parsing error, false is
  1371  // returned and Error() can be queried for the exact failure.
  1372  func (it *Blurv1AdminChangedIterator) Next() bool {
  1373  	// If the iterator failed, stop iterating
  1374  	if it.fail != nil {
  1375  		return false
  1376  	}
  1377  	// If the iterator completed, deliver directly whatever's available
  1378  	if it.done {
  1379  		select {
  1380  		case log := <-it.logs:
  1381  			it.Event = new(Blurv1AdminChanged)
  1382  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1383  				it.fail = err
  1384  				return false
  1385  			}
  1386  			it.Event.Raw = log
  1387  			return true
  1388  
  1389  		default:
  1390  			return false
  1391  		}
  1392  	}
  1393  	// Iterator still in progress, wait for either a data or an error event
  1394  	select {
  1395  	case log := <-it.logs:
  1396  		it.Event = new(Blurv1AdminChanged)
  1397  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1398  			it.fail = err
  1399  			return false
  1400  		}
  1401  		it.Event.Raw = log
  1402  		return true
  1403  
  1404  	case err := <-it.sub.Err():
  1405  		it.done = true
  1406  		it.fail = err
  1407  		return it.Next()
  1408  	}
  1409  }
  1410  
  1411  // Error returns any retrieval or parsing error occurred during filtering.
  1412  func (it *Blurv1AdminChangedIterator) Error() error {
  1413  	return it.fail
  1414  }
  1415  
  1416  // Close terminates the iteration process, releasing any pending underlying
  1417  // resources.
  1418  func (it *Blurv1AdminChangedIterator) Close() error {
  1419  	it.sub.Unsubscribe()
  1420  	return nil
  1421  }
  1422  
  1423  // Blurv1AdminChanged represents a AdminChanged event raised by the Blurv1 contract.
  1424  type Blurv1AdminChanged struct {
  1425  	PreviousAdmin common.Address
  1426  	NewAdmin      common.Address
  1427  	Raw           types.Log // Blockchain specific contextual infos
  1428  }
  1429  
  1430  // FilterAdminChanged is a free log retrieval operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  1431  //
  1432  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  1433  func (_Blurv1 *Blurv1Filterer) FilterAdminChanged(opts *bind.FilterOpts) (*Blurv1AdminChangedIterator, error) {
  1434  
  1435  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "AdminChanged")
  1436  	if err != nil {
  1437  		return nil, err
  1438  	}
  1439  	return &Blurv1AdminChangedIterator{contract: _Blurv1.contract, event: "AdminChanged", logs: logs, sub: sub}, nil
  1440  }
  1441  
  1442  // WatchAdminChanged is a free log subscription operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  1443  //
  1444  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  1445  func (_Blurv1 *Blurv1Filterer) WatchAdminChanged(opts *bind.WatchOpts, sink chan<- *Blurv1AdminChanged) (event.Subscription, error) {
  1446  
  1447  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "AdminChanged")
  1448  	if err != nil {
  1449  		return nil, err
  1450  	}
  1451  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1452  		defer sub.Unsubscribe()
  1453  		for {
  1454  			select {
  1455  			case log := <-logs:
  1456  				// New log arrived, parse the event and forward to the user
  1457  				event := new(Blurv1AdminChanged)
  1458  				if err := _Blurv1.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  1459  					return err
  1460  				}
  1461  				event.Raw = log
  1462  
  1463  				select {
  1464  				case sink <- event:
  1465  				case err := <-sub.Err():
  1466  					return err
  1467  				case <-quit:
  1468  					return nil
  1469  				}
  1470  			case err := <-sub.Err():
  1471  				return err
  1472  			case <-quit:
  1473  				return nil
  1474  			}
  1475  		}
  1476  	}), nil
  1477  }
  1478  
  1479  // ParseAdminChanged is a log parse operation binding the contract event 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f.
  1480  //
  1481  // Solidity: event AdminChanged(address previousAdmin, address newAdmin)
  1482  func (_Blurv1 *Blurv1Filterer) ParseAdminChanged(log types.Log) (*Blurv1AdminChanged, error) {
  1483  	event := new(Blurv1AdminChanged)
  1484  	if err := _Blurv1.contract.UnpackLog(event, "AdminChanged", log); err != nil {
  1485  		return nil, err
  1486  	}
  1487  	event.Raw = log
  1488  	return event, nil
  1489  }
  1490  
  1491  // Blurv1BeaconUpgradedIterator is returned from FilterBeaconUpgraded and is used to iterate over the raw logs and unpacked data for BeaconUpgraded events raised by the Blurv1 contract.
  1492  type Blurv1BeaconUpgradedIterator struct {
  1493  	Event *Blurv1BeaconUpgraded // Event containing the contract specifics and raw log
  1494  
  1495  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1496  	event    string              // Event name to use for unpacking event data
  1497  
  1498  	logs chan types.Log        // Log channel receiving the found contract events
  1499  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1500  	done bool                  // Whether the subscription completed delivering logs
  1501  	fail error                 // Occurred error to stop iteration
  1502  }
  1503  
  1504  // Next advances the iterator to the subsequent event, returning whether there
  1505  // are any more events found. In case of a retrieval or parsing error, false is
  1506  // returned and Error() can be queried for the exact failure.
  1507  func (it *Blurv1BeaconUpgradedIterator) Next() bool {
  1508  	// If the iterator failed, stop iterating
  1509  	if it.fail != nil {
  1510  		return false
  1511  	}
  1512  	// If the iterator completed, deliver directly whatever's available
  1513  	if it.done {
  1514  		select {
  1515  		case log := <-it.logs:
  1516  			it.Event = new(Blurv1BeaconUpgraded)
  1517  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1518  				it.fail = err
  1519  				return false
  1520  			}
  1521  			it.Event.Raw = log
  1522  			return true
  1523  
  1524  		default:
  1525  			return false
  1526  		}
  1527  	}
  1528  	// Iterator still in progress, wait for either a data or an error event
  1529  	select {
  1530  	case log := <-it.logs:
  1531  		it.Event = new(Blurv1BeaconUpgraded)
  1532  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1533  			it.fail = err
  1534  			return false
  1535  		}
  1536  		it.Event.Raw = log
  1537  		return true
  1538  
  1539  	case err := <-it.sub.Err():
  1540  		it.done = true
  1541  		it.fail = err
  1542  		return it.Next()
  1543  	}
  1544  }
  1545  
  1546  // Error returns any retrieval or parsing error occurred during filtering.
  1547  func (it *Blurv1BeaconUpgradedIterator) Error() error {
  1548  	return it.fail
  1549  }
  1550  
  1551  // Close terminates the iteration process, releasing any pending underlying
  1552  // resources.
  1553  func (it *Blurv1BeaconUpgradedIterator) Close() error {
  1554  	it.sub.Unsubscribe()
  1555  	return nil
  1556  }
  1557  
  1558  // Blurv1BeaconUpgraded represents a BeaconUpgraded event raised by the Blurv1 contract.
  1559  type Blurv1BeaconUpgraded struct {
  1560  	Beacon common.Address
  1561  	Raw    types.Log // Blockchain specific contextual infos
  1562  }
  1563  
  1564  // FilterBeaconUpgraded is a free log retrieval operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  1565  //
  1566  // Solidity: event BeaconUpgraded(address indexed beacon)
  1567  func (_Blurv1 *Blurv1Filterer) FilterBeaconUpgraded(opts *bind.FilterOpts, beacon []common.Address) (*Blurv1BeaconUpgradedIterator, error) {
  1568  
  1569  	var beaconRule []interface{}
  1570  	for _, beaconItem := range beacon {
  1571  		beaconRule = append(beaconRule, beaconItem)
  1572  	}
  1573  
  1574  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "BeaconUpgraded", beaconRule)
  1575  	if err != nil {
  1576  		return nil, err
  1577  	}
  1578  	return &Blurv1BeaconUpgradedIterator{contract: _Blurv1.contract, event: "BeaconUpgraded", logs: logs, sub: sub}, nil
  1579  }
  1580  
  1581  // WatchBeaconUpgraded is a free log subscription operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  1582  //
  1583  // Solidity: event BeaconUpgraded(address indexed beacon)
  1584  func (_Blurv1 *Blurv1Filterer) WatchBeaconUpgraded(opts *bind.WatchOpts, sink chan<- *Blurv1BeaconUpgraded, beacon []common.Address) (event.Subscription, error) {
  1585  
  1586  	var beaconRule []interface{}
  1587  	for _, beaconItem := range beacon {
  1588  		beaconRule = append(beaconRule, beaconItem)
  1589  	}
  1590  
  1591  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "BeaconUpgraded", beaconRule)
  1592  	if err != nil {
  1593  		return nil, err
  1594  	}
  1595  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1596  		defer sub.Unsubscribe()
  1597  		for {
  1598  			select {
  1599  			case log := <-logs:
  1600  				// New log arrived, parse the event and forward to the user
  1601  				event := new(Blurv1BeaconUpgraded)
  1602  				if err := _Blurv1.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  1603  					return err
  1604  				}
  1605  				event.Raw = log
  1606  
  1607  				select {
  1608  				case sink <- event:
  1609  				case err := <-sub.Err():
  1610  					return err
  1611  				case <-quit:
  1612  					return nil
  1613  				}
  1614  			case err := <-sub.Err():
  1615  				return err
  1616  			case <-quit:
  1617  				return nil
  1618  			}
  1619  		}
  1620  	}), nil
  1621  }
  1622  
  1623  // ParseBeaconUpgraded is a log parse operation binding the contract event 0x1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e.
  1624  //
  1625  // Solidity: event BeaconUpgraded(address indexed beacon)
  1626  func (_Blurv1 *Blurv1Filterer) ParseBeaconUpgraded(log types.Log) (*Blurv1BeaconUpgraded, error) {
  1627  	event := new(Blurv1BeaconUpgraded)
  1628  	if err := _Blurv1.contract.UnpackLog(event, "BeaconUpgraded", log); err != nil {
  1629  		return nil, err
  1630  	}
  1631  	event.Raw = log
  1632  	return event, nil
  1633  }
  1634  
  1635  // Blurv1ClosedIterator is returned from FilterClosed and is used to iterate over the raw logs and unpacked data for Closed events raised by the Blurv1 contract.
  1636  type Blurv1ClosedIterator struct {
  1637  	Event *Blurv1Closed // Event containing the contract specifics and raw log
  1638  
  1639  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1640  	event    string              // Event name to use for unpacking event data
  1641  
  1642  	logs chan types.Log        // Log channel receiving the found contract events
  1643  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1644  	done bool                  // Whether the subscription completed delivering logs
  1645  	fail error                 // Occurred error to stop iteration
  1646  }
  1647  
  1648  // Next advances the iterator to the subsequent event, returning whether there
  1649  // are any more events found. In case of a retrieval or parsing error, false is
  1650  // returned and Error() can be queried for the exact failure.
  1651  func (it *Blurv1ClosedIterator) Next() bool {
  1652  	// If the iterator failed, stop iterating
  1653  	if it.fail != nil {
  1654  		return false
  1655  	}
  1656  	// If the iterator completed, deliver directly whatever's available
  1657  	if it.done {
  1658  		select {
  1659  		case log := <-it.logs:
  1660  			it.Event = new(Blurv1Closed)
  1661  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1662  				it.fail = err
  1663  				return false
  1664  			}
  1665  			it.Event.Raw = log
  1666  			return true
  1667  
  1668  		default:
  1669  			return false
  1670  		}
  1671  	}
  1672  	// Iterator still in progress, wait for either a data or an error event
  1673  	select {
  1674  	case log := <-it.logs:
  1675  		it.Event = new(Blurv1Closed)
  1676  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1677  			it.fail = err
  1678  			return false
  1679  		}
  1680  		it.Event.Raw = log
  1681  		return true
  1682  
  1683  	case err := <-it.sub.Err():
  1684  		it.done = true
  1685  		it.fail = err
  1686  		return it.Next()
  1687  	}
  1688  }
  1689  
  1690  // Error returns any retrieval or parsing error occurred during filtering.
  1691  func (it *Blurv1ClosedIterator) Error() error {
  1692  	return it.fail
  1693  }
  1694  
  1695  // Close terminates the iteration process, releasing any pending underlying
  1696  // resources.
  1697  func (it *Blurv1ClosedIterator) Close() error {
  1698  	it.sub.Unsubscribe()
  1699  	return nil
  1700  }
  1701  
  1702  // Blurv1Closed represents a Closed event raised by the Blurv1 contract.
  1703  type Blurv1Closed struct {
  1704  	Raw types.Log // Blockchain specific contextual infos
  1705  }
  1706  
  1707  // FilterClosed is a free log retrieval operation binding the contract event 0x1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a.
  1708  //
  1709  // Solidity: event Closed()
  1710  func (_Blurv1 *Blurv1Filterer) FilterClosed(opts *bind.FilterOpts) (*Blurv1ClosedIterator, error) {
  1711  
  1712  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "Closed")
  1713  	if err != nil {
  1714  		return nil, err
  1715  	}
  1716  	return &Blurv1ClosedIterator{contract: _Blurv1.contract, event: "Closed", logs: logs, sub: sub}, nil
  1717  }
  1718  
  1719  // WatchClosed is a free log subscription operation binding the contract event 0x1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a.
  1720  //
  1721  // Solidity: event Closed()
  1722  func (_Blurv1 *Blurv1Filterer) WatchClosed(opts *bind.WatchOpts, sink chan<- *Blurv1Closed) (event.Subscription, error) {
  1723  
  1724  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "Closed")
  1725  	if err != nil {
  1726  		return nil, err
  1727  	}
  1728  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1729  		defer sub.Unsubscribe()
  1730  		for {
  1731  			select {
  1732  			case log := <-logs:
  1733  				// New log arrived, parse the event and forward to the user
  1734  				event := new(Blurv1Closed)
  1735  				if err := _Blurv1.contract.UnpackLog(event, "Closed", log); err != nil {
  1736  					return err
  1737  				}
  1738  				event.Raw = log
  1739  
  1740  				select {
  1741  				case sink <- event:
  1742  				case err := <-sub.Err():
  1743  					return err
  1744  				case <-quit:
  1745  					return nil
  1746  				}
  1747  			case err := <-sub.Err():
  1748  				return err
  1749  			case <-quit:
  1750  				return nil
  1751  			}
  1752  		}
  1753  	}), nil
  1754  }
  1755  
  1756  // ParseClosed is a log parse operation binding the contract event 0x1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a.
  1757  //
  1758  // Solidity: event Closed()
  1759  func (_Blurv1 *Blurv1Filterer) ParseClosed(log types.Log) (*Blurv1Closed, error) {
  1760  	event := new(Blurv1Closed)
  1761  	if err := _Blurv1.contract.UnpackLog(event, "Closed", log); err != nil {
  1762  		return nil, err
  1763  	}
  1764  	event.Raw = log
  1765  	return event, nil
  1766  }
  1767  
  1768  // Blurv1InitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the Blurv1 contract.
  1769  type Blurv1InitializedIterator struct {
  1770  	Event *Blurv1Initialized // Event containing the contract specifics and raw log
  1771  
  1772  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1773  	event    string              // Event name to use for unpacking event data
  1774  
  1775  	logs chan types.Log        // Log channel receiving the found contract events
  1776  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1777  	done bool                  // Whether the subscription completed delivering logs
  1778  	fail error                 // Occurred error to stop iteration
  1779  }
  1780  
  1781  // Next advances the iterator to the subsequent event, returning whether there
  1782  // are any more events found. In case of a retrieval or parsing error, false is
  1783  // returned and Error() can be queried for the exact failure.
  1784  func (it *Blurv1InitializedIterator) Next() bool {
  1785  	// If the iterator failed, stop iterating
  1786  	if it.fail != nil {
  1787  		return false
  1788  	}
  1789  	// If the iterator completed, deliver directly whatever's available
  1790  	if it.done {
  1791  		select {
  1792  		case log := <-it.logs:
  1793  			it.Event = new(Blurv1Initialized)
  1794  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1795  				it.fail = err
  1796  				return false
  1797  			}
  1798  			it.Event.Raw = log
  1799  			return true
  1800  
  1801  		default:
  1802  			return false
  1803  		}
  1804  	}
  1805  	// Iterator still in progress, wait for either a data or an error event
  1806  	select {
  1807  	case log := <-it.logs:
  1808  		it.Event = new(Blurv1Initialized)
  1809  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1810  			it.fail = err
  1811  			return false
  1812  		}
  1813  		it.Event.Raw = log
  1814  		return true
  1815  
  1816  	case err := <-it.sub.Err():
  1817  		it.done = true
  1818  		it.fail = err
  1819  		return it.Next()
  1820  	}
  1821  }
  1822  
  1823  // Error returns any retrieval or parsing error occurred during filtering.
  1824  func (it *Blurv1InitializedIterator) Error() error {
  1825  	return it.fail
  1826  }
  1827  
  1828  // Close terminates the iteration process, releasing any pending underlying
  1829  // resources.
  1830  func (it *Blurv1InitializedIterator) Close() error {
  1831  	it.sub.Unsubscribe()
  1832  	return nil
  1833  }
  1834  
  1835  // Blurv1Initialized represents a Initialized event raised by the Blurv1 contract.
  1836  type Blurv1Initialized struct {
  1837  	Version uint8
  1838  	Raw     types.Log // Blockchain specific contextual infos
  1839  }
  1840  
  1841  // FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  1842  //
  1843  // Solidity: event Initialized(uint8 version)
  1844  func (_Blurv1 *Blurv1Filterer) FilterInitialized(opts *bind.FilterOpts) (*Blurv1InitializedIterator, error) {
  1845  
  1846  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "Initialized")
  1847  	if err != nil {
  1848  		return nil, err
  1849  	}
  1850  	return &Blurv1InitializedIterator{contract: _Blurv1.contract, event: "Initialized", logs: logs, sub: sub}, nil
  1851  }
  1852  
  1853  // WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  1854  //
  1855  // Solidity: event Initialized(uint8 version)
  1856  func (_Blurv1 *Blurv1Filterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *Blurv1Initialized) (event.Subscription, error) {
  1857  
  1858  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "Initialized")
  1859  	if err != nil {
  1860  		return nil, err
  1861  	}
  1862  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1863  		defer sub.Unsubscribe()
  1864  		for {
  1865  			select {
  1866  			case log := <-logs:
  1867  				// New log arrived, parse the event and forward to the user
  1868  				event := new(Blurv1Initialized)
  1869  				if err := _Blurv1.contract.UnpackLog(event, "Initialized", log); err != nil {
  1870  					return err
  1871  				}
  1872  				event.Raw = log
  1873  
  1874  				select {
  1875  				case sink <- event:
  1876  				case err := <-sub.Err():
  1877  					return err
  1878  				case <-quit:
  1879  					return nil
  1880  				}
  1881  			case err := <-sub.Err():
  1882  				return err
  1883  			case <-quit:
  1884  				return nil
  1885  			}
  1886  		}
  1887  	}), nil
  1888  }
  1889  
  1890  // ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498.
  1891  //
  1892  // Solidity: event Initialized(uint8 version)
  1893  func (_Blurv1 *Blurv1Filterer) ParseInitialized(log types.Log) (*Blurv1Initialized, error) {
  1894  	event := new(Blurv1Initialized)
  1895  	if err := _Blurv1.contract.UnpackLog(event, "Initialized", log); err != nil {
  1896  		return nil, err
  1897  	}
  1898  	event.Raw = log
  1899  	return event, nil
  1900  }
  1901  
  1902  // Blurv1NewBlockRangeIterator is returned from FilterNewBlockRange and is used to iterate over the raw logs and unpacked data for NewBlockRange events raised by the Blurv1 contract.
  1903  type Blurv1NewBlockRangeIterator struct {
  1904  	Event *Blurv1NewBlockRange // Event containing the contract specifics and raw log
  1905  
  1906  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1907  	event    string              // Event name to use for unpacking event data
  1908  
  1909  	logs chan types.Log        // Log channel receiving the found contract events
  1910  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1911  	done bool                  // Whether the subscription completed delivering logs
  1912  	fail error                 // Occurred error to stop iteration
  1913  }
  1914  
  1915  // Next advances the iterator to the subsequent event, returning whether there
  1916  // are any more events found. In case of a retrieval or parsing error, false is
  1917  // returned and Error() can be queried for the exact failure.
  1918  func (it *Blurv1NewBlockRangeIterator) Next() bool {
  1919  	// If the iterator failed, stop iterating
  1920  	if it.fail != nil {
  1921  		return false
  1922  	}
  1923  	// If the iterator completed, deliver directly whatever's available
  1924  	if it.done {
  1925  		select {
  1926  		case log := <-it.logs:
  1927  			it.Event = new(Blurv1NewBlockRange)
  1928  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1929  				it.fail = err
  1930  				return false
  1931  			}
  1932  			it.Event.Raw = log
  1933  			return true
  1934  
  1935  		default:
  1936  			return false
  1937  		}
  1938  	}
  1939  	// Iterator still in progress, wait for either a data or an error event
  1940  	select {
  1941  	case log := <-it.logs:
  1942  		it.Event = new(Blurv1NewBlockRange)
  1943  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1944  			it.fail = err
  1945  			return false
  1946  		}
  1947  		it.Event.Raw = log
  1948  		return true
  1949  
  1950  	case err := <-it.sub.Err():
  1951  		it.done = true
  1952  		it.fail = err
  1953  		return it.Next()
  1954  	}
  1955  }
  1956  
  1957  // Error returns any retrieval or parsing error occurred during filtering.
  1958  func (it *Blurv1NewBlockRangeIterator) Error() error {
  1959  	return it.fail
  1960  }
  1961  
  1962  // Close terminates the iteration process, releasing any pending underlying
  1963  // resources.
  1964  func (it *Blurv1NewBlockRangeIterator) Close() error {
  1965  	it.sub.Unsubscribe()
  1966  	return nil
  1967  }
  1968  
  1969  // Blurv1NewBlockRange represents a NewBlockRange event raised by the Blurv1 contract.
  1970  type Blurv1NewBlockRange struct {
  1971  	BlockRange *big.Int
  1972  	Raw        types.Log // Blockchain specific contextual infos
  1973  }
  1974  
  1975  // FilterNewBlockRange is a free log retrieval operation binding the contract event 0x7706177c541ba1b858371bfc568aa77450b4713bbdbba62c730d4484ab6c1251.
  1976  //
  1977  // Solidity: event NewBlockRange(uint256 blockRange)
  1978  func (_Blurv1 *Blurv1Filterer) FilterNewBlockRange(opts *bind.FilterOpts) (*Blurv1NewBlockRangeIterator, error) {
  1979  
  1980  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "NewBlockRange")
  1981  	if err != nil {
  1982  		return nil, err
  1983  	}
  1984  	return &Blurv1NewBlockRangeIterator{contract: _Blurv1.contract, event: "NewBlockRange", logs: logs, sub: sub}, nil
  1985  }
  1986  
  1987  // WatchNewBlockRange is a free log subscription operation binding the contract event 0x7706177c541ba1b858371bfc568aa77450b4713bbdbba62c730d4484ab6c1251.
  1988  //
  1989  // Solidity: event NewBlockRange(uint256 blockRange)
  1990  func (_Blurv1 *Blurv1Filterer) WatchNewBlockRange(opts *bind.WatchOpts, sink chan<- *Blurv1NewBlockRange) (event.Subscription, error) {
  1991  
  1992  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "NewBlockRange")
  1993  	if err != nil {
  1994  		return nil, err
  1995  	}
  1996  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1997  		defer sub.Unsubscribe()
  1998  		for {
  1999  			select {
  2000  			case log := <-logs:
  2001  				// New log arrived, parse the event and forward to the user
  2002  				event := new(Blurv1NewBlockRange)
  2003  				if err := _Blurv1.contract.UnpackLog(event, "NewBlockRange", log); err != nil {
  2004  					return err
  2005  				}
  2006  				event.Raw = log
  2007  
  2008  				select {
  2009  				case sink <- event:
  2010  				case err := <-sub.Err():
  2011  					return err
  2012  				case <-quit:
  2013  					return nil
  2014  				}
  2015  			case err := <-sub.Err():
  2016  				return err
  2017  			case <-quit:
  2018  				return nil
  2019  			}
  2020  		}
  2021  	}), nil
  2022  }
  2023  
  2024  // ParseNewBlockRange is a log parse operation binding the contract event 0x7706177c541ba1b858371bfc568aa77450b4713bbdbba62c730d4484ab6c1251.
  2025  //
  2026  // Solidity: event NewBlockRange(uint256 blockRange)
  2027  func (_Blurv1 *Blurv1Filterer) ParseNewBlockRange(log types.Log) (*Blurv1NewBlockRange, error) {
  2028  	event := new(Blurv1NewBlockRange)
  2029  	if err := _Blurv1.contract.UnpackLog(event, "NewBlockRange", log); err != nil {
  2030  		return nil, err
  2031  	}
  2032  	event.Raw = log
  2033  	return event, nil
  2034  }
  2035  
  2036  // Blurv1NewExecutionDelegateIterator is returned from FilterNewExecutionDelegate and is used to iterate over the raw logs and unpacked data for NewExecutionDelegate events raised by the Blurv1 contract.
  2037  type Blurv1NewExecutionDelegateIterator struct {
  2038  	Event *Blurv1NewExecutionDelegate // Event containing the contract specifics and raw log
  2039  
  2040  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2041  	event    string              // Event name to use for unpacking event data
  2042  
  2043  	logs chan types.Log        // Log channel receiving the found contract events
  2044  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2045  	done bool                  // Whether the subscription completed delivering logs
  2046  	fail error                 // Occurred error to stop iteration
  2047  }
  2048  
  2049  // Next advances the iterator to the subsequent event, returning whether there
  2050  // are any more events found. In case of a retrieval or parsing error, false is
  2051  // returned and Error() can be queried for the exact failure.
  2052  func (it *Blurv1NewExecutionDelegateIterator) Next() bool {
  2053  	// If the iterator failed, stop iterating
  2054  	if it.fail != nil {
  2055  		return false
  2056  	}
  2057  	// If the iterator completed, deliver directly whatever's available
  2058  	if it.done {
  2059  		select {
  2060  		case log := <-it.logs:
  2061  			it.Event = new(Blurv1NewExecutionDelegate)
  2062  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2063  				it.fail = err
  2064  				return false
  2065  			}
  2066  			it.Event.Raw = log
  2067  			return true
  2068  
  2069  		default:
  2070  			return false
  2071  		}
  2072  	}
  2073  	// Iterator still in progress, wait for either a data or an error event
  2074  	select {
  2075  	case log := <-it.logs:
  2076  		it.Event = new(Blurv1NewExecutionDelegate)
  2077  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2078  			it.fail = err
  2079  			return false
  2080  		}
  2081  		it.Event.Raw = log
  2082  		return true
  2083  
  2084  	case err := <-it.sub.Err():
  2085  		it.done = true
  2086  		it.fail = err
  2087  		return it.Next()
  2088  	}
  2089  }
  2090  
  2091  // Error returns any retrieval or parsing error occurred during filtering.
  2092  func (it *Blurv1NewExecutionDelegateIterator) Error() error {
  2093  	return it.fail
  2094  }
  2095  
  2096  // Close terminates the iteration process, releasing any pending underlying
  2097  // resources.
  2098  func (it *Blurv1NewExecutionDelegateIterator) Close() error {
  2099  	it.sub.Unsubscribe()
  2100  	return nil
  2101  }
  2102  
  2103  // Blurv1NewExecutionDelegate represents a NewExecutionDelegate event raised by the Blurv1 contract.
  2104  type Blurv1NewExecutionDelegate struct {
  2105  	ExecutionDelegate common.Address
  2106  	Raw               types.Log // Blockchain specific contextual infos
  2107  }
  2108  
  2109  // FilterNewExecutionDelegate is a free log retrieval operation binding the contract event 0xf9a0f356a7ef079355de09d32ce45cc3cfabc8f118681c19a17501f005a376ac.
  2110  //
  2111  // Solidity: event NewExecutionDelegate(address indexed executionDelegate)
  2112  func (_Blurv1 *Blurv1Filterer) FilterNewExecutionDelegate(opts *bind.FilterOpts, executionDelegate []common.Address) (*Blurv1NewExecutionDelegateIterator, error) {
  2113  
  2114  	var executionDelegateRule []interface{}
  2115  	for _, executionDelegateItem := range executionDelegate {
  2116  		executionDelegateRule = append(executionDelegateRule, executionDelegateItem)
  2117  	}
  2118  
  2119  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "NewExecutionDelegate", executionDelegateRule)
  2120  	if err != nil {
  2121  		return nil, err
  2122  	}
  2123  	return &Blurv1NewExecutionDelegateIterator{contract: _Blurv1.contract, event: "NewExecutionDelegate", logs: logs, sub: sub}, nil
  2124  }
  2125  
  2126  // WatchNewExecutionDelegate is a free log subscription operation binding the contract event 0xf9a0f356a7ef079355de09d32ce45cc3cfabc8f118681c19a17501f005a376ac.
  2127  //
  2128  // Solidity: event NewExecutionDelegate(address indexed executionDelegate)
  2129  func (_Blurv1 *Blurv1Filterer) WatchNewExecutionDelegate(opts *bind.WatchOpts, sink chan<- *Blurv1NewExecutionDelegate, executionDelegate []common.Address) (event.Subscription, error) {
  2130  
  2131  	var executionDelegateRule []interface{}
  2132  	for _, executionDelegateItem := range executionDelegate {
  2133  		executionDelegateRule = append(executionDelegateRule, executionDelegateItem)
  2134  	}
  2135  
  2136  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "NewExecutionDelegate", executionDelegateRule)
  2137  	if err != nil {
  2138  		return nil, err
  2139  	}
  2140  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2141  		defer sub.Unsubscribe()
  2142  		for {
  2143  			select {
  2144  			case log := <-logs:
  2145  				// New log arrived, parse the event and forward to the user
  2146  				event := new(Blurv1NewExecutionDelegate)
  2147  				if err := _Blurv1.contract.UnpackLog(event, "NewExecutionDelegate", log); err != nil {
  2148  					return err
  2149  				}
  2150  				event.Raw = log
  2151  
  2152  				select {
  2153  				case sink <- event:
  2154  				case err := <-sub.Err():
  2155  					return err
  2156  				case <-quit:
  2157  					return nil
  2158  				}
  2159  			case err := <-sub.Err():
  2160  				return err
  2161  			case <-quit:
  2162  				return nil
  2163  			}
  2164  		}
  2165  	}), nil
  2166  }
  2167  
  2168  // ParseNewExecutionDelegate is a log parse operation binding the contract event 0xf9a0f356a7ef079355de09d32ce45cc3cfabc8f118681c19a17501f005a376ac.
  2169  //
  2170  // Solidity: event NewExecutionDelegate(address indexed executionDelegate)
  2171  func (_Blurv1 *Blurv1Filterer) ParseNewExecutionDelegate(log types.Log) (*Blurv1NewExecutionDelegate, error) {
  2172  	event := new(Blurv1NewExecutionDelegate)
  2173  	if err := _Blurv1.contract.UnpackLog(event, "NewExecutionDelegate", log); err != nil {
  2174  		return nil, err
  2175  	}
  2176  	event.Raw = log
  2177  	return event, nil
  2178  }
  2179  
  2180  // Blurv1NewFeeRateIterator is returned from FilterNewFeeRate and is used to iterate over the raw logs and unpacked data for NewFeeRate events raised by the Blurv1 contract.
  2181  type Blurv1NewFeeRateIterator struct {
  2182  	Event *Blurv1NewFeeRate // Event containing the contract specifics and raw log
  2183  
  2184  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2185  	event    string              // Event name to use for unpacking event data
  2186  
  2187  	logs chan types.Log        // Log channel receiving the found contract events
  2188  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2189  	done bool                  // Whether the subscription completed delivering logs
  2190  	fail error                 // Occurred error to stop iteration
  2191  }
  2192  
  2193  // Next advances the iterator to the subsequent event, returning whether there
  2194  // are any more events found. In case of a retrieval or parsing error, false is
  2195  // returned and Error() can be queried for the exact failure.
  2196  func (it *Blurv1NewFeeRateIterator) Next() bool {
  2197  	// If the iterator failed, stop iterating
  2198  	if it.fail != nil {
  2199  		return false
  2200  	}
  2201  	// If the iterator completed, deliver directly whatever's available
  2202  	if it.done {
  2203  		select {
  2204  		case log := <-it.logs:
  2205  			it.Event = new(Blurv1NewFeeRate)
  2206  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2207  				it.fail = err
  2208  				return false
  2209  			}
  2210  			it.Event.Raw = log
  2211  			return true
  2212  
  2213  		default:
  2214  			return false
  2215  		}
  2216  	}
  2217  	// Iterator still in progress, wait for either a data or an error event
  2218  	select {
  2219  	case log := <-it.logs:
  2220  		it.Event = new(Blurv1NewFeeRate)
  2221  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2222  			it.fail = err
  2223  			return false
  2224  		}
  2225  		it.Event.Raw = log
  2226  		return true
  2227  
  2228  	case err := <-it.sub.Err():
  2229  		it.done = true
  2230  		it.fail = err
  2231  		return it.Next()
  2232  	}
  2233  }
  2234  
  2235  // Error returns any retrieval or parsing error occurred during filtering.
  2236  func (it *Blurv1NewFeeRateIterator) Error() error {
  2237  	return it.fail
  2238  }
  2239  
  2240  // Close terminates the iteration process, releasing any pending underlying
  2241  // resources.
  2242  func (it *Blurv1NewFeeRateIterator) Close() error {
  2243  	it.sub.Unsubscribe()
  2244  	return nil
  2245  }
  2246  
  2247  // Blurv1NewFeeRate represents a NewFeeRate event raised by the Blurv1 contract.
  2248  type Blurv1NewFeeRate struct {
  2249  	FeeRate *big.Int
  2250  	Raw     types.Log // Blockchain specific contextual infos
  2251  }
  2252  
  2253  // FilterNewFeeRate is a free log retrieval operation binding the contract event 0x788980e82f4651cc86d1cc00916685528f16c9abb21b2afe72325496c18c94ae.
  2254  //
  2255  // Solidity: event NewFeeRate(uint256 feeRate)
  2256  func (_Blurv1 *Blurv1Filterer) FilterNewFeeRate(opts *bind.FilterOpts) (*Blurv1NewFeeRateIterator, error) {
  2257  
  2258  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "NewFeeRate")
  2259  	if err != nil {
  2260  		return nil, err
  2261  	}
  2262  	return &Blurv1NewFeeRateIterator{contract: _Blurv1.contract, event: "NewFeeRate", logs: logs, sub: sub}, nil
  2263  }
  2264  
  2265  // WatchNewFeeRate is a free log subscription operation binding the contract event 0x788980e82f4651cc86d1cc00916685528f16c9abb21b2afe72325496c18c94ae.
  2266  //
  2267  // Solidity: event NewFeeRate(uint256 feeRate)
  2268  func (_Blurv1 *Blurv1Filterer) WatchNewFeeRate(opts *bind.WatchOpts, sink chan<- *Blurv1NewFeeRate) (event.Subscription, error) {
  2269  
  2270  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "NewFeeRate")
  2271  	if err != nil {
  2272  		return nil, err
  2273  	}
  2274  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2275  		defer sub.Unsubscribe()
  2276  		for {
  2277  			select {
  2278  			case log := <-logs:
  2279  				// New log arrived, parse the event and forward to the user
  2280  				event := new(Blurv1NewFeeRate)
  2281  				if err := _Blurv1.contract.UnpackLog(event, "NewFeeRate", log); err != nil {
  2282  					return err
  2283  				}
  2284  				event.Raw = log
  2285  
  2286  				select {
  2287  				case sink <- event:
  2288  				case err := <-sub.Err():
  2289  					return err
  2290  				case <-quit:
  2291  					return nil
  2292  				}
  2293  			case err := <-sub.Err():
  2294  				return err
  2295  			case <-quit:
  2296  				return nil
  2297  			}
  2298  		}
  2299  	}), nil
  2300  }
  2301  
  2302  // ParseNewFeeRate is a log parse operation binding the contract event 0x788980e82f4651cc86d1cc00916685528f16c9abb21b2afe72325496c18c94ae.
  2303  //
  2304  // Solidity: event NewFeeRate(uint256 feeRate)
  2305  func (_Blurv1 *Blurv1Filterer) ParseNewFeeRate(log types.Log) (*Blurv1NewFeeRate, error) {
  2306  	event := new(Blurv1NewFeeRate)
  2307  	if err := _Blurv1.contract.UnpackLog(event, "NewFeeRate", log); err != nil {
  2308  		return nil, err
  2309  	}
  2310  	event.Raw = log
  2311  	return event, nil
  2312  }
  2313  
  2314  // Blurv1NewFeeRecipientIterator is returned from FilterNewFeeRecipient and is used to iterate over the raw logs and unpacked data for NewFeeRecipient events raised by the Blurv1 contract.
  2315  type Blurv1NewFeeRecipientIterator struct {
  2316  	Event *Blurv1NewFeeRecipient // Event containing the contract specifics and raw log
  2317  
  2318  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2319  	event    string              // Event name to use for unpacking event data
  2320  
  2321  	logs chan types.Log        // Log channel receiving the found contract events
  2322  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2323  	done bool                  // Whether the subscription completed delivering logs
  2324  	fail error                 // Occurred error to stop iteration
  2325  }
  2326  
  2327  // Next advances the iterator to the subsequent event, returning whether there
  2328  // are any more events found. In case of a retrieval or parsing error, false is
  2329  // returned and Error() can be queried for the exact failure.
  2330  func (it *Blurv1NewFeeRecipientIterator) Next() bool {
  2331  	// If the iterator failed, stop iterating
  2332  	if it.fail != nil {
  2333  		return false
  2334  	}
  2335  	// If the iterator completed, deliver directly whatever's available
  2336  	if it.done {
  2337  		select {
  2338  		case log := <-it.logs:
  2339  			it.Event = new(Blurv1NewFeeRecipient)
  2340  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2341  				it.fail = err
  2342  				return false
  2343  			}
  2344  			it.Event.Raw = log
  2345  			return true
  2346  
  2347  		default:
  2348  			return false
  2349  		}
  2350  	}
  2351  	// Iterator still in progress, wait for either a data or an error event
  2352  	select {
  2353  	case log := <-it.logs:
  2354  		it.Event = new(Blurv1NewFeeRecipient)
  2355  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2356  			it.fail = err
  2357  			return false
  2358  		}
  2359  		it.Event.Raw = log
  2360  		return true
  2361  
  2362  	case err := <-it.sub.Err():
  2363  		it.done = true
  2364  		it.fail = err
  2365  		return it.Next()
  2366  	}
  2367  }
  2368  
  2369  // Error returns any retrieval or parsing error occurred during filtering.
  2370  func (it *Blurv1NewFeeRecipientIterator) Error() error {
  2371  	return it.fail
  2372  }
  2373  
  2374  // Close terminates the iteration process, releasing any pending underlying
  2375  // resources.
  2376  func (it *Blurv1NewFeeRecipientIterator) Close() error {
  2377  	it.sub.Unsubscribe()
  2378  	return nil
  2379  }
  2380  
  2381  // Blurv1NewFeeRecipient represents a NewFeeRecipient event raised by the Blurv1 contract.
  2382  type Blurv1NewFeeRecipient struct {
  2383  	FeeRecipient common.Address
  2384  	Raw          types.Log // Blockchain specific contextual infos
  2385  }
  2386  
  2387  // FilterNewFeeRecipient is a free log retrieval operation binding the contract event 0x412871529f3cedd6ca6f10784258f4965a5d6e254127593fe354e7a62f6d0a23.
  2388  //
  2389  // Solidity: event NewFeeRecipient(address feeRecipient)
  2390  func (_Blurv1 *Blurv1Filterer) FilterNewFeeRecipient(opts *bind.FilterOpts) (*Blurv1NewFeeRecipientIterator, error) {
  2391  
  2392  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "NewFeeRecipient")
  2393  	if err != nil {
  2394  		return nil, err
  2395  	}
  2396  	return &Blurv1NewFeeRecipientIterator{contract: _Blurv1.contract, event: "NewFeeRecipient", logs: logs, sub: sub}, nil
  2397  }
  2398  
  2399  // WatchNewFeeRecipient is a free log subscription operation binding the contract event 0x412871529f3cedd6ca6f10784258f4965a5d6e254127593fe354e7a62f6d0a23.
  2400  //
  2401  // Solidity: event NewFeeRecipient(address feeRecipient)
  2402  func (_Blurv1 *Blurv1Filterer) WatchNewFeeRecipient(opts *bind.WatchOpts, sink chan<- *Blurv1NewFeeRecipient) (event.Subscription, error) {
  2403  
  2404  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "NewFeeRecipient")
  2405  	if err != nil {
  2406  		return nil, err
  2407  	}
  2408  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2409  		defer sub.Unsubscribe()
  2410  		for {
  2411  			select {
  2412  			case log := <-logs:
  2413  				// New log arrived, parse the event and forward to the user
  2414  				event := new(Blurv1NewFeeRecipient)
  2415  				if err := _Blurv1.contract.UnpackLog(event, "NewFeeRecipient", log); err != nil {
  2416  					return err
  2417  				}
  2418  				event.Raw = log
  2419  
  2420  				select {
  2421  				case sink <- event:
  2422  				case err := <-sub.Err():
  2423  					return err
  2424  				case <-quit:
  2425  					return nil
  2426  				}
  2427  			case err := <-sub.Err():
  2428  				return err
  2429  			case <-quit:
  2430  				return nil
  2431  			}
  2432  		}
  2433  	}), nil
  2434  }
  2435  
  2436  // ParseNewFeeRecipient is a log parse operation binding the contract event 0x412871529f3cedd6ca6f10784258f4965a5d6e254127593fe354e7a62f6d0a23.
  2437  //
  2438  // Solidity: event NewFeeRecipient(address feeRecipient)
  2439  func (_Blurv1 *Blurv1Filterer) ParseNewFeeRecipient(log types.Log) (*Blurv1NewFeeRecipient, error) {
  2440  	event := new(Blurv1NewFeeRecipient)
  2441  	if err := _Blurv1.contract.UnpackLog(event, "NewFeeRecipient", log); err != nil {
  2442  		return nil, err
  2443  	}
  2444  	event.Raw = log
  2445  	return event, nil
  2446  }
  2447  
  2448  // Blurv1NewGovernorIterator is returned from FilterNewGovernor and is used to iterate over the raw logs and unpacked data for NewGovernor events raised by the Blurv1 contract.
  2449  type Blurv1NewGovernorIterator struct {
  2450  	Event *Blurv1NewGovernor // Event containing the contract specifics and raw log
  2451  
  2452  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2453  	event    string              // Event name to use for unpacking event data
  2454  
  2455  	logs chan types.Log        // Log channel receiving the found contract events
  2456  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2457  	done bool                  // Whether the subscription completed delivering logs
  2458  	fail error                 // Occurred error to stop iteration
  2459  }
  2460  
  2461  // Next advances the iterator to the subsequent event, returning whether there
  2462  // are any more events found. In case of a retrieval or parsing error, false is
  2463  // returned and Error() can be queried for the exact failure.
  2464  func (it *Blurv1NewGovernorIterator) Next() bool {
  2465  	// If the iterator failed, stop iterating
  2466  	if it.fail != nil {
  2467  		return false
  2468  	}
  2469  	// If the iterator completed, deliver directly whatever's available
  2470  	if it.done {
  2471  		select {
  2472  		case log := <-it.logs:
  2473  			it.Event = new(Blurv1NewGovernor)
  2474  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2475  				it.fail = err
  2476  				return false
  2477  			}
  2478  			it.Event.Raw = log
  2479  			return true
  2480  
  2481  		default:
  2482  			return false
  2483  		}
  2484  	}
  2485  	// Iterator still in progress, wait for either a data or an error event
  2486  	select {
  2487  	case log := <-it.logs:
  2488  		it.Event = new(Blurv1NewGovernor)
  2489  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2490  			it.fail = err
  2491  			return false
  2492  		}
  2493  		it.Event.Raw = log
  2494  		return true
  2495  
  2496  	case err := <-it.sub.Err():
  2497  		it.done = true
  2498  		it.fail = err
  2499  		return it.Next()
  2500  	}
  2501  }
  2502  
  2503  // Error returns any retrieval or parsing error occurred during filtering.
  2504  func (it *Blurv1NewGovernorIterator) Error() error {
  2505  	return it.fail
  2506  }
  2507  
  2508  // Close terminates the iteration process, releasing any pending underlying
  2509  // resources.
  2510  func (it *Blurv1NewGovernorIterator) Close() error {
  2511  	it.sub.Unsubscribe()
  2512  	return nil
  2513  }
  2514  
  2515  // Blurv1NewGovernor represents a NewGovernor event raised by the Blurv1 contract.
  2516  type Blurv1NewGovernor struct {
  2517  	Governor common.Address
  2518  	Raw      types.Log // Blockchain specific contextual infos
  2519  }
  2520  
  2521  // FilterNewGovernor is a free log retrieval operation binding the contract event 0x5425363a03f182281120f5919107c49c7a1a623acc1cbc6df468b6f0c11fcf8c.
  2522  //
  2523  // Solidity: event NewGovernor(address governor)
  2524  func (_Blurv1 *Blurv1Filterer) FilterNewGovernor(opts *bind.FilterOpts) (*Blurv1NewGovernorIterator, error) {
  2525  
  2526  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "NewGovernor")
  2527  	if err != nil {
  2528  		return nil, err
  2529  	}
  2530  	return &Blurv1NewGovernorIterator{contract: _Blurv1.contract, event: "NewGovernor", logs: logs, sub: sub}, nil
  2531  }
  2532  
  2533  // WatchNewGovernor is a free log subscription operation binding the contract event 0x5425363a03f182281120f5919107c49c7a1a623acc1cbc6df468b6f0c11fcf8c.
  2534  //
  2535  // Solidity: event NewGovernor(address governor)
  2536  func (_Blurv1 *Blurv1Filterer) WatchNewGovernor(opts *bind.WatchOpts, sink chan<- *Blurv1NewGovernor) (event.Subscription, error) {
  2537  
  2538  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "NewGovernor")
  2539  	if err != nil {
  2540  		return nil, err
  2541  	}
  2542  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2543  		defer sub.Unsubscribe()
  2544  		for {
  2545  			select {
  2546  			case log := <-logs:
  2547  				// New log arrived, parse the event and forward to the user
  2548  				event := new(Blurv1NewGovernor)
  2549  				if err := _Blurv1.contract.UnpackLog(event, "NewGovernor", log); err != nil {
  2550  					return err
  2551  				}
  2552  				event.Raw = log
  2553  
  2554  				select {
  2555  				case sink <- event:
  2556  				case err := <-sub.Err():
  2557  					return err
  2558  				case <-quit:
  2559  					return nil
  2560  				}
  2561  			case err := <-sub.Err():
  2562  				return err
  2563  			case <-quit:
  2564  				return nil
  2565  			}
  2566  		}
  2567  	}), nil
  2568  }
  2569  
  2570  // ParseNewGovernor is a log parse operation binding the contract event 0x5425363a03f182281120f5919107c49c7a1a623acc1cbc6df468b6f0c11fcf8c.
  2571  //
  2572  // Solidity: event NewGovernor(address governor)
  2573  func (_Blurv1 *Blurv1Filterer) ParseNewGovernor(log types.Log) (*Blurv1NewGovernor, error) {
  2574  	event := new(Blurv1NewGovernor)
  2575  	if err := _Blurv1.contract.UnpackLog(event, "NewGovernor", log); err != nil {
  2576  		return nil, err
  2577  	}
  2578  	event.Raw = log
  2579  	return event, nil
  2580  }
  2581  
  2582  // Blurv1NewOracleIterator is returned from FilterNewOracle and is used to iterate over the raw logs and unpacked data for NewOracle events raised by the Blurv1 contract.
  2583  type Blurv1NewOracleIterator struct {
  2584  	Event *Blurv1NewOracle // Event containing the contract specifics and raw log
  2585  
  2586  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2587  	event    string              // Event name to use for unpacking event data
  2588  
  2589  	logs chan types.Log        // Log channel receiving the found contract events
  2590  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2591  	done bool                  // Whether the subscription completed delivering logs
  2592  	fail error                 // Occurred error to stop iteration
  2593  }
  2594  
  2595  // Next advances the iterator to the subsequent event, returning whether there
  2596  // are any more events found. In case of a retrieval or parsing error, false is
  2597  // returned and Error() can be queried for the exact failure.
  2598  func (it *Blurv1NewOracleIterator) Next() bool {
  2599  	// If the iterator failed, stop iterating
  2600  	if it.fail != nil {
  2601  		return false
  2602  	}
  2603  	// If the iterator completed, deliver directly whatever's available
  2604  	if it.done {
  2605  		select {
  2606  		case log := <-it.logs:
  2607  			it.Event = new(Blurv1NewOracle)
  2608  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2609  				it.fail = err
  2610  				return false
  2611  			}
  2612  			it.Event.Raw = log
  2613  			return true
  2614  
  2615  		default:
  2616  			return false
  2617  		}
  2618  	}
  2619  	// Iterator still in progress, wait for either a data or an error event
  2620  	select {
  2621  	case log := <-it.logs:
  2622  		it.Event = new(Blurv1NewOracle)
  2623  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2624  			it.fail = err
  2625  			return false
  2626  		}
  2627  		it.Event.Raw = log
  2628  		return true
  2629  
  2630  	case err := <-it.sub.Err():
  2631  		it.done = true
  2632  		it.fail = err
  2633  		return it.Next()
  2634  	}
  2635  }
  2636  
  2637  // Error returns any retrieval or parsing error occurred during filtering.
  2638  func (it *Blurv1NewOracleIterator) Error() error {
  2639  	return it.fail
  2640  }
  2641  
  2642  // Close terminates the iteration process, releasing any pending underlying
  2643  // resources.
  2644  func (it *Blurv1NewOracleIterator) Close() error {
  2645  	it.sub.Unsubscribe()
  2646  	return nil
  2647  }
  2648  
  2649  // Blurv1NewOracle represents a NewOracle event raised by the Blurv1 contract.
  2650  type Blurv1NewOracle struct {
  2651  	Oracle common.Address
  2652  	Raw    types.Log // Blockchain specific contextual infos
  2653  }
  2654  
  2655  // FilterNewOracle is a free log retrieval operation binding the contract event 0xb3eacd0e351fafdfefdec84e1cd19679b38dbcd63ea7c2c24da17fd2bc3b3c0e.
  2656  //
  2657  // Solidity: event NewOracle(address indexed oracle)
  2658  func (_Blurv1 *Blurv1Filterer) FilterNewOracle(opts *bind.FilterOpts, oracle []common.Address) (*Blurv1NewOracleIterator, error) {
  2659  
  2660  	var oracleRule []interface{}
  2661  	for _, oracleItem := range oracle {
  2662  		oracleRule = append(oracleRule, oracleItem)
  2663  	}
  2664  
  2665  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "NewOracle", oracleRule)
  2666  	if err != nil {
  2667  		return nil, err
  2668  	}
  2669  	return &Blurv1NewOracleIterator{contract: _Blurv1.contract, event: "NewOracle", logs: logs, sub: sub}, nil
  2670  }
  2671  
  2672  // WatchNewOracle is a free log subscription operation binding the contract event 0xb3eacd0e351fafdfefdec84e1cd19679b38dbcd63ea7c2c24da17fd2bc3b3c0e.
  2673  //
  2674  // Solidity: event NewOracle(address indexed oracle)
  2675  func (_Blurv1 *Blurv1Filterer) WatchNewOracle(opts *bind.WatchOpts, sink chan<- *Blurv1NewOracle, oracle []common.Address) (event.Subscription, error) {
  2676  
  2677  	var oracleRule []interface{}
  2678  	for _, oracleItem := range oracle {
  2679  		oracleRule = append(oracleRule, oracleItem)
  2680  	}
  2681  
  2682  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "NewOracle", oracleRule)
  2683  	if err != nil {
  2684  		return nil, err
  2685  	}
  2686  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2687  		defer sub.Unsubscribe()
  2688  		for {
  2689  			select {
  2690  			case log := <-logs:
  2691  				// New log arrived, parse the event and forward to the user
  2692  				event := new(Blurv1NewOracle)
  2693  				if err := _Blurv1.contract.UnpackLog(event, "NewOracle", log); err != nil {
  2694  					return err
  2695  				}
  2696  				event.Raw = log
  2697  
  2698  				select {
  2699  				case sink <- event:
  2700  				case err := <-sub.Err():
  2701  					return err
  2702  				case <-quit:
  2703  					return nil
  2704  				}
  2705  			case err := <-sub.Err():
  2706  				return err
  2707  			case <-quit:
  2708  				return nil
  2709  			}
  2710  		}
  2711  	}), nil
  2712  }
  2713  
  2714  // ParseNewOracle is a log parse operation binding the contract event 0xb3eacd0e351fafdfefdec84e1cd19679b38dbcd63ea7c2c24da17fd2bc3b3c0e.
  2715  //
  2716  // Solidity: event NewOracle(address indexed oracle)
  2717  func (_Blurv1 *Blurv1Filterer) ParseNewOracle(log types.Log) (*Blurv1NewOracle, error) {
  2718  	event := new(Blurv1NewOracle)
  2719  	if err := _Blurv1.contract.UnpackLog(event, "NewOracle", log); err != nil {
  2720  		return nil, err
  2721  	}
  2722  	event.Raw = log
  2723  	return event, nil
  2724  }
  2725  
  2726  // Blurv1NewPolicyManagerIterator is returned from FilterNewPolicyManager and is used to iterate over the raw logs and unpacked data for NewPolicyManager events raised by the Blurv1 contract.
  2727  type Blurv1NewPolicyManagerIterator struct {
  2728  	Event *Blurv1NewPolicyManager // Event containing the contract specifics and raw log
  2729  
  2730  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2731  	event    string              // Event name to use for unpacking event data
  2732  
  2733  	logs chan types.Log        // Log channel receiving the found contract events
  2734  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2735  	done bool                  // Whether the subscription completed delivering logs
  2736  	fail error                 // Occurred error to stop iteration
  2737  }
  2738  
  2739  // Next advances the iterator to the subsequent event, returning whether there
  2740  // are any more events found. In case of a retrieval or parsing error, false is
  2741  // returned and Error() can be queried for the exact failure.
  2742  func (it *Blurv1NewPolicyManagerIterator) Next() bool {
  2743  	// If the iterator failed, stop iterating
  2744  	if it.fail != nil {
  2745  		return false
  2746  	}
  2747  	// If the iterator completed, deliver directly whatever's available
  2748  	if it.done {
  2749  		select {
  2750  		case log := <-it.logs:
  2751  			it.Event = new(Blurv1NewPolicyManager)
  2752  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2753  				it.fail = err
  2754  				return false
  2755  			}
  2756  			it.Event.Raw = log
  2757  			return true
  2758  
  2759  		default:
  2760  			return false
  2761  		}
  2762  	}
  2763  	// Iterator still in progress, wait for either a data or an error event
  2764  	select {
  2765  	case log := <-it.logs:
  2766  		it.Event = new(Blurv1NewPolicyManager)
  2767  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2768  			it.fail = err
  2769  			return false
  2770  		}
  2771  		it.Event.Raw = log
  2772  		return true
  2773  
  2774  	case err := <-it.sub.Err():
  2775  		it.done = true
  2776  		it.fail = err
  2777  		return it.Next()
  2778  	}
  2779  }
  2780  
  2781  // Error returns any retrieval or parsing error occurred during filtering.
  2782  func (it *Blurv1NewPolicyManagerIterator) Error() error {
  2783  	return it.fail
  2784  }
  2785  
  2786  // Close terminates the iteration process, releasing any pending underlying
  2787  // resources.
  2788  func (it *Blurv1NewPolicyManagerIterator) Close() error {
  2789  	it.sub.Unsubscribe()
  2790  	return nil
  2791  }
  2792  
  2793  // Blurv1NewPolicyManager represents a NewPolicyManager event raised by the Blurv1 contract.
  2794  type Blurv1NewPolicyManager struct {
  2795  	PolicyManager common.Address
  2796  	Raw           types.Log // Blockchain specific contextual infos
  2797  }
  2798  
  2799  // FilterNewPolicyManager is a free log retrieval operation binding the contract event 0xdbe18f3fd927cc2aefe380ffd2abfdb8e13f0239c0258ccfc84c3d8fdd8c0418.
  2800  //
  2801  // Solidity: event NewPolicyManager(address indexed policyManager)
  2802  func (_Blurv1 *Blurv1Filterer) FilterNewPolicyManager(opts *bind.FilterOpts, policyManager []common.Address) (*Blurv1NewPolicyManagerIterator, error) {
  2803  
  2804  	var policyManagerRule []interface{}
  2805  	for _, policyManagerItem := range policyManager {
  2806  		policyManagerRule = append(policyManagerRule, policyManagerItem)
  2807  	}
  2808  
  2809  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "NewPolicyManager", policyManagerRule)
  2810  	if err != nil {
  2811  		return nil, err
  2812  	}
  2813  	return &Blurv1NewPolicyManagerIterator{contract: _Blurv1.contract, event: "NewPolicyManager", logs: logs, sub: sub}, nil
  2814  }
  2815  
  2816  // WatchNewPolicyManager is a free log subscription operation binding the contract event 0xdbe18f3fd927cc2aefe380ffd2abfdb8e13f0239c0258ccfc84c3d8fdd8c0418.
  2817  //
  2818  // Solidity: event NewPolicyManager(address indexed policyManager)
  2819  func (_Blurv1 *Blurv1Filterer) WatchNewPolicyManager(opts *bind.WatchOpts, sink chan<- *Blurv1NewPolicyManager, policyManager []common.Address) (event.Subscription, error) {
  2820  
  2821  	var policyManagerRule []interface{}
  2822  	for _, policyManagerItem := range policyManager {
  2823  		policyManagerRule = append(policyManagerRule, policyManagerItem)
  2824  	}
  2825  
  2826  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "NewPolicyManager", policyManagerRule)
  2827  	if err != nil {
  2828  		return nil, err
  2829  	}
  2830  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2831  		defer sub.Unsubscribe()
  2832  		for {
  2833  			select {
  2834  			case log := <-logs:
  2835  				// New log arrived, parse the event and forward to the user
  2836  				event := new(Blurv1NewPolicyManager)
  2837  				if err := _Blurv1.contract.UnpackLog(event, "NewPolicyManager", log); err != nil {
  2838  					return err
  2839  				}
  2840  				event.Raw = log
  2841  
  2842  				select {
  2843  				case sink <- event:
  2844  				case err := <-sub.Err():
  2845  					return err
  2846  				case <-quit:
  2847  					return nil
  2848  				}
  2849  			case err := <-sub.Err():
  2850  				return err
  2851  			case <-quit:
  2852  				return nil
  2853  			}
  2854  		}
  2855  	}), nil
  2856  }
  2857  
  2858  // ParseNewPolicyManager is a log parse operation binding the contract event 0xdbe18f3fd927cc2aefe380ffd2abfdb8e13f0239c0258ccfc84c3d8fdd8c0418.
  2859  //
  2860  // Solidity: event NewPolicyManager(address indexed policyManager)
  2861  func (_Blurv1 *Blurv1Filterer) ParseNewPolicyManager(log types.Log) (*Blurv1NewPolicyManager, error) {
  2862  	event := new(Blurv1NewPolicyManager)
  2863  	if err := _Blurv1.contract.UnpackLog(event, "NewPolicyManager", log); err != nil {
  2864  		return nil, err
  2865  	}
  2866  	event.Raw = log
  2867  	return event, nil
  2868  }
  2869  
  2870  // Blurv1NonceIncrementedIterator is returned from FilterNonceIncremented and is used to iterate over the raw logs and unpacked data for NonceIncremented events raised by the Blurv1 contract.
  2871  type Blurv1NonceIncrementedIterator struct {
  2872  	Event *Blurv1NonceIncremented // Event containing the contract specifics and raw log
  2873  
  2874  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2875  	event    string              // Event name to use for unpacking event data
  2876  
  2877  	logs chan types.Log        // Log channel receiving the found contract events
  2878  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2879  	done bool                  // Whether the subscription completed delivering logs
  2880  	fail error                 // Occurred error to stop iteration
  2881  }
  2882  
  2883  // Next advances the iterator to the subsequent event, returning whether there
  2884  // are any more events found. In case of a retrieval or parsing error, false is
  2885  // returned and Error() can be queried for the exact failure.
  2886  func (it *Blurv1NonceIncrementedIterator) Next() bool {
  2887  	// If the iterator failed, stop iterating
  2888  	if it.fail != nil {
  2889  		return false
  2890  	}
  2891  	// If the iterator completed, deliver directly whatever's available
  2892  	if it.done {
  2893  		select {
  2894  		case log := <-it.logs:
  2895  			it.Event = new(Blurv1NonceIncremented)
  2896  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2897  				it.fail = err
  2898  				return false
  2899  			}
  2900  			it.Event.Raw = log
  2901  			return true
  2902  
  2903  		default:
  2904  			return false
  2905  		}
  2906  	}
  2907  	// Iterator still in progress, wait for either a data or an error event
  2908  	select {
  2909  	case log := <-it.logs:
  2910  		it.Event = new(Blurv1NonceIncremented)
  2911  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2912  			it.fail = err
  2913  			return false
  2914  		}
  2915  		it.Event.Raw = log
  2916  		return true
  2917  
  2918  	case err := <-it.sub.Err():
  2919  		it.done = true
  2920  		it.fail = err
  2921  		return it.Next()
  2922  	}
  2923  }
  2924  
  2925  // Error returns any retrieval or parsing error occurred during filtering.
  2926  func (it *Blurv1NonceIncrementedIterator) Error() error {
  2927  	return it.fail
  2928  }
  2929  
  2930  // Close terminates the iteration process, releasing any pending underlying
  2931  // resources.
  2932  func (it *Blurv1NonceIncrementedIterator) Close() error {
  2933  	it.sub.Unsubscribe()
  2934  	return nil
  2935  }
  2936  
  2937  // Blurv1NonceIncremented represents a NonceIncremented event raised by the Blurv1 contract.
  2938  type Blurv1NonceIncremented struct {
  2939  	Trader   common.Address
  2940  	NewNonce *big.Int
  2941  	Raw      types.Log // Blockchain specific contextual infos
  2942  }
  2943  
  2944  // FilterNonceIncremented is a free log retrieval operation binding the contract event 0xa82a649bbd060c9099cd7b7326e2b0dc9e9af0836480e0f849dc9eaa79710b3b.
  2945  //
  2946  // Solidity: event NonceIncremented(address indexed trader, uint256 newNonce)
  2947  func (_Blurv1 *Blurv1Filterer) FilterNonceIncremented(opts *bind.FilterOpts, trader []common.Address) (*Blurv1NonceIncrementedIterator, error) {
  2948  
  2949  	var traderRule []interface{}
  2950  	for _, traderItem := range trader {
  2951  		traderRule = append(traderRule, traderItem)
  2952  	}
  2953  
  2954  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "NonceIncremented", traderRule)
  2955  	if err != nil {
  2956  		return nil, err
  2957  	}
  2958  	return &Blurv1NonceIncrementedIterator{contract: _Blurv1.contract, event: "NonceIncremented", logs: logs, sub: sub}, nil
  2959  }
  2960  
  2961  // WatchNonceIncremented is a free log subscription operation binding the contract event 0xa82a649bbd060c9099cd7b7326e2b0dc9e9af0836480e0f849dc9eaa79710b3b.
  2962  //
  2963  // Solidity: event NonceIncremented(address indexed trader, uint256 newNonce)
  2964  func (_Blurv1 *Blurv1Filterer) WatchNonceIncremented(opts *bind.WatchOpts, sink chan<- *Blurv1NonceIncremented, trader []common.Address) (event.Subscription, error) {
  2965  
  2966  	var traderRule []interface{}
  2967  	for _, traderItem := range trader {
  2968  		traderRule = append(traderRule, traderItem)
  2969  	}
  2970  
  2971  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "NonceIncremented", traderRule)
  2972  	if err != nil {
  2973  		return nil, err
  2974  	}
  2975  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2976  		defer sub.Unsubscribe()
  2977  		for {
  2978  			select {
  2979  			case log := <-logs:
  2980  				// New log arrived, parse the event and forward to the user
  2981  				event := new(Blurv1NonceIncremented)
  2982  				if err := _Blurv1.contract.UnpackLog(event, "NonceIncremented", log); err != nil {
  2983  					return err
  2984  				}
  2985  				event.Raw = log
  2986  
  2987  				select {
  2988  				case sink <- event:
  2989  				case err := <-sub.Err():
  2990  					return err
  2991  				case <-quit:
  2992  					return nil
  2993  				}
  2994  			case err := <-sub.Err():
  2995  				return err
  2996  			case <-quit:
  2997  				return nil
  2998  			}
  2999  		}
  3000  	}), nil
  3001  }
  3002  
  3003  // ParseNonceIncremented is a log parse operation binding the contract event 0xa82a649bbd060c9099cd7b7326e2b0dc9e9af0836480e0f849dc9eaa79710b3b.
  3004  //
  3005  // Solidity: event NonceIncremented(address indexed trader, uint256 newNonce)
  3006  func (_Blurv1 *Blurv1Filterer) ParseNonceIncremented(log types.Log) (*Blurv1NonceIncremented, error) {
  3007  	event := new(Blurv1NonceIncremented)
  3008  	if err := _Blurv1.contract.UnpackLog(event, "NonceIncremented", log); err != nil {
  3009  		return nil, err
  3010  	}
  3011  	event.Raw = log
  3012  	return event, nil
  3013  }
  3014  
  3015  // Blurv1OpenedIterator is returned from FilterOpened and is used to iterate over the raw logs and unpacked data for Opened events raised by the Blurv1 contract.
  3016  type Blurv1OpenedIterator struct {
  3017  	Event *Blurv1Opened // Event containing the contract specifics and raw log
  3018  
  3019  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3020  	event    string              // Event name to use for unpacking event data
  3021  
  3022  	logs chan types.Log        // Log channel receiving the found contract events
  3023  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3024  	done bool                  // Whether the subscription completed delivering logs
  3025  	fail error                 // Occurred error to stop iteration
  3026  }
  3027  
  3028  // Next advances the iterator to the subsequent event, returning whether there
  3029  // are any more events found. In case of a retrieval or parsing error, false is
  3030  // returned and Error() can be queried for the exact failure.
  3031  func (it *Blurv1OpenedIterator) Next() bool {
  3032  	// If the iterator failed, stop iterating
  3033  	if it.fail != nil {
  3034  		return false
  3035  	}
  3036  	// If the iterator completed, deliver directly whatever's available
  3037  	if it.done {
  3038  		select {
  3039  		case log := <-it.logs:
  3040  			it.Event = new(Blurv1Opened)
  3041  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3042  				it.fail = err
  3043  				return false
  3044  			}
  3045  			it.Event.Raw = log
  3046  			return true
  3047  
  3048  		default:
  3049  			return false
  3050  		}
  3051  	}
  3052  	// Iterator still in progress, wait for either a data or an error event
  3053  	select {
  3054  	case log := <-it.logs:
  3055  		it.Event = new(Blurv1Opened)
  3056  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3057  			it.fail = err
  3058  			return false
  3059  		}
  3060  		it.Event.Raw = log
  3061  		return true
  3062  
  3063  	case err := <-it.sub.Err():
  3064  		it.done = true
  3065  		it.fail = err
  3066  		return it.Next()
  3067  	}
  3068  }
  3069  
  3070  // Error returns any retrieval or parsing error occurred during filtering.
  3071  func (it *Blurv1OpenedIterator) Error() error {
  3072  	return it.fail
  3073  }
  3074  
  3075  // Close terminates the iteration process, releasing any pending underlying
  3076  // resources.
  3077  func (it *Blurv1OpenedIterator) Close() error {
  3078  	it.sub.Unsubscribe()
  3079  	return nil
  3080  }
  3081  
  3082  // Blurv1Opened represents a Opened event raised by the Blurv1 contract.
  3083  type Blurv1Opened struct {
  3084  	Raw types.Log // Blockchain specific contextual infos
  3085  }
  3086  
  3087  // FilterOpened is a free log retrieval operation binding the contract event 0xd1dcd00534373f20882b79e6ab6875a5c358c5bd576448757ed50e63069ab518.
  3088  //
  3089  // Solidity: event Opened()
  3090  func (_Blurv1 *Blurv1Filterer) FilterOpened(opts *bind.FilterOpts) (*Blurv1OpenedIterator, error) {
  3091  
  3092  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "Opened")
  3093  	if err != nil {
  3094  		return nil, err
  3095  	}
  3096  	return &Blurv1OpenedIterator{contract: _Blurv1.contract, event: "Opened", logs: logs, sub: sub}, nil
  3097  }
  3098  
  3099  // WatchOpened is a free log subscription operation binding the contract event 0xd1dcd00534373f20882b79e6ab6875a5c358c5bd576448757ed50e63069ab518.
  3100  //
  3101  // Solidity: event Opened()
  3102  func (_Blurv1 *Blurv1Filterer) WatchOpened(opts *bind.WatchOpts, sink chan<- *Blurv1Opened) (event.Subscription, error) {
  3103  
  3104  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "Opened")
  3105  	if err != nil {
  3106  		return nil, err
  3107  	}
  3108  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3109  		defer sub.Unsubscribe()
  3110  		for {
  3111  			select {
  3112  			case log := <-logs:
  3113  				// New log arrived, parse the event and forward to the user
  3114  				event := new(Blurv1Opened)
  3115  				if err := _Blurv1.contract.UnpackLog(event, "Opened", log); err != nil {
  3116  					return err
  3117  				}
  3118  				event.Raw = log
  3119  
  3120  				select {
  3121  				case sink <- event:
  3122  				case err := <-sub.Err():
  3123  					return err
  3124  				case <-quit:
  3125  					return nil
  3126  				}
  3127  			case err := <-sub.Err():
  3128  				return err
  3129  			case <-quit:
  3130  				return nil
  3131  			}
  3132  		}
  3133  	}), nil
  3134  }
  3135  
  3136  // ParseOpened is a log parse operation binding the contract event 0xd1dcd00534373f20882b79e6ab6875a5c358c5bd576448757ed50e63069ab518.
  3137  //
  3138  // Solidity: event Opened()
  3139  func (_Blurv1 *Blurv1Filterer) ParseOpened(log types.Log) (*Blurv1Opened, error) {
  3140  	event := new(Blurv1Opened)
  3141  	if err := _Blurv1.contract.UnpackLog(event, "Opened", log); err != nil {
  3142  		return nil, err
  3143  	}
  3144  	event.Raw = log
  3145  	return event, nil
  3146  }
  3147  
  3148  // Blurv1OrderCancelledIterator is returned from FilterOrderCancelled and is used to iterate over the raw logs and unpacked data for OrderCancelled events raised by the Blurv1 contract.
  3149  type Blurv1OrderCancelledIterator struct {
  3150  	Event *Blurv1OrderCancelled // Event containing the contract specifics and raw log
  3151  
  3152  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3153  	event    string              // Event name to use for unpacking event data
  3154  
  3155  	logs chan types.Log        // Log channel receiving the found contract events
  3156  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3157  	done bool                  // Whether the subscription completed delivering logs
  3158  	fail error                 // Occurred error to stop iteration
  3159  }
  3160  
  3161  // Next advances the iterator to the subsequent event, returning whether there
  3162  // are any more events found. In case of a retrieval or parsing error, false is
  3163  // returned and Error() can be queried for the exact failure.
  3164  func (it *Blurv1OrderCancelledIterator) Next() bool {
  3165  	// If the iterator failed, stop iterating
  3166  	if it.fail != nil {
  3167  		return false
  3168  	}
  3169  	// If the iterator completed, deliver directly whatever's available
  3170  	if it.done {
  3171  		select {
  3172  		case log := <-it.logs:
  3173  			it.Event = new(Blurv1OrderCancelled)
  3174  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3175  				it.fail = err
  3176  				return false
  3177  			}
  3178  			it.Event.Raw = log
  3179  			return true
  3180  
  3181  		default:
  3182  			return false
  3183  		}
  3184  	}
  3185  	// Iterator still in progress, wait for either a data or an error event
  3186  	select {
  3187  	case log := <-it.logs:
  3188  		it.Event = new(Blurv1OrderCancelled)
  3189  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3190  			it.fail = err
  3191  			return false
  3192  		}
  3193  		it.Event.Raw = log
  3194  		return true
  3195  
  3196  	case err := <-it.sub.Err():
  3197  		it.done = true
  3198  		it.fail = err
  3199  		return it.Next()
  3200  	}
  3201  }
  3202  
  3203  // Error returns any retrieval or parsing error occurred during filtering.
  3204  func (it *Blurv1OrderCancelledIterator) Error() error {
  3205  	return it.fail
  3206  }
  3207  
  3208  // Close terminates the iteration process, releasing any pending underlying
  3209  // resources.
  3210  func (it *Blurv1OrderCancelledIterator) Close() error {
  3211  	it.sub.Unsubscribe()
  3212  	return nil
  3213  }
  3214  
  3215  // Blurv1OrderCancelled represents a OrderCancelled event raised by the Blurv1 contract.
  3216  type Blurv1OrderCancelled struct {
  3217  	Hash [32]byte
  3218  	Raw  types.Log // Blockchain specific contextual infos
  3219  }
  3220  
  3221  // FilterOrderCancelled is a free log retrieval operation binding the contract event 0x5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d.
  3222  //
  3223  // Solidity: event OrderCancelled(bytes32 hash)
  3224  func (_Blurv1 *Blurv1Filterer) FilterOrderCancelled(opts *bind.FilterOpts) (*Blurv1OrderCancelledIterator, error) {
  3225  
  3226  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "OrderCancelled")
  3227  	if err != nil {
  3228  		return nil, err
  3229  	}
  3230  	return &Blurv1OrderCancelledIterator{contract: _Blurv1.contract, event: "OrderCancelled", logs: logs, sub: sub}, nil
  3231  }
  3232  
  3233  // WatchOrderCancelled is a free log subscription operation binding the contract event 0x5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d.
  3234  //
  3235  // Solidity: event OrderCancelled(bytes32 hash)
  3236  func (_Blurv1 *Blurv1Filterer) WatchOrderCancelled(opts *bind.WatchOpts, sink chan<- *Blurv1OrderCancelled) (event.Subscription, error) {
  3237  
  3238  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "OrderCancelled")
  3239  	if err != nil {
  3240  		return nil, err
  3241  	}
  3242  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3243  		defer sub.Unsubscribe()
  3244  		for {
  3245  			select {
  3246  			case log := <-logs:
  3247  				// New log arrived, parse the event and forward to the user
  3248  				event := new(Blurv1OrderCancelled)
  3249  				if err := _Blurv1.contract.UnpackLog(event, "OrderCancelled", log); err != nil {
  3250  					return err
  3251  				}
  3252  				event.Raw = log
  3253  
  3254  				select {
  3255  				case sink <- event:
  3256  				case err := <-sub.Err():
  3257  					return err
  3258  				case <-quit:
  3259  					return nil
  3260  				}
  3261  			case err := <-sub.Err():
  3262  				return err
  3263  			case <-quit:
  3264  				return nil
  3265  			}
  3266  		}
  3267  	}), nil
  3268  }
  3269  
  3270  // ParseOrderCancelled is a log parse operation binding the contract event 0x5152abf959f6564662358c2e52b702259b78bac5ee7842a0f01937e670efcc7d.
  3271  //
  3272  // Solidity: event OrderCancelled(bytes32 hash)
  3273  func (_Blurv1 *Blurv1Filterer) ParseOrderCancelled(log types.Log) (*Blurv1OrderCancelled, error) {
  3274  	event := new(Blurv1OrderCancelled)
  3275  	if err := _Blurv1.contract.UnpackLog(event, "OrderCancelled", log); err != nil {
  3276  		return nil, err
  3277  	}
  3278  	event.Raw = log
  3279  	return event, nil
  3280  }
  3281  
  3282  // Blurv1OrdersMatchedIterator is returned from FilterOrdersMatched and is used to iterate over the raw logs and unpacked data for OrdersMatched events raised by the Blurv1 contract.
  3283  type Blurv1OrdersMatchedIterator struct {
  3284  	Event *Blurv1OrdersMatched // Event containing the contract specifics and raw log
  3285  
  3286  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3287  	event    string              // Event name to use for unpacking event data
  3288  
  3289  	logs chan types.Log        // Log channel receiving the found contract events
  3290  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3291  	done bool                  // Whether the subscription completed delivering logs
  3292  	fail error                 // Occurred error to stop iteration
  3293  }
  3294  
  3295  // Next advances the iterator to the subsequent event, returning whether there
  3296  // are any more events found. In case of a retrieval or parsing error, false is
  3297  // returned and Error() can be queried for the exact failure.
  3298  func (it *Blurv1OrdersMatchedIterator) Next() bool {
  3299  	// If the iterator failed, stop iterating
  3300  	if it.fail != nil {
  3301  		return false
  3302  	}
  3303  	// If the iterator completed, deliver directly whatever's available
  3304  	if it.done {
  3305  		select {
  3306  		case log := <-it.logs:
  3307  			it.Event = new(Blurv1OrdersMatched)
  3308  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3309  				it.fail = err
  3310  				return false
  3311  			}
  3312  			it.Event.Raw = log
  3313  			return true
  3314  
  3315  		default:
  3316  			return false
  3317  		}
  3318  	}
  3319  	// Iterator still in progress, wait for either a data or an error event
  3320  	select {
  3321  	case log := <-it.logs:
  3322  		it.Event = new(Blurv1OrdersMatched)
  3323  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3324  			it.fail = err
  3325  			return false
  3326  		}
  3327  		it.Event.Raw = log
  3328  		return true
  3329  
  3330  	case err := <-it.sub.Err():
  3331  		it.done = true
  3332  		it.fail = err
  3333  		return it.Next()
  3334  	}
  3335  }
  3336  
  3337  // Error returns any retrieval or parsing error occurred during filtering.
  3338  func (it *Blurv1OrdersMatchedIterator) Error() error {
  3339  	return it.fail
  3340  }
  3341  
  3342  // Close terminates the iteration process, releasing any pending underlying
  3343  // resources.
  3344  func (it *Blurv1OrdersMatchedIterator) Close() error {
  3345  	it.sub.Unsubscribe()
  3346  	return nil
  3347  }
  3348  
  3349  // Blurv1OrdersMatched represents a OrdersMatched event raised by the Blurv1 contract.
  3350  type Blurv1OrdersMatched struct {
  3351  	Maker    common.Address
  3352  	Taker    common.Address
  3353  	Sell     Order
  3354  	SellHash [32]byte
  3355  	Buy      Order
  3356  	BuyHash  [32]byte
  3357  	Raw      types.Log // Blockchain specific contextual infos
  3358  }
  3359  
  3360  // FilterOrdersMatched is a free log retrieval operation binding the contract event 0x61cbb2a3dee0b6064c2e681aadd61677fb4ef319f0b547508d495626f5a62f64.
  3361  //
  3362  // Solidity: event OrdersMatched(address indexed maker, address indexed taker, (address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes) sell, bytes32 sellHash, (address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes) buy, bytes32 buyHash)
  3363  func (_Blurv1 *Blurv1Filterer) FilterOrdersMatched(opts *bind.FilterOpts, maker []common.Address, taker []common.Address) (*Blurv1OrdersMatchedIterator, error) {
  3364  
  3365  	var makerRule []interface{}
  3366  	for _, makerItem := range maker {
  3367  		makerRule = append(makerRule, makerItem)
  3368  	}
  3369  	var takerRule []interface{}
  3370  	for _, takerItem := range taker {
  3371  		takerRule = append(takerRule, takerItem)
  3372  	}
  3373  
  3374  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "OrdersMatched", makerRule, takerRule)
  3375  	if err != nil {
  3376  		return nil, err
  3377  	}
  3378  	return &Blurv1OrdersMatchedIterator{contract: _Blurv1.contract, event: "OrdersMatched", logs: logs, sub: sub}, nil
  3379  }
  3380  
  3381  // WatchOrdersMatched is a free log subscription operation binding the contract event 0x61cbb2a3dee0b6064c2e681aadd61677fb4ef319f0b547508d495626f5a62f64.
  3382  //
  3383  // Solidity: event OrdersMatched(address indexed maker, address indexed taker, (address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes) sell, bytes32 sellHash, (address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes) buy, bytes32 buyHash)
  3384  func (_Blurv1 *Blurv1Filterer) WatchOrdersMatched(opts *bind.WatchOpts, sink chan<- *Blurv1OrdersMatched, maker []common.Address, taker []common.Address) (event.Subscription, error) {
  3385  
  3386  	var makerRule []interface{}
  3387  	for _, makerItem := range maker {
  3388  		makerRule = append(makerRule, makerItem)
  3389  	}
  3390  	var takerRule []interface{}
  3391  	for _, takerItem := range taker {
  3392  		takerRule = append(takerRule, takerItem)
  3393  	}
  3394  
  3395  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "OrdersMatched", makerRule, takerRule)
  3396  	if err != nil {
  3397  		return nil, err
  3398  	}
  3399  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3400  		defer sub.Unsubscribe()
  3401  		for {
  3402  			select {
  3403  			case log := <-logs:
  3404  				// New log arrived, parse the event and forward to the user
  3405  				event := new(Blurv1OrdersMatched)
  3406  				if err := _Blurv1.contract.UnpackLog(event, "OrdersMatched", log); err != nil {
  3407  					return err
  3408  				}
  3409  				event.Raw = log
  3410  
  3411  				select {
  3412  				case sink <- event:
  3413  				case err := <-sub.Err():
  3414  					return err
  3415  				case <-quit:
  3416  					return nil
  3417  				}
  3418  			case err := <-sub.Err():
  3419  				return err
  3420  			case <-quit:
  3421  				return nil
  3422  			}
  3423  		}
  3424  	}), nil
  3425  }
  3426  
  3427  // ParseOrdersMatched is a log parse operation binding the contract event 0x61cbb2a3dee0b6064c2e681aadd61677fb4ef319f0b547508d495626f5a62f64.
  3428  //
  3429  // Solidity: event OrdersMatched(address indexed maker, address indexed taker, (address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes) sell, bytes32 sellHash, (address,uint8,address,address,uint256,uint256,address,uint256,uint256,uint256,(uint16,address)[],uint256,bytes) buy, bytes32 buyHash)
  3430  func (_Blurv1 *Blurv1Filterer) ParseOrdersMatched(log types.Log) (*Blurv1OrdersMatched, error) {
  3431  	event := new(Blurv1OrdersMatched)
  3432  	if err := _Blurv1.contract.UnpackLog(event, "OrdersMatched", log); err != nil {
  3433  		return nil, err
  3434  	}
  3435  	event.Raw = log
  3436  	return event, nil
  3437  }
  3438  
  3439  // Blurv1OwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the Blurv1 contract.
  3440  type Blurv1OwnershipTransferredIterator struct {
  3441  	Event *Blurv1OwnershipTransferred // Event containing the contract specifics and raw log
  3442  
  3443  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3444  	event    string              // Event name to use for unpacking event data
  3445  
  3446  	logs chan types.Log        // Log channel receiving the found contract events
  3447  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3448  	done bool                  // Whether the subscription completed delivering logs
  3449  	fail error                 // Occurred error to stop iteration
  3450  }
  3451  
  3452  // Next advances the iterator to the subsequent event, returning whether there
  3453  // are any more events found. In case of a retrieval or parsing error, false is
  3454  // returned and Error() can be queried for the exact failure.
  3455  func (it *Blurv1OwnershipTransferredIterator) Next() bool {
  3456  	// If the iterator failed, stop iterating
  3457  	if it.fail != nil {
  3458  		return false
  3459  	}
  3460  	// If the iterator completed, deliver directly whatever's available
  3461  	if it.done {
  3462  		select {
  3463  		case log := <-it.logs:
  3464  			it.Event = new(Blurv1OwnershipTransferred)
  3465  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3466  				it.fail = err
  3467  				return false
  3468  			}
  3469  			it.Event.Raw = log
  3470  			return true
  3471  
  3472  		default:
  3473  			return false
  3474  		}
  3475  	}
  3476  	// Iterator still in progress, wait for either a data or an error event
  3477  	select {
  3478  	case log := <-it.logs:
  3479  		it.Event = new(Blurv1OwnershipTransferred)
  3480  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3481  			it.fail = err
  3482  			return false
  3483  		}
  3484  		it.Event.Raw = log
  3485  		return true
  3486  
  3487  	case err := <-it.sub.Err():
  3488  		it.done = true
  3489  		it.fail = err
  3490  		return it.Next()
  3491  	}
  3492  }
  3493  
  3494  // Error returns any retrieval or parsing error occurred during filtering.
  3495  func (it *Blurv1OwnershipTransferredIterator) Error() error {
  3496  	return it.fail
  3497  }
  3498  
  3499  // Close terminates the iteration process, releasing any pending underlying
  3500  // resources.
  3501  func (it *Blurv1OwnershipTransferredIterator) Close() error {
  3502  	it.sub.Unsubscribe()
  3503  	return nil
  3504  }
  3505  
  3506  // Blurv1OwnershipTransferred represents a OwnershipTransferred event raised by the Blurv1 contract.
  3507  type Blurv1OwnershipTransferred struct {
  3508  	PreviousOwner common.Address
  3509  	NewOwner      common.Address
  3510  	Raw           types.Log // Blockchain specific contextual infos
  3511  }
  3512  
  3513  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  3514  //
  3515  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  3516  func (_Blurv1 *Blurv1Filterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*Blurv1OwnershipTransferredIterator, error) {
  3517  
  3518  	var previousOwnerRule []interface{}
  3519  	for _, previousOwnerItem := range previousOwner {
  3520  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  3521  	}
  3522  	var newOwnerRule []interface{}
  3523  	for _, newOwnerItem := range newOwner {
  3524  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  3525  	}
  3526  
  3527  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  3528  	if err != nil {
  3529  		return nil, err
  3530  	}
  3531  	return &Blurv1OwnershipTransferredIterator{contract: _Blurv1.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
  3532  }
  3533  
  3534  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  3535  //
  3536  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  3537  func (_Blurv1 *Blurv1Filterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *Blurv1OwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
  3538  
  3539  	var previousOwnerRule []interface{}
  3540  	for _, previousOwnerItem := range previousOwner {
  3541  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
  3542  	}
  3543  	var newOwnerRule []interface{}
  3544  	for _, newOwnerItem := range newOwner {
  3545  		newOwnerRule = append(newOwnerRule, newOwnerItem)
  3546  	}
  3547  
  3548  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
  3549  	if err != nil {
  3550  		return nil, err
  3551  	}
  3552  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3553  		defer sub.Unsubscribe()
  3554  		for {
  3555  			select {
  3556  			case log := <-logs:
  3557  				// New log arrived, parse the event and forward to the user
  3558  				event := new(Blurv1OwnershipTransferred)
  3559  				if err := _Blurv1.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  3560  					return err
  3561  				}
  3562  				event.Raw = log
  3563  
  3564  				select {
  3565  				case sink <- event:
  3566  				case err := <-sub.Err():
  3567  					return err
  3568  				case <-quit:
  3569  					return nil
  3570  				}
  3571  			case err := <-sub.Err():
  3572  				return err
  3573  			case <-quit:
  3574  				return nil
  3575  			}
  3576  		}
  3577  	}), nil
  3578  }
  3579  
  3580  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
  3581  //
  3582  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
  3583  func (_Blurv1 *Blurv1Filterer) ParseOwnershipTransferred(log types.Log) (*Blurv1OwnershipTransferred, error) {
  3584  	event := new(Blurv1OwnershipTransferred)
  3585  	if err := _Blurv1.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
  3586  		return nil, err
  3587  	}
  3588  	event.Raw = log
  3589  	return event, nil
  3590  }
  3591  
  3592  // Blurv1UpgradedIterator is returned from FilterUpgraded and is used to iterate over the raw logs and unpacked data for Upgraded events raised by the Blurv1 contract.
  3593  type Blurv1UpgradedIterator struct {
  3594  	Event *Blurv1Upgraded // Event containing the contract specifics and raw log
  3595  
  3596  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  3597  	event    string              // Event name to use for unpacking event data
  3598  
  3599  	logs chan types.Log        // Log channel receiving the found contract events
  3600  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  3601  	done bool                  // Whether the subscription completed delivering logs
  3602  	fail error                 // Occurred error to stop iteration
  3603  }
  3604  
  3605  // Next advances the iterator to the subsequent event, returning whether there
  3606  // are any more events found. In case of a retrieval or parsing error, false is
  3607  // returned and Error() can be queried for the exact failure.
  3608  func (it *Blurv1UpgradedIterator) Next() bool {
  3609  	// If the iterator failed, stop iterating
  3610  	if it.fail != nil {
  3611  		return false
  3612  	}
  3613  	// If the iterator completed, deliver directly whatever's available
  3614  	if it.done {
  3615  		select {
  3616  		case log := <-it.logs:
  3617  			it.Event = new(Blurv1Upgraded)
  3618  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3619  				it.fail = err
  3620  				return false
  3621  			}
  3622  			it.Event.Raw = log
  3623  			return true
  3624  
  3625  		default:
  3626  			return false
  3627  		}
  3628  	}
  3629  	// Iterator still in progress, wait for either a data or an error event
  3630  	select {
  3631  	case log := <-it.logs:
  3632  		it.Event = new(Blurv1Upgraded)
  3633  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  3634  			it.fail = err
  3635  			return false
  3636  		}
  3637  		it.Event.Raw = log
  3638  		return true
  3639  
  3640  	case err := <-it.sub.Err():
  3641  		it.done = true
  3642  		it.fail = err
  3643  		return it.Next()
  3644  	}
  3645  }
  3646  
  3647  // Error returns any retrieval or parsing error occurred during filtering.
  3648  func (it *Blurv1UpgradedIterator) Error() error {
  3649  	return it.fail
  3650  }
  3651  
  3652  // Close terminates the iteration process, releasing any pending underlying
  3653  // resources.
  3654  func (it *Blurv1UpgradedIterator) Close() error {
  3655  	it.sub.Unsubscribe()
  3656  	return nil
  3657  }
  3658  
  3659  // Blurv1Upgraded represents a Upgraded event raised by the Blurv1 contract.
  3660  type Blurv1Upgraded struct {
  3661  	Implementation common.Address
  3662  	Raw            types.Log // Blockchain specific contextual infos
  3663  }
  3664  
  3665  // FilterUpgraded is a free log retrieval operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  3666  //
  3667  // Solidity: event Upgraded(address indexed implementation)
  3668  func (_Blurv1 *Blurv1Filterer) FilterUpgraded(opts *bind.FilterOpts, implementation []common.Address) (*Blurv1UpgradedIterator, error) {
  3669  
  3670  	var implementationRule []interface{}
  3671  	for _, implementationItem := range implementation {
  3672  		implementationRule = append(implementationRule, implementationItem)
  3673  	}
  3674  
  3675  	logs, sub, err := _Blurv1.contract.FilterLogs(opts, "Upgraded", implementationRule)
  3676  	if err != nil {
  3677  		return nil, err
  3678  	}
  3679  	return &Blurv1UpgradedIterator{contract: _Blurv1.contract, event: "Upgraded", logs: logs, sub: sub}, nil
  3680  }
  3681  
  3682  // WatchUpgraded is a free log subscription operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  3683  //
  3684  // Solidity: event Upgraded(address indexed implementation)
  3685  func (_Blurv1 *Blurv1Filterer) WatchUpgraded(opts *bind.WatchOpts, sink chan<- *Blurv1Upgraded, implementation []common.Address) (event.Subscription, error) {
  3686  
  3687  	var implementationRule []interface{}
  3688  	for _, implementationItem := range implementation {
  3689  		implementationRule = append(implementationRule, implementationItem)
  3690  	}
  3691  
  3692  	logs, sub, err := _Blurv1.contract.WatchLogs(opts, "Upgraded", implementationRule)
  3693  	if err != nil {
  3694  		return nil, err
  3695  	}
  3696  	return event.NewSubscription(func(quit <-chan struct{}) error {
  3697  		defer sub.Unsubscribe()
  3698  		for {
  3699  			select {
  3700  			case log := <-logs:
  3701  				// New log arrived, parse the event and forward to the user
  3702  				event := new(Blurv1Upgraded)
  3703  				if err := _Blurv1.contract.UnpackLog(event, "Upgraded", log); err != nil {
  3704  					return err
  3705  				}
  3706  				event.Raw = log
  3707  
  3708  				select {
  3709  				case sink <- event:
  3710  				case err := <-sub.Err():
  3711  					return err
  3712  				case <-quit:
  3713  					return nil
  3714  				}
  3715  			case err := <-sub.Err():
  3716  				return err
  3717  			case <-quit:
  3718  				return nil
  3719  			}
  3720  		}
  3721  	}), nil
  3722  }
  3723  
  3724  // ParseUpgraded is a log parse operation binding the contract event 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b.
  3725  //
  3726  // Solidity: event Upgraded(address indexed implementation)
  3727  func (_Blurv1 *Blurv1Filterer) ParseUpgraded(log types.Log) (*Blurv1Upgraded, error) {
  3728  	event := new(Blurv1Upgraded)
  3729  	if err := _Blurv1.contract.UnpackLog(event, "Upgraded", log); err != nil {
  3730  		return nil, err
  3731  	}
  3732  	event.Raw = log
  3733  	return event, nil
  3734  }