github.com/diadata-org/diadata@v1.4.593/pkg/dia/scraper/exchange-scrapers/bancor/ConverterRegistry.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 ConverterRegistry
     5  
     6  import (
     7  	"math/big"
     8  	"strings"
     9  
    10  	ethereum "github.com/ethereum/go-ethereum"
    11  	"github.com/ethereum/go-ethereum/accounts/abi"
    12  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    13  	"github.com/ethereum/go-ethereum/common"
    14  	"github.com/ethereum/go-ethereum/core/types"
    15  	"github.com/ethereum/go-ethereum/event"
    16  )
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var (
    20  	_ = big.NewInt
    21  	_ = strings.NewReader
    22  	_ = ethereum.NotFound
    23  	_ = bind.Bind
    24  	_ = common.Big1
    25  	_ = types.BloomLookup
    26  	_ = event.NewSubscription
    27  )
    28  
    29  // ConverterRegistryABI is the input ABI used to generate the binding from.
    30  const ConverterRegistryABI = "[{\"inputs\":[{\"internalType\":\"contractIContractRegistry\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contractIConverterAnchor\",\"name\":\"_anchor\",\"type\":\"address\"}],\"name\":\"ConverterAnchorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contractIConverterAnchor\",\"name\":\"_anchor\",\"type\":\"address\"}],\"name\":\"ConverterAnchorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contractIERC20Token\",\"name\":\"_convertibleToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contractIConverterAnchor\",\"name\":\"_smartToken\",\"type\":\"address\"}],\"name\":\"ConvertibleTokenAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contractIERC20Token\",\"name\":\"_convertibleToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contractIConverterAnchor\",\"name\":\"_smartToken\",\"type\":\"address\"}],\"name\":\"ConvertibleTokenRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contractIConverterAnchor\",\"name\":\"_liquidityPool\",\"type\":\"address\"}],\"name\":\"LiquidityPoolAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contractIConverterAnchor\",\"name\":\"_liquidityPool\",\"type\":\"address\"}],\"name\":\"LiquidityPoolRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"OwnerUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contractIConverterAnchor\",\"name\":\"_smartToken\",\"type\":\"address\"}],\"name\":\"SmartTokenAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contractIConverterAnchor\",\"name\":\"_smartToken\",\"type\":\"address\"}],\"name\":\"SmartTokenRemoved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIConverter\",\"name\":\"_converter\",\"type\":\"address\"}],\"name\":\"addConverter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getAnchor\",\"outputs\":[{\"internalType\":\"contractIConverterAnchor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAnchorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAnchors\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_anchors\",\"type\":\"address[]\"}],\"name\":\"getConvertersByAnchors\",\"outputs\":[{\"internalType\":\"contractIConverter[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_smartTokens\",\"type\":\"address[]\"}],\"name\":\"getConvertersBySmartTokens\",\"outputs\":[{\"internalType\":\"contractIConverter[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getConvertibleToken\",\"outputs\":[{\"internalType\":\"contractIERC20Token\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20Token\",\"name\":\"_convertibleToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getConvertibleTokenAnchor\",\"outputs\":[{\"internalType\":\"contractIConverterAnchor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20Token\",\"name\":\"_convertibleToken\",\"type\":\"address\"}],\"name\":\"getConvertibleTokenAnchorCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20Token\",\"name\":\"_convertibleToken\",\"type\":\"address\"}],\"name\":\"getConvertibleTokenAnchors\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConvertibleTokenCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20Token\",\"name\":\"_convertibleToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getConvertibleTokenSmartToken\",\"outputs\":[{\"internalType\":\"contractIConverterAnchor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20Token\",\"name\":\"_convertibleToken\",\"type\":\"address\"}],\"name\":\"getConvertibleTokenSmartTokenCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20Token\",\"name\":\"_convertibleToken\",\"type\":\"address\"}],\"name\":\"getConvertibleTokenSmartTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConvertibleTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getLiquidityPool\",\"outputs\":[{\"internalType\":\"contractIConverterAnchor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"internalType\":\"contractIERC20Token[]\",\"name\":\"_reserveTokens\",\"type\":\"address[]\"},{\"internalType\":\"uint32[]\",\"name\":\"_reserveWeights\",\"type\":\"uint32[]\"}],\"name\":\"getLiquidityPoolByConfig\",\"outputs\":[{\"internalType\":\"contractIConverterAnchor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20Token[]\",\"name\":\"_reserveTokens\",\"type\":\"address[]\"},{\"internalType\":\"uint32[]\",\"name\":\"_reserveWeights\",\"type\":\"uint32[]\"}],\"name\":\"getLiquidityPoolByReserveConfig\",\"outputs\":[{\"internalType\":\"contractIConverterAnchor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLiquidityPoolCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLiquidityPools\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"getSmartToken\",\"outputs\":[{\"internalType\":\"contractIConverterAnchor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSmartTokenCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSmartTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_value\",\"type\":\"address\"}],\"name\":\"isAnchor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIConverter\",\"name\":\"_converter\",\"type\":\"address\"}],\"name\":\"isConverterValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_value\",\"type\":\"address\"}],\"name\":\"isConvertibleToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20Token\",\"name\":\"_convertibleToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_value\",\"type\":\"address\"}],\"name\":\"isConvertibleTokenAnchor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIERC20Token\",\"name\":\"_convertibleToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_value\",\"type\":\"address\"}],\"name\":\"isConvertibleTokenSmartToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_value\",\"type\":\"address\"}],\"name\":\"isLiquidityPool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIConverter\",\"name\":\"_converter\",\"type\":\"address\"}],\"name\":\"isSimilarLiquidityPoolRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_value\",\"type\":\"address\"}],\"name\":\"isSmartToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"_maxConversionFee\",\"type\":\"uint32\"},{\"internalType\":\"contractIERC20Token[]\",\"name\":\"_reserveTokens\",\"type\":\"address[]\"},{\"internalType\":\"uint32[]\",\"name\":\"_reserveWeights\",\"type\":\"uint32[]\"}],\"name\":\"newConverter\",\"outputs\":[{\"internalType\":\"contractIConverter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onlyOwnerCanUpdateRegistry\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"prevRegistry\",\"outputs\":[{\"internalType\":\"contractIContractRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contractIContractRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contractIConverter\",\"name\":\"_converter\",\"type\":\"address\"}],\"name\":\"removeConverter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"restoreRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_onlyOwnerCanUpdateRegistry\",\"type\":\"bool\"}],\"name\":\"restrictRegistryUpdate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
    31  
    32  // ConverterRegistry is an auto generated Go binding around an Ethereum contract.
    33  type ConverterRegistry struct {
    34  	ConverterRegistryCaller     // Read-only binding to the contract
    35  	ConverterRegistryTransactor // Write-only binding to the contract
    36  	ConverterRegistryFilterer   // Log filterer for contract events
    37  }
    38  
    39  // ConverterRegistryCaller is an auto generated read-only Go binding around an Ethereum contract.
    40  type ConverterRegistryCaller struct {
    41  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    42  }
    43  
    44  // ConverterRegistryTransactor is an auto generated write-only Go binding around an Ethereum contract.
    45  type ConverterRegistryTransactor struct {
    46  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    47  }
    48  
    49  // ConverterRegistryFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    50  type ConverterRegistryFilterer struct {
    51  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    52  }
    53  
    54  // ConverterRegistrySession is an auto generated Go binding around an Ethereum contract,
    55  // with pre-set call and transact options.
    56  type ConverterRegistrySession struct {
    57  	Contract     *ConverterRegistry // Generic contract binding to set the session for
    58  	CallOpts     bind.CallOpts      // Call options to use throughout this session
    59  	TransactOpts bind.TransactOpts  // Transaction auth options to use throughout this session
    60  }
    61  
    62  // ConverterRegistryCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    63  // with pre-set call options.
    64  type ConverterRegistryCallerSession struct {
    65  	Contract *ConverterRegistryCaller // Generic contract caller binding to set the session for
    66  	CallOpts bind.CallOpts            // Call options to use throughout this session
    67  }
    68  
    69  // ConverterRegistryTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    70  // with pre-set transact options.
    71  type ConverterRegistryTransactorSession struct {
    72  	Contract     *ConverterRegistryTransactor // Generic contract transactor binding to set the session for
    73  	TransactOpts bind.TransactOpts            // Transaction auth options to use throughout this session
    74  }
    75  
    76  // ConverterRegistryRaw is an auto generated low-level Go binding around an Ethereum contract.
    77  type ConverterRegistryRaw struct {
    78  	Contract *ConverterRegistry // Generic contract binding to access the raw methods on
    79  }
    80  
    81  // ConverterRegistryCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
    82  type ConverterRegistryCallerRaw struct {
    83  	Contract *ConverterRegistryCaller // Generic read-only contract binding to access the raw methods on
    84  }
    85  
    86  // ConverterRegistryTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
    87  type ConverterRegistryTransactorRaw struct {
    88  	Contract *ConverterRegistryTransactor // Generic write-only contract binding to access the raw methods on
    89  }
    90  
    91  // NewConverterRegistry creates a new instance of ConverterRegistry, bound to a specific deployed contract.
    92  func NewConverterRegistry(address common.Address, backend bind.ContractBackend) (*ConverterRegistry, error) {
    93  	contract, err := bindConverterRegistry(address, backend, backend, backend)
    94  	if err != nil {
    95  		return nil, err
    96  	}
    97  	return &ConverterRegistry{ConverterRegistryCaller: ConverterRegistryCaller{contract: contract}, ConverterRegistryTransactor: ConverterRegistryTransactor{contract: contract}, ConverterRegistryFilterer: ConverterRegistryFilterer{contract: contract}}, nil
    98  }
    99  
   100  // NewConverterRegistryCaller creates a new read-only instance of ConverterRegistry, bound to a specific deployed contract.
   101  func NewConverterRegistryCaller(address common.Address, caller bind.ContractCaller) (*ConverterRegistryCaller, error) {
   102  	contract, err := bindConverterRegistry(address, caller, nil, nil)
   103  	if err != nil {
   104  		return nil, err
   105  	}
   106  	return &ConverterRegistryCaller{contract: contract}, nil
   107  }
   108  
   109  // NewConverterRegistryTransactor creates a new write-only instance of ConverterRegistry, bound to a specific deployed contract.
   110  func NewConverterRegistryTransactor(address common.Address, transactor bind.ContractTransactor) (*ConverterRegistryTransactor, error) {
   111  	contract, err := bindConverterRegistry(address, nil, transactor, nil)
   112  	if err != nil {
   113  		return nil, err
   114  	}
   115  	return &ConverterRegistryTransactor{contract: contract}, nil
   116  }
   117  
   118  // NewConverterRegistryFilterer creates a new log filterer instance of ConverterRegistry, bound to a specific deployed contract.
   119  func NewConverterRegistryFilterer(address common.Address, filterer bind.ContractFilterer) (*ConverterRegistryFilterer, error) {
   120  	contract, err := bindConverterRegistry(address, nil, nil, filterer)
   121  	if err != nil {
   122  		return nil, err
   123  	}
   124  	return &ConverterRegistryFilterer{contract: contract}, nil
   125  }
   126  
   127  // bindConverterRegistry binds a generic wrapper to an already deployed contract.
   128  func bindConverterRegistry(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   129  	parsed, err := abi.JSON(strings.NewReader(ConverterRegistryABI))
   130  	if err != nil {
   131  		return nil, err
   132  	}
   133  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   134  }
   135  
   136  // Call invokes the (constant) contract method with params as input values and
   137  // sets the output to result. The result type might be a single field for simple
   138  // returns, a slice of interfaces for anonymous returns and a struct for named
   139  // returns.
   140  func (_ConverterRegistry *ConverterRegistryRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   141  	return _ConverterRegistry.Contract.ConverterRegistryCaller.contract.Call(opts, result, method, params...)
   142  }
   143  
   144  // Transfer initiates a plain transaction to move funds to the contract, calling
   145  // its default method if one is available.
   146  func (_ConverterRegistry *ConverterRegistryRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   147  	return _ConverterRegistry.Contract.ConverterRegistryTransactor.contract.Transfer(opts)
   148  }
   149  
   150  // Transact invokes the (paid) contract method with params as input values.
   151  func (_ConverterRegistry *ConverterRegistryRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   152  	return _ConverterRegistry.Contract.ConverterRegistryTransactor.contract.Transact(opts, method, params...)
   153  }
   154  
   155  // Call invokes the (constant) contract method with params as input values and
   156  // sets the output to result. The result type might be a single field for simple
   157  // returns, a slice of interfaces for anonymous returns and a struct for named
   158  // returns.
   159  func (_ConverterRegistry *ConverterRegistryCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   160  	return _ConverterRegistry.Contract.contract.Call(opts, result, method, params...)
   161  }
   162  
   163  // Transfer initiates a plain transaction to move funds to the contract, calling
   164  // its default method if one is available.
   165  func (_ConverterRegistry *ConverterRegistryTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   166  	return _ConverterRegistry.Contract.contract.Transfer(opts)
   167  }
   168  
   169  // Transact invokes the (paid) contract method with params as input values.
   170  func (_ConverterRegistry *ConverterRegistryTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   171  	return _ConverterRegistry.Contract.contract.Transact(opts, method, params...)
   172  }
   173  
   174  // GetAnchor is a free data retrieval call binding the contract method 0x4c7df18f.
   175  //
   176  // Solidity: function getAnchor(uint256 _index) view returns(address)
   177  func (_ConverterRegistry *ConverterRegistryCaller) GetAnchor(opts *bind.CallOpts, _index *big.Int) (common.Address, error) {
   178  	var out []interface{}
   179  	err := _ConverterRegistry.contract.Call(opts, &out, "getAnchor", _index)
   180  
   181  	if err != nil {
   182  		return *new(common.Address), err
   183  	}
   184  
   185  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   186  
   187  	return out0, err
   188  
   189  }
   190  
   191  // GetAnchor is a free data retrieval call binding the contract method 0x4c7df18f.
   192  //
   193  // Solidity: function getAnchor(uint256 _index) view returns(address)
   194  func (_ConverterRegistry *ConverterRegistrySession) GetAnchor(_index *big.Int) (common.Address, error) {
   195  	return _ConverterRegistry.Contract.GetAnchor(&_ConverterRegistry.CallOpts, _index)
   196  }
   197  
   198  // GetAnchor is a free data retrieval call binding the contract method 0x4c7df18f.
   199  //
   200  // Solidity: function getAnchor(uint256 _index) view returns(address)
   201  func (_ConverterRegistry *ConverterRegistryCallerSession) GetAnchor(_index *big.Int) (common.Address, error) {
   202  	return _ConverterRegistry.Contract.GetAnchor(&_ConverterRegistry.CallOpts, _index)
   203  }
   204  
   205  // GetAnchorCount is a free data retrieval call binding the contract method 0xd3182bed.
   206  //
   207  // Solidity: function getAnchorCount() view returns(uint256)
   208  func (_ConverterRegistry *ConverterRegistryCaller) GetAnchorCount(opts *bind.CallOpts) (*big.Int, error) {
   209  	var out []interface{}
   210  	err := _ConverterRegistry.contract.Call(opts, &out, "getAnchorCount")
   211  
   212  	if err != nil {
   213  		return *new(*big.Int), err
   214  	}
   215  
   216  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   217  
   218  	return out0, err
   219  
   220  }
   221  
   222  // GetAnchorCount is a free data retrieval call binding the contract method 0xd3182bed.
   223  //
   224  // Solidity: function getAnchorCount() view returns(uint256)
   225  func (_ConverterRegistry *ConverterRegistrySession) GetAnchorCount() (*big.Int, error) {
   226  	return _ConverterRegistry.Contract.GetAnchorCount(&_ConverterRegistry.CallOpts)
   227  }
   228  
   229  // GetAnchorCount is a free data retrieval call binding the contract method 0xd3182bed.
   230  //
   231  // Solidity: function getAnchorCount() view returns(uint256)
   232  func (_ConverterRegistry *ConverterRegistryCallerSession) GetAnchorCount() (*big.Int, error) {
   233  	return _ConverterRegistry.Contract.GetAnchorCount(&_ConverterRegistry.CallOpts)
   234  }
   235  
   236  // GetAnchors is a free data retrieval call binding the contract method 0xeffb3c6e.
   237  //
   238  // Solidity: function getAnchors() view returns(address[])
   239  func (_ConverterRegistry *ConverterRegistryCaller) GetAnchors(opts *bind.CallOpts) ([]common.Address, error) {
   240  	var out []interface{}
   241  	err := _ConverterRegistry.contract.Call(opts, &out, "getAnchors")
   242  
   243  	if err != nil {
   244  		return *new([]common.Address), err
   245  	}
   246  
   247  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
   248  
   249  	return out0, err
   250  
   251  }
   252  
   253  // GetAnchors is a free data retrieval call binding the contract method 0xeffb3c6e.
   254  //
   255  // Solidity: function getAnchors() view returns(address[])
   256  func (_ConverterRegistry *ConverterRegistrySession) GetAnchors() ([]common.Address, error) {
   257  	return _ConverterRegistry.Contract.GetAnchors(&_ConverterRegistry.CallOpts)
   258  }
   259  
   260  // GetAnchors is a free data retrieval call binding the contract method 0xeffb3c6e.
   261  //
   262  // Solidity: function getAnchors() view returns(address[])
   263  func (_ConverterRegistry *ConverterRegistryCallerSession) GetAnchors() ([]common.Address, error) {
   264  	return _ConverterRegistry.Contract.GetAnchors(&_ConverterRegistry.CallOpts)
   265  }
   266  
   267  // GetConvertersByAnchors is a free data retrieval call binding the contract method 0x610c0b05.
   268  //
   269  // Solidity: function getConvertersByAnchors(address[] _anchors) view returns(address[])
   270  func (_ConverterRegistry *ConverterRegistryCaller) GetConvertersByAnchors(opts *bind.CallOpts, _anchors []common.Address) ([]common.Address, error) {
   271  	var out []interface{}
   272  	err := _ConverterRegistry.contract.Call(opts, &out, "getConvertersByAnchors", _anchors)
   273  
   274  	if err != nil {
   275  		return *new([]common.Address), err
   276  	}
   277  
   278  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
   279  
   280  	return out0, err
   281  
   282  }
   283  
   284  // GetConvertersByAnchors is a free data retrieval call binding the contract method 0x610c0b05.
   285  //
   286  // Solidity: function getConvertersByAnchors(address[] _anchors) view returns(address[])
   287  func (_ConverterRegistry *ConverterRegistrySession) GetConvertersByAnchors(_anchors []common.Address) ([]common.Address, error) {
   288  	return _ConverterRegistry.Contract.GetConvertersByAnchors(&_ConverterRegistry.CallOpts, _anchors)
   289  }
   290  
   291  // GetConvertersByAnchors is a free data retrieval call binding the contract method 0x610c0b05.
   292  //
   293  // Solidity: function getConvertersByAnchors(address[] _anchors) view returns(address[])
   294  func (_ConverterRegistry *ConverterRegistryCallerSession) GetConvertersByAnchors(_anchors []common.Address) ([]common.Address, error) {
   295  	return _ConverterRegistry.Contract.GetConvertersByAnchors(&_ConverterRegistry.CallOpts, _anchors)
   296  }
   297  
   298  // GetConvertersBySmartTokens is a free data retrieval call binding the contract method 0x1f8e2620.
   299  //
   300  // Solidity: function getConvertersBySmartTokens(address[] _smartTokens) view returns(address[])
   301  func (_ConverterRegistry *ConverterRegistryCaller) GetConvertersBySmartTokens(opts *bind.CallOpts, _smartTokens []common.Address) ([]common.Address, error) {
   302  	var out []interface{}
   303  	err := _ConverterRegistry.contract.Call(opts, &out, "getConvertersBySmartTokens", _smartTokens)
   304  
   305  	if err != nil {
   306  		return *new([]common.Address), err
   307  	}
   308  
   309  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
   310  
   311  	return out0, err
   312  
   313  }
   314  
   315  // GetConvertersBySmartTokens is a free data retrieval call binding the contract method 0x1f8e2620.
   316  //
   317  // Solidity: function getConvertersBySmartTokens(address[] _smartTokens) view returns(address[])
   318  func (_ConverterRegistry *ConverterRegistrySession) GetConvertersBySmartTokens(_smartTokens []common.Address) ([]common.Address, error) {
   319  	return _ConverterRegistry.Contract.GetConvertersBySmartTokens(&_ConverterRegistry.CallOpts, _smartTokens)
   320  }
   321  
   322  // GetConvertersBySmartTokens is a free data retrieval call binding the contract method 0x1f8e2620.
   323  //
   324  // Solidity: function getConvertersBySmartTokens(address[] _smartTokens) view returns(address[])
   325  func (_ConverterRegistry *ConverterRegistryCallerSession) GetConvertersBySmartTokens(_smartTokens []common.Address) ([]common.Address, error) {
   326  	return _ConverterRegistry.Contract.GetConvertersBySmartTokens(&_ConverterRegistry.CallOpts, _smartTokens)
   327  }
   328  
   329  // GetConvertibleToken is a free data retrieval call binding the contract method 0x865cf194.
   330  //
   331  // Solidity: function getConvertibleToken(uint256 _index) view returns(address)
   332  func (_ConverterRegistry *ConverterRegistryCaller) GetConvertibleToken(opts *bind.CallOpts, _index *big.Int) (common.Address, error) {
   333  	var out []interface{}
   334  	err := _ConverterRegistry.contract.Call(opts, &out, "getConvertibleToken", _index)
   335  
   336  	if err != nil {
   337  		return *new(common.Address), err
   338  	}
   339  
   340  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   341  
   342  	return out0, err
   343  
   344  }
   345  
   346  // GetConvertibleToken is a free data retrieval call binding the contract method 0x865cf194.
   347  //
   348  // Solidity: function getConvertibleToken(uint256 _index) view returns(address)
   349  func (_ConverterRegistry *ConverterRegistrySession) GetConvertibleToken(_index *big.Int) (common.Address, error) {
   350  	return _ConverterRegistry.Contract.GetConvertibleToken(&_ConverterRegistry.CallOpts, _index)
   351  }
   352  
   353  // GetConvertibleToken is a free data retrieval call binding the contract method 0x865cf194.
   354  //
   355  // Solidity: function getConvertibleToken(uint256 _index) view returns(address)
   356  func (_ConverterRegistry *ConverterRegistryCallerSession) GetConvertibleToken(_index *big.Int) (common.Address, error) {
   357  	return _ConverterRegistry.Contract.GetConvertibleToken(&_ConverterRegistry.CallOpts, _index)
   358  }
   359  
   360  // GetConvertibleTokenAnchor is a free data retrieval call binding the contract method 0x603f51e4.
   361  //
   362  // Solidity: function getConvertibleTokenAnchor(address _convertibleToken, uint256 _index) view returns(address)
   363  func (_ConverterRegistry *ConverterRegistryCaller) GetConvertibleTokenAnchor(opts *bind.CallOpts, _convertibleToken common.Address, _index *big.Int) (common.Address, error) {
   364  	var out []interface{}
   365  	err := _ConverterRegistry.contract.Call(opts, &out, "getConvertibleTokenAnchor", _convertibleToken, _index)
   366  
   367  	if err != nil {
   368  		return *new(common.Address), err
   369  	}
   370  
   371  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   372  
   373  	return out0, err
   374  
   375  }
   376  
   377  // GetConvertibleTokenAnchor is a free data retrieval call binding the contract method 0x603f51e4.
   378  //
   379  // Solidity: function getConvertibleTokenAnchor(address _convertibleToken, uint256 _index) view returns(address)
   380  func (_ConverterRegistry *ConverterRegistrySession) GetConvertibleTokenAnchor(_convertibleToken common.Address, _index *big.Int) (common.Address, error) {
   381  	return _ConverterRegistry.Contract.GetConvertibleTokenAnchor(&_ConverterRegistry.CallOpts, _convertibleToken, _index)
   382  }
   383  
   384  // GetConvertibleTokenAnchor is a free data retrieval call binding the contract method 0x603f51e4.
   385  //
   386  // Solidity: function getConvertibleTokenAnchor(address _convertibleToken, uint256 _index) view returns(address)
   387  func (_ConverterRegistry *ConverterRegistryCallerSession) GetConvertibleTokenAnchor(_convertibleToken common.Address, _index *big.Int) (common.Address, error) {
   388  	return _ConverterRegistry.Contract.GetConvertibleTokenAnchor(&_ConverterRegistry.CallOpts, _convertibleToken, _index)
   389  }
   390  
   391  // GetConvertibleTokenAnchorCount is a free data retrieval call binding the contract method 0x49c5f32b.
   392  //
   393  // Solidity: function getConvertibleTokenAnchorCount(address _convertibleToken) view returns(uint256)
   394  func (_ConverterRegistry *ConverterRegistryCaller) GetConvertibleTokenAnchorCount(opts *bind.CallOpts, _convertibleToken common.Address) (*big.Int, error) {
   395  	var out []interface{}
   396  	err := _ConverterRegistry.contract.Call(opts, &out, "getConvertibleTokenAnchorCount", _convertibleToken)
   397  
   398  	if err != nil {
   399  		return *new(*big.Int), err
   400  	}
   401  
   402  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   403  
   404  	return out0, err
   405  
   406  }
   407  
   408  // GetConvertibleTokenAnchorCount is a free data retrieval call binding the contract method 0x49c5f32b.
   409  //
   410  // Solidity: function getConvertibleTokenAnchorCount(address _convertibleToken) view returns(uint256)
   411  func (_ConverterRegistry *ConverterRegistrySession) GetConvertibleTokenAnchorCount(_convertibleToken common.Address) (*big.Int, error) {
   412  	return _ConverterRegistry.Contract.GetConvertibleTokenAnchorCount(&_ConverterRegistry.CallOpts, _convertibleToken)
   413  }
   414  
   415  // GetConvertibleTokenAnchorCount is a free data retrieval call binding the contract method 0x49c5f32b.
   416  //
   417  // Solidity: function getConvertibleTokenAnchorCount(address _convertibleToken) view returns(uint256)
   418  func (_ConverterRegistry *ConverterRegistryCallerSession) GetConvertibleTokenAnchorCount(_convertibleToken common.Address) (*big.Int, error) {
   419  	return _ConverterRegistry.Contract.GetConvertibleTokenAnchorCount(&_ConverterRegistry.CallOpts, _convertibleToken)
   420  }
   421  
   422  // GetConvertibleTokenAnchors is a free data retrieval call binding the contract method 0x11839064.
   423  //
   424  // Solidity: function getConvertibleTokenAnchors(address _convertibleToken) view returns(address[])
   425  func (_ConverterRegistry *ConverterRegistryCaller) GetConvertibleTokenAnchors(opts *bind.CallOpts, _convertibleToken common.Address) ([]common.Address, error) {
   426  	var out []interface{}
   427  	err := _ConverterRegistry.contract.Call(opts, &out, "getConvertibleTokenAnchors", _convertibleToken)
   428  
   429  	if err != nil {
   430  		return *new([]common.Address), err
   431  	}
   432  
   433  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
   434  
   435  	return out0, err
   436  
   437  }
   438  
   439  // GetConvertibleTokenAnchors is a free data retrieval call binding the contract method 0x11839064.
   440  //
   441  // Solidity: function getConvertibleTokenAnchors(address _convertibleToken) view returns(address[])
   442  func (_ConverterRegistry *ConverterRegistrySession) GetConvertibleTokenAnchors(_convertibleToken common.Address) ([]common.Address, error) {
   443  	return _ConverterRegistry.Contract.GetConvertibleTokenAnchors(&_ConverterRegistry.CallOpts, _convertibleToken)
   444  }
   445  
   446  // GetConvertibleTokenAnchors is a free data retrieval call binding the contract method 0x11839064.
   447  //
   448  // Solidity: function getConvertibleTokenAnchors(address _convertibleToken) view returns(address[])
   449  func (_ConverterRegistry *ConverterRegistryCallerSession) GetConvertibleTokenAnchors(_convertibleToken common.Address) ([]common.Address, error) {
   450  	return _ConverterRegistry.Contract.GetConvertibleTokenAnchors(&_ConverterRegistry.CallOpts, _convertibleToken)
   451  }
   452  
   453  // GetConvertibleTokenCount is a free data retrieval call binding the contract method 0x69be4784.
   454  //
   455  // Solidity: function getConvertibleTokenCount() view returns(uint256)
   456  func (_ConverterRegistry *ConverterRegistryCaller) GetConvertibleTokenCount(opts *bind.CallOpts) (*big.Int, error) {
   457  	var out []interface{}
   458  	err := _ConverterRegistry.contract.Call(opts, &out, "getConvertibleTokenCount")
   459  
   460  	if err != nil {
   461  		return *new(*big.Int), err
   462  	}
   463  
   464  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   465  
   466  	return out0, err
   467  
   468  }
   469  
   470  // GetConvertibleTokenCount is a free data retrieval call binding the contract method 0x69be4784.
   471  //
   472  // Solidity: function getConvertibleTokenCount() view returns(uint256)
   473  func (_ConverterRegistry *ConverterRegistrySession) GetConvertibleTokenCount() (*big.Int, error) {
   474  	return _ConverterRegistry.Contract.GetConvertibleTokenCount(&_ConverterRegistry.CallOpts)
   475  }
   476  
   477  // GetConvertibleTokenCount is a free data retrieval call binding the contract method 0x69be4784.
   478  //
   479  // Solidity: function getConvertibleTokenCount() view returns(uint256)
   480  func (_ConverterRegistry *ConverterRegistryCallerSession) GetConvertibleTokenCount() (*big.Int, error) {
   481  	return _ConverterRegistry.Contract.GetConvertibleTokenCount(&_ConverterRegistry.CallOpts)
   482  }
   483  
   484  // GetConvertibleTokenSmartToken is a free data retrieval call binding the contract method 0xd6c4b5b2.
   485  //
   486  // Solidity: function getConvertibleTokenSmartToken(address _convertibleToken, uint256 _index) view returns(address)
   487  func (_ConverterRegistry *ConverterRegistryCaller) GetConvertibleTokenSmartToken(opts *bind.CallOpts, _convertibleToken common.Address, _index *big.Int) (common.Address, error) {
   488  	var out []interface{}
   489  	err := _ConverterRegistry.contract.Call(opts, &out, "getConvertibleTokenSmartToken", _convertibleToken, _index)
   490  
   491  	if err != nil {
   492  		return *new(common.Address), err
   493  	}
   494  
   495  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   496  
   497  	return out0, err
   498  
   499  }
   500  
   501  // GetConvertibleTokenSmartToken is a free data retrieval call binding the contract method 0xd6c4b5b2.
   502  //
   503  // Solidity: function getConvertibleTokenSmartToken(address _convertibleToken, uint256 _index) view returns(address)
   504  func (_ConverterRegistry *ConverterRegistrySession) GetConvertibleTokenSmartToken(_convertibleToken common.Address, _index *big.Int) (common.Address, error) {
   505  	return _ConverterRegistry.Contract.GetConvertibleTokenSmartToken(&_ConverterRegistry.CallOpts, _convertibleToken, _index)
   506  }
   507  
   508  // GetConvertibleTokenSmartToken is a free data retrieval call binding the contract method 0xd6c4b5b2.
   509  //
   510  // Solidity: function getConvertibleTokenSmartToken(address _convertibleToken, uint256 _index) view returns(address)
   511  func (_ConverterRegistry *ConverterRegistryCallerSession) GetConvertibleTokenSmartToken(_convertibleToken common.Address, _index *big.Int) (common.Address, error) {
   512  	return _ConverterRegistry.Contract.GetConvertibleTokenSmartToken(&_ConverterRegistry.CallOpts, _convertibleToken, _index)
   513  }
   514  
   515  // GetConvertibleTokenSmartTokenCount is a free data retrieval call binding the contract method 0xa43d5e94.
   516  //
   517  // Solidity: function getConvertibleTokenSmartTokenCount(address _convertibleToken) view returns(uint256)
   518  func (_ConverterRegistry *ConverterRegistryCaller) GetConvertibleTokenSmartTokenCount(opts *bind.CallOpts, _convertibleToken common.Address) (*big.Int, error) {
   519  	var out []interface{}
   520  	err := _ConverterRegistry.contract.Call(opts, &out, "getConvertibleTokenSmartTokenCount", _convertibleToken)
   521  
   522  	if err != nil {
   523  		return *new(*big.Int), err
   524  	}
   525  
   526  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   527  
   528  	return out0, err
   529  
   530  }
   531  
   532  // GetConvertibleTokenSmartTokenCount is a free data retrieval call binding the contract method 0xa43d5e94.
   533  //
   534  // Solidity: function getConvertibleTokenSmartTokenCount(address _convertibleToken) view returns(uint256)
   535  func (_ConverterRegistry *ConverterRegistrySession) GetConvertibleTokenSmartTokenCount(_convertibleToken common.Address) (*big.Int, error) {
   536  	return _ConverterRegistry.Contract.GetConvertibleTokenSmartTokenCount(&_ConverterRegistry.CallOpts, _convertibleToken)
   537  }
   538  
   539  // GetConvertibleTokenSmartTokenCount is a free data retrieval call binding the contract method 0xa43d5e94.
   540  //
   541  // Solidity: function getConvertibleTokenSmartTokenCount(address _convertibleToken) view returns(uint256)
   542  func (_ConverterRegistry *ConverterRegistryCallerSession) GetConvertibleTokenSmartTokenCount(_convertibleToken common.Address) (*big.Int, error) {
   543  	return _ConverterRegistry.Contract.GetConvertibleTokenSmartTokenCount(&_ConverterRegistry.CallOpts, _convertibleToken)
   544  }
   545  
   546  // GetConvertibleTokenSmartTokens is a free data retrieval call binding the contract method 0xf4fb86c0.
   547  //
   548  // Solidity: function getConvertibleTokenSmartTokens(address _convertibleToken) view returns(address[])
   549  func (_ConverterRegistry *ConverterRegistryCaller) GetConvertibleTokenSmartTokens(opts *bind.CallOpts, _convertibleToken common.Address) ([]common.Address, error) {
   550  	var out []interface{}
   551  	err := _ConverterRegistry.contract.Call(opts, &out, "getConvertibleTokenSmartTokens", _convertibleToken)
   552  
   553  	if err != nil {
   554  		return *new([]common.Address), err
   555  	}
   556  
   557  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
   558  
   559  	return out0, err
   560  
   561  }
   562  
   563  // GetConvertibleTokenSmartTokens is a free data retrieval call binding the contract method 0xf4fb86c0.
   564  //
   565  // Solidity: function getConvertibleTokenSmartTokens(address _convertibleToken) view returns(address[])
   566  func (_ConverterRegistry *ConverterRegistrySession) GetConvertibleTokenSmartTokens(_convertibleToken common.Address) ([]common.Address, error) {
   567  	return _ConverterRegistry.Contract.GetConvertibleTokenSmartTokens(&_ConverterRegistry.CallOpts, _convertibleToken)
   568  }
   569  
   570  // GetConvertibleTokenSmartTokens is a free data retrieval call binding the contract method 0xf4fb86c0.
   571  //
   572  // Solidity: function getConvertibleTokenSmartTokens(address _convertibleToken) view returns(address[])
   573  func (_ConverterRegistry *ConverterRegistryCallerSession) GetConvertibleTokenSmartTokens(_convertibleToken common.Address) ([]common.Address, error) {
   574  	return _ConverterRegistry.Contract.GetConvertibleTokenSmartTokens(&_ConverterRegistry.CallOpts, _convertibleToken)
   575  }
   576  
   577  // GetConvertibleTokens is a free data retrieval call binding the contract method 0x5f1b50fe.
   578  //
   579  // Solidity: function getConvertibleTokens() view returns(address[])
   580  func (_ConverterRegistry *ConverterRegistryCaller) GetConvertibleTokens(opts *bind.CallOpts) ([]common.Address, error) {
   581  	var out []interface{}
   582  	err := _ConverterRegistry.contract.Call(opts, &out, "getConvertibleTokens")
   583  
   584  	if err != nil {
   585  		return *new([]common.Address), err
   586  	}
   587  
   588  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
   589  
   590  	return out0, err
   591  
   592  }
   593  
   594  // GetConvertibleTokens is a free data retrieval call binding the contract method 0x5f1b50fe.
   595  //
   596  // Solidity: function getConvertibleTokens() view returns(address[])
   597  func (_ConverterRegistry *ConverterRegistrySession) GetConvertibleTokens() ([]common.Address, error) {
   598  	return _ConverterRegistry.Contract.GetConvertibleTokens(&_ConverterRegistry.CallOpts)
   599  }
   600  
   601  // GetConvertibleTokens is a free data retrieval call binding the contract method 0x5f1b50fe.
   602  //
   603  // Solidity: function getConvertibleTokens() view returns(address[])
   604  func (_ConverterRegistry *ConverterRegistryCallerSession) GetConvertibleTokens() ([]common.Address, error) {
   605  	return _ConverterRegistry.Contract.GetConvertibleTokens(&_ConverterRegistry.CallOpts)
   606  }
   607  
   608  // GetLiquidityPool is a free data retrieval call binding the contract method 0xa74498aa.
   609  //
   610  // Solidity: function getLiquidityPool(uint256 _index) view returns(address)
   611  func (_ConverterRegistry *ConverterRegistryCaller) GetLiquidityPool(opts *bind.CallOpts, _index *big.Int) (common.Address, error) {
   612  	var out []interface{}
   613  	err := _ConverterRegistry.contract.Call(opts, &out, "getLiquidityPool", _index)
   614  
   615  	if err != nil {
   616  		return *new(common.Address), err
   617  	}
   618  
   619  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   620  
   621  	return out0, err
   622  
   623  }
   624  
   625  // GetLiquidityPool is a free data retrieval call binding the contract method 0xa74498aa.
   626  //
   627  // Solidity: function getLiquidityPool(uint256 _index) view returns(address)
   628  func (_ConverterRegistry *ConverterRegistrySession) GetLiquidityPool(_index *big.Int) (common.Address, error) {
   629  	return _ConverterRegistry.Contract.GetLiquidityPool(&_ConverterRegistry.CallOpts, _index)
   630  }
   631  
   632  // GetLiquidityPool is a free data retrieval call binding the contract method 0xa74498aa.
   633  //
   634  // Solidity: function getLiquidityPool(uint256 _index) view returns(address)
   635  func (_ConverterRegistry *ConverterRegistryCallerSession) GetLiquidityPool(_index *big.Int) (common.Address, error) {
   636  	return _ConverterRegistry.Contract.GetLiquidityPool(&_ConverterRegistry.CallOpts, _index)
   637  }
   638  
   639  // GetLiquidityPoolByConfig is a free data retrieval call binding the contract method 0x1d3fccd5.
   640  //
   641  // Solidity: function getLiquidityPoolByConfig(uint16 _type, address[] _reserveTokens, uint32[] _reserveWeights) view returns(address)
   642  func (_ConverterRegistry *ConverterRegistryCaller) GetLiquidityPoolByConfig(opts *bind.CallOpts, _type uint16, _reserveTokens []common.Address, _reserveWeights []uint32) (common.Address, error) {
   643  	var out []interface{}
   644  	err := _ConverterRegistry.contract.Call(opts, &out, "getLiquidityPoolByConfig", _type, _reserveTokens, _reserveWeights)
   645  
   646  	if err != nil {
   647  		return *new(common.Address), err
   648  	}
   649  
   650  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   651  
   652  	return out0, err
   653  
   654  }
   655  
   656  // GetLiquidityPoolByConfig is a free data retrieval call binding the contract method 0x1d3fccd5.
   657  //
   658  // Solidity: function getLiquidityPoolByConfig(uint16 _type, address[] _reserveTokens, uint32[] _reserveWeights) view returns(address)
   659  func (_ConverterRegistry *ConverterRegistrySession) GetLiquidityPoolByConfig(_type uint16, _reserveTokens []common.Address, _reserveWeights []uint32) (common.Address, error) {
   660  	return _ConverterRegistry.Contract.GetLiquidityPoolByConfig(&_ConverterRegistry.CallOpts, _type, _reserveTokens, _reserveWeights)
   661  }
   662  
   663  // GetLiquidityPoolByConfig is a free data retrieval call binding the contract method 0x1d3fccd5.
   664  //
   665  // Solidity: function getLiquidityPoolByConfig(uint16 _type, address[] _reserveTokens, uint32[] _reserveWeights) view returns(address)
   666  func (_ConverterRegistry *ConverterRegistryCallerSession) GetLiquidityPoolByConfig(_type uint16, _reserveTokens []common.Address, _reserveWeights []uint32) (common.Address, error) {
   667  	return _ConverterRegistry.Contract.GetLiquidityPoolByConfig(&_ConverterRegistry.CallOpts, _type, _reserveTokens, _reserveWeights)
   668  }
   669  
   670  // GetLiquidityPoolByReserveConfig is a free data retrieval call binding the contract method 0xc22b82f0.
   671  //
   672  // Solidity: function getLiquidityPoolByReserveConfig(address[] _reserveTokens, uint32[] _reserveWeights) view returns(address)
   673  func (_ConverterRegistry *ConverterRegistryCaller) GetLiquidityPoolByReserveConfig(opts *bind.CallOpts, _reserveTokens []common.Address, _reserveWeights []uint32) (common.Address, error) {
   674  	var out []interface{}
   675  	err := _ConverterRegistry.contract.Call(opts, &out, "getLiquidityPoolByReserveConfig", _reserveTokens, _reserveWeights)
   676  
   677  	if err != nil {
   678  		return *new(common.Address), err
   679  	}
   680  
   681  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   682  
   683  	return out0, err
   684  
   685  }
   686  
   687  // GetLiquidityPoolByReserveConfig is a free data retrieval call binding the contract method 0xc22b82f0.
   688  //
   689  // Solidity: function getLiquidityPoolByReserveConfig(address[] _reserveTokens, uint32[] _reserveWeights) view returns(address)
   690  func (_ConverterRegistry *ConverterRegistrySession) GetLiquidityPoolByReserveConfig(_reserveTokens []common.Address, _reserveWeights []uint32) (common.Address, error) {
   691  	return _ConverterRegistry.Contract.GetLiquidityPoolByReserveConfig(&_ConverterRegistry.CallOpts, _reserveTokens, _reserveWeights)
   692  }
   693  
   694  // GetLiquidityPoolByReserveConfig is a free data retrieval call binding the contract method 0xc22b82f0.
   695  //
   696  // Solidity: function getLiquidityPoolByReserveConfig(address[] _reserveTokens, uint32[] _reserveWeights) view returns(address)
   697  func (_ConverterRegistry *ConverterRegistryCallerSession) GetLiquidityPoolByReserveConfig(_reserveTokens []common.Address, _reserveWeights []uint32) (common.Address, error) {
   698  	return _ConverterRegistry.Contract.GetLiquidityPoolByReserveConfig(&_ConverterRegistry.CallOpts, _reserveTokens, _reserveWeights)
   699  }
   700  
   701  // GetLiquidityPoolCount is a free data retrieval call binding the contract method 0x7a5f0ffd.
   702  //
   703  // Solidity: function getLiquidityPoolCount() view returns(uint256)
   704  func (_ConverterRegistry *ConverterRegistryCaller) GetLiquidityPoolCount(opts *bind.CallOpts) (*big.Int, error) {
   705  	var out []interface{}
   706  	err := _ConverterRegistry.contract.Call(opts, &out, "getLiquidityPoolCount")
   707  
   708  	if err != nil {
   709  		return *new(*big.Int), err
   710  	}
   711  
   712  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   713  
   714  	return out0, err
   715  
   716  }
   717  
   718  // GetLiquidityPoolCount is a free data retrieval call binding the contract method 0x7a5f0ffd.
   719  //
   720  // Solidity: function getLiquidityPoolCount() view returns(uint256)
   721  func (_ConverterRegistry *ConverterRegistrySession) GetLiquidityPoolCount() (*big.Int, error) {
   722  	return _ConverterRegistry.Contract.GetLiquidityPoolCount(&_ConverterRegistry.CallOpts)
   723  }
   724  
   725  // GetLiquidityPoolCount is a free data retrieval call binding the contract method 0x7a5f0ffd.
   726  //
   727  // Solidity: function getLiquidityPoolCount() view returns(uint256)
   728  func (_ConverterRegistry *ConverterRegistryCallerSession) GetLiquidityPoolCount() (*big.Int, error) {
   729  	return _ConverterRegistry.Contract.GetLiquidityPoolCount(&_ConverterRegistry.CallOpts)
   730  }
   731  
   732  // GetLiquidityPools is a free data retrieval call binding the contract method 0x7f45c4c3.
   733  //
   734  // Solidity: function getLiquidityPools() view returns(address[])
   735  func (_ConverterRegistry *ConverterRegistryCaller) GetLiquidityPools(opts *bind.CallOpts) ([]common.Address, error) {
   736  	var out []interface{}
   737  	err := _ConverterRegistry.contract.Call(opts, &out, "getLiquidityPools")
   738  
   739  	if err != nil {
   740  		return *new([]common.Address), err
   741  	}
   742  
   743  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
   744  
   745  	return out0, err
   746  
   747  }
   748  
   749  // GetLiquidityPools is a free data retrieval call binding the contract method 0x7f45c4c3.
   750  //
   751  // Solidity: function getLiquidityPools() view returns(address[])
   752  func (_ConverterRegistry *ConverterRegistrySession) GetLiquidityPools() ([]common.Address, error) {
   753  	return _ConverterRegistry.Contract.GetLiquidityPools(&_ConverterRegistry.CallOpts)
   754  }
   755  
   756  // GetLiquidityPools is a free data retrieval call binding the contract method 0x7f45c4c3.
   757  //
   758  // Solidity: function getLiquidityPools() view returns(address[])
   759  func (_ConverterRegistry *ConverterRegistryCallerSession) GetLiquidityPools() ([]common.Address, error) {
   760  	return _ConverterRegistry.Contract.GetLiquidityPools(&_ConverterRegistry.CallOpts)
   761  }
   762  
   763  // GetSmartToken is a free data retrieval call binding the contract method 0xa109d214.
   764  //
   765  // Solidity: function getSmartToken(uint256 _index) view returns(address)
   766  func (_ConverterRegistry *ConverterRegistryCaller) GetSmartToken(opts *bind.CallOpts, _index *big.Int) (common.Address, error) {
   767  	var out []interface{}
   768  	err := _ConverterRegistry.contract.Call(opts, &out, "getSmartToken", _index)
   769  
   770  	if err != nil {
   771  		return *new(common.Address), err
   772  	}
   773  
   774  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   775  
   776  	return out0, err
   777  
   778  }
   779  
   780  // GetSmartToken is a free data retrieval call binding the contract method 0xa109d214.
   781  //
   782  // Solidity: function getSmartToken(uint256 _index) view returns(address)
   783  func (_ConverterRegistry *ConverterRegistrySession) GetSmartToken(_index *big.Int) (common.Address, error) {
   784  	return _ConverterRegistry.Contract.GetSmartToken(&_ConverterRegistry.CallOpts, _index)
   785  }
   786  
   787  // GetSmartToken is a free data retrieval call binding the contract method 0xa109d214.
   788  //
   789  // Solidity: function getSmartToken(uint256 _index) view returns(address)
   790  func (_ConverterRegistry *ConverterRegistryCallerSession) GetSmartToken(_index *big.Int) (common.Address, error) {
   791  	return _ConverterRegistry.Contract.GetSmartToken(&_ConverterRegistry.CallOpts, _index)
   792  }
   793  
   794  // GetSmartTokenCount is a free data retrieval call binding the contract method 0xe571049b.
   795  //
   796  // Solidity: function getSmartTokenCount() view returns(uint256)
   797  func (_ConverterRegistry *ConverterRegistryCaller) GetSmartTokenCount(opts *bind.CallOpts) (*big.Int, error) {
   798  	var out []interface{}
   799  	err := _ConverterRegistry.contract.Call(opts, &out, "getSmartTokenCount")
   800  
   801  	if err != nil {
   802  		return *new(*big.Int), err
   803  	}
   804  
   805  	out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int)
   806  
   807  	return out0, err
   808  
   809  }
   810  
   811  // GetSmartTokenCount is a free data retrieval call binding the contract method 0xe571049b.
   812  //
   813  // Solidity: function getSmartTokenCount() view returns(uint256)
   814  func (_ConverterRegistry *ConverterRegistrySession) GetSmartTokenCount() (*big.Int, error) {
   815  	return _ConverterRegistry.Contract.GetSmartTokenCount(&_ConverterRegistry.CallOpts)
   816  }
   817  
   818  // GetSmartTokenCount is a free data retrieval call binding the contract method 0xe571049b.
   819  //
   820  // Solidity: function getSmartTokenCount() view returns(uint256)
   821  func (_ConverterRegistry *ConverterRegistryCallerSession) GetSmartTokenCount() (*big.Int, error) {
   822  	return _ConverterRegistry.Contract.GetSmartTokenCount(&_ConverterRegistry.CallOpts)
   823  }
   824  
   825  // GetSmartTokens is a free data retrieval call binding the contract method 0x04ceaf41.
   826  //
   827  // Solidity: function getSmartTokens() view returns(address[])
   828  func (_ConverterRegistry *ConverterRegistryCaller) GetSmartTokens(opts *bind.CallOpts) ([]common.Address, error) {
   829  	var out []interface{}
   830  	err := _ConverterRegistry.contract.Call(opts, &out, "getSmartTokens")
   831  
   832  	if err != nil {
   833  		return *new([]common.Address), err
   834  	}
   835  
   836  	out0 := *abi.ConvertType(out[0], new([]common.Address)).(*[]common.Address)
   837  
   838  	return out0, err
   839  
   840  }
   841  
   842  // GetSmartTokens is a free data retrieval call binding the contract method 0x04ceaf41.
   843  //
   844  // Solidity: function getSmartTokens() view returns(address[])
   845  func (_ConverterRegistry *ConverterRegistrySession) GetSmartTokens() ([]common.Address, error) {
   846  	return _ConverterRegistry.Contract.GetSmartTokens(&_ConverterRegistry.CallOpts)
   847  }
   848  
   849  // GetSmartTokens is a free data retrieval call binding the contract method 0x04ceaf41.
   850  //
   851  // Solidity: function getSmartTokens() view returns(address[])
   852  func (_ConverterRegistry *ConverterRegistryCallerSession) GetSmartTokens() ([]common.Address, error) {
   853  	return _ConverterRegistry.Contract.GetSmartTokens(&_ConverterRegistry.CallOpts)
   854  }
   855  
   856  // IsAnchor is a free data retrieval call binding the contract method 0xd8cced2a.
   857  //
   858  // Solidity: function isAnchor(address _value) view returns(bool)
   859  func (_ConverterRegistry *ConverterRegistryCaller) IsAnchor(opts *bind.CallOpts, _value common.Address) (bool, error) {
   860  	var out []interface{}
   861  	err := _ConverterRegistry.contract.Call(opts, &out, "isAnchor", _value)
   862  
   863  	if err != nil {
   864  		return *new(bool), err
   865  	}
   866  
   867  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   868  
   869  	return out0, err
   870  
   871  }
   872  
   873  // IsAnchor is a free data retrieval call binding the contract method 0xd8cced2a.
   874  //
   875  // Solidity: function isAnchor(address _value) view returns(bool)
   876  func (_ConverterRegistry *ConverterRegistrySession) IsAnchor(_value common.Address) (bool, error) {
   877  	return _ConverterRegistry.Contract.IsAnchor(&_ConverterRegistry.CallOpts, _value)
   878  }
   879  
   880  // IsAnchor is a free data retrieval call binding the contract method 0xd8cced2a.
   881  //
   882  // Solidity: function isAnchor(address _value) view returns(bool)
   883  func (_ConverterRegistry *ConverterRegistryCallerSession) IsAnchor(_value common.Address) (bool, error) {
   884  	return _ConverterRegistry.Contract.IsAnchor(&_ConverterRegistry.CallOpts, _value)
   885  }
   886  
   887  // IsConverterValid is a free data retrieval call binding the contract method 0x954254f5.
   888  //
   889  // Solidity: function isConverterValid(address _converter) view returns(bool)
   890  func (_ConverterRegistry *ConverterRegistryCaller) IsConverterValid(opts *bind.CallOpts, _converter common.Address) (bool, error) {
   891  	var out []interface{}
   892  	err := _ConverterRegistry.contract.Call(opts, &out, "isConverterValid", _converter)
   893  
   894  	if err != nil {
   895  		return *new(bool), err
   896  	}
   897  
   898  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   899  
   900  	return out0, err
   901  
   902  }
   903  
   904  // IsConverterValid is a free data retrieval call binding the contract method 0x954254f5.
   905  //
   906  // Solidity: function isConverterValid(address _converter) view returns(bool)
   907  func (_ConverterRegistry *ConverterRegistrySession) IsConverterValid(_converter common.Address) (bool, error) {
   908  	return _ConverterRegistry.Contract.IsConverterValid(&_ConverterRegistry.CallOpts, _converter)
   909  }
   910  
   911  // IsConverterValid is a free data retrieval call binding the contract method 0x954254f5.
   912  //
   913  // Solidity: function isConverterValid(address _converter) view returns(bool)
   914  func (_ConverterRegistry *ConverterRegistryCallerSession) IsConverterValid(_converter common.Address) (bool, error) {
   915  	return _ConverterRegistry.Contract.IsConverterValid(&_ConverterRegistry.CallOpts, _converter)
   916  }
   917  
   918  // IsConvertibleToken is a free data retrieval call binding the contract method 0x3ab8857c.
   919  //
   920  // Solidity: function isConvertibleToken(address _value) view returns(bool)
   921  func (_ConverterRegistry *ConverterRegistryCaller) IsConvertibleToken(opts *bind.CallOpts, _value common.Address) (bool, error) {
   922  	var out []interface{}
   923  	err := _ConverterRegistry.contract.Call(opts, &out, "isConvertibleToken", _value)
   924  
   925  	if err != nil {
   926  		return *new(bool), err
   927  	}
   928  
   929  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   930  
   931  	return out0, err
   932  
   933  }
   934  
   935  // IsConvertibleToken is a free data retrieval call binding the contract method 0x3ab8857c.
   936  //
   937  // Solidity: function isConvertibleToken(address _value) view returns(bool)
   938  func (_ConverterRegistry *ConverterRegistrySession) IsConvertibleToken(_value common.Address) (bool, error) {
   939  	return _ConverterRegistry.Contract.IsConvertibleToken(&_ConverterRegistry.CallOpts, _value)
   940  }
   941  
   942  // IsConvertibleToken is a free data retrieval call binding the contract method 0x3ab8857c.
   943  //
   944  // Solidity: function isConvertibleToken(address _value) view returns(bool)
   945  func (_ConverterRegistry *ConverterRegistryCallerSession) IsConvertibleToken(_value common.Address) (bool, error) {
   946  	return _ConverterRegistry.Contract.IsConvertibleToken(&_ConverterRegistry.CallOpts, _value)
   947  }
   948  
   949  // IsConvertibleTokenAnchor is a free data retrieval call binding the contract method 0xb4c4197a.
   950  //
   951  // Solidity: function isConvertibleTokenAnchor(address _convertibleToken, address _value) view returns(bool)
   952  func (_ConverterRegistry *ConverterRegistryCaller) IsConvertibleTokenAnchor(opts *bind.CallOpts, _convertibleToken common.Address, _value common.Address) (bool, error) {
   953  	var out []interface{}
   954  	err := _ConverterRegistry.contract.Call(opts, &out, "isConvertibleTokenAnchor", _convertibleToken, _value)
   955  
   956  	if err != nil {
   957  		return *new(bool), err
   958  	}
   959  
   960  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   961  
   962  	return out0, err
   963  
   964  }
   965  
   966  // IsConvertibleTokenAnchor is a free data retrieval call binding the contract method 0xb4c4197a.
   967  //
   968  // Solidity: function isConvertibleTokenAnchor(address _convertibleToken, address _value) view returns(bool)
   969  func (_ConverterRegistry *ConverterRegistrySession) IsConvertibleTokenAnchor(_convertibleToken common.Address, _value common.Address) (bool, error) {
   970  	return _ConverterRegistry.Contract.IsConvertibleTokenAnchor(&_ConverterRegistry.CallOpts, _convertibleToken, _value)
   971  }
   972  
   973  // IsConvertibleTokenAnchor is a free data retrieval call binding the contract method 0xb4c4197a.
   974  //
   975  // Solidity: function isConvertibleTokenAnchor(address _convertibleToken, address _value) view returns(bool)
   976  func (_ConverterRegistry *ConverterRegistryCallerSession) IsConvertibleTokenAnchor(_convertibleToken common.Address, _value common.Address) (bool, error) {
   977  	return _ConverterRegistry.Contract.IsConvertibleTokenAnchor(&_ConverterRegistry.CallOpts, _convertibleToken, _value)
   978  }
   979  
   980  // IsConvertibleTokenSmartToken is a free data retrieval call binding the contract method 0x725b8786.
   981  //
   982  // Solidity: function isConvertibleTokenSmartToken(address _convertibleToken, address _value) view returns(bool)
   983  func (_ConverterRegistry *ConverterRegistryCaller) IsConvertibleTokenSmartToken(opts *bind.CallOpts, _convertibleToken common.Address, _value common.Address) (bool, error) {
   984  	var out []interface{}
   985  	err := _ConverterRegistry.contract.Call(opts, &out, "isConvertibleTokenSmartToken", _convertibleToken, _value)
   986  
   987  	if err != nil {
   988  		return *new(bool), err
   989  	}
   990  
   991  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   992  
   993  	return out0, err
   994  
   995  }
   996  
   997  // IsConvertibleTokenSmartToken is a free data retrieval call binding the contract method 0x725b8786.
   998  //
   999  // Solidity: function isConvertibleTokenSmartToken(address _convertibleToken, address _value) view returns(bool)
  1000  func (_ConverterRegistry *ConverterRegistrySession) IsConvertibleTokenSmartToken(_convertibleToken common.Address, _value common.Address) (bool, error) {
  1001  	return _ConverterRegistry.Contract.IsConvertibleTokenSmartToken(&_ConverterRegistry.CallOpts, _convertibleToken, _value)
  1002  }
  1003  
  1004  // IsConvertibleTokenSmartToken is a free data retrieval call binding the contract method 0x725b8786.
  1005  //
  1006  // Solidity: function isConvertibleTokenSmartToken(address _convertibleToken, address _value) view returns(bool)
  1007  func (_ConverterRegistry *ConverterRegistryCallerSession) IsConvertibleTokenSmartToken(_convertibleToken common.Address, _value common.Address) (bool, error) {
  1008  	return _ConverterRegistry.Contract.IsConvertibleTokenSmartToken(&_ConverterRegistry.CallOpts, _convertibleToken, _value)
  1009  }
  1010  
  1011  // IsLiquidityPool is a free data retrieval call binding the contract method 0xe85455d7.
  1012  //
  1013  // Solidity: function isLiquidityPool(address _value) view returns(bool)
  1014  func (_ConverterRegistry *ConverterRegistryCaller) IsLiquidityPool(opts *bind.CallOpts, _value common.Address) (bool, error) {
  1015  	var out []interface{}
  1016  	err := _ConverterRegistry.contract.Call(opts, &out, "isLiquidityPool", _value)
  1017  
  1018  	if err != nil {
  1019  		return *new(bool), err
  1020  	}
  1021  
  1022  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  1023  
  1024  	return out0, err
  1025  
  1026  }
  1027  
  1028  // IsLiquidityPool is a free data retrieval call binding the contract method 0xe85455d7.
  1029  //
  1030  // Solidity: function isLiquidityPool(address _value) view returns(bool)
  1031  func (_ConverterRegistry *ConverterRegistrySession) IsLiquidityPool(_value common.Address) (bool, error) {
  1032  	return _ConverterRegistry.Contract.IsLiquidityPool(&_ConverterRegistry.CallOpts, _value)
  1033  }
  1034  
  1035  // IsLiquidityPool is a free data retrieval call binding the contract method 0xe85455d7.
  1036  //
  1037  // Solidity: function isLiquidityPool(address _value) view returns(bool)
  1038  func (_ConverterRegistry *ConverterRegistryCallerSession) IsLiquidityPool(_value common.Address) (bool, error) {
  1039  	return _ConverterRegistry.Contract.IsLiquidityPool(&_ConverterRegistry.CallOpts, _value)
  1040  }
  1041  
  1042  // IsSimilarLiquidityPoolRegistered is a free data retrieval call binding the contract method 0x8f1d0e1a.
  1043  //
  1044  // Solidity: function isSimilarLiquidityPoolRegistered(address _converter) view returns(bool)
  1045  func (_ConverterRegistry *ConverterRegistryCaller) IsSimilarLiquidityPoolRegistered(opts *bind.CallOpts, _converter common.Address) (bool, error) {
  1046  	var out []interface{}
  1047  	err := _ConverterRegistry.contract.Call(opts, &out, "isSimilarLiquidityPoolRegistered", _converter)
  1048  
  1049  	if err != nil {
  1050  		return *new(bool), err
  1051  	}
  1052  
  1053  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  1054  
  1055  	return out0, err
  1056  
  1057  }
  1058  
  1059  // IsSimilarLiquidityPoolRegistered is a free data retrieval call binding the contract method 0x8f1d0e1a.
  1060  //
  1061  // Solidity: function isSimilarLiquidityPoolRegistered(address _converter) view returns(bool)
  1062  func (_ConverterRegistry *ConverterRegistrySession) IsSimilarLiquidityPoolRegistered(_converter common.Address) (bool, error) {
  1063  	return _ConverterRegistry.Contract.IsSimilarLiquidityPoolRegistered(&_ConverterRegistry.CallOpts, _converter)
  1064  }
  1065  
  1066  // IsSimilarLiquidityPoolRegistered is a free data retrieval call binding the contract method 0x8f1d0e1a.
  1067  //
  1068  // Solidity: function isSimilarLiquidityPoolRegistered(address _converter) view returns(bool)
  1069  func (_ConverterRegistry *ConverterRegistryCallerSession) IsSimilarLiquidityPoolRegistered(_converter common.Address) (bool, error) {
  1070  	return _ConverterRegistry.Contract.IsSimilarLiquidityPoolRegistered(&_ConverterRegistry.CallOpts, _converter)
  1071  }
  1072  
  1073  // IsSmartToken is a free data retrieval call binding the contract method 0x4123ef60.
  1074  //
  1075  // Solidity: function isSmartToken(address _value) view returns(bool)
  1076  func (_ConverterRegistry *ConverterRegistryCaller) IsSmartToken(opts *bind.CallOpts, _value common.Address) (bool, error) {
  1077  	var out []interface{}
  1078  	err := _ConverterRegistry.contract.Call(opts, &out, "isSmartToken", _value)
  1079  
  1080  	if err != nil {
  1081  		return *new(bool), err
  1082  	}
  1083  
  1084  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  1085  
  1086  	return out0, err
  1087  
  1088  }
  1089  
  1090  // IsSmartToken is a free data retrieval call binding the contract method 0x4123ef60.
  1091  //
  1092  // Solidity: function isSmartToken(address _value) view returns(bool)
  1093  func (_ConverterRegistry *ConverterRegistrySession) IsSmartToken(_value common.Address) (bool, error) {
  1094  	return _ConverterRegistry.Contract.IsSmartToken(&_ConverterRegistry.CallOpts, _value)
  1095  }
  1096  
  1097  // IsSmartToken is a free data retrieval call binding the contract method 0x4123ef60.
  1098  //
  1099  // Solidity: function isSmartToken(address _value) view returns(bool)
  1100  func (_ConverterRegistry *ConverterRegistryCallerSession) IsSmartToken(_value common.Address) (bool, error) {
  1101  	return _ConverterRegistry.Contract.IsSmartToken(&_ConverterRegistry.CallOpts, _value)
  1102  }
  1103  
  1104  // NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90.
  1105  //
  1106  // Solidity: function newOwner() view returns(address)
  1107  func (_ConverterRegistry *ConverterRegistryCaller) NewOwner(opts *bind.CallOpts) (common.Address, error) {
  1108  	var out []interface{}
  1109  	err := _ConverterRegistry.contract.Call(opts, &out, "newOwner")
  1110  
  1111  	if err != nil {
  1112  		return *new(common.Address), err
  1113  	}
  1114  
  1115  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1116  
  1117  	return out0, err
  1118  
  1119  }
  1120  
  1121  // NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90.
  1122  //
  1123  // Solidity: function newOwner() view returns(address)
  1124  func (_ConverterRegistry *ConverterRegistrySession) NewOwner() (common.Address, error) {
  1125  	return _ConverterRegistry.Contract.NewOwner(&_ConverterRegistry.CallOpts)
  1126  }
  1127  
  1128  // NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90.
  1129  //
  1130  // Solidity: function newOwner() view returns(address)
  1131  func (_ConverterRegistry *ConverterRegistryCallerSession) NewOwner() (common.Address, error) {
  1132  	return _ConverterRegistry.Contract.NewOwner(&_ConverterRegistry.CallOpts)
  1133  }
  1134  
  1135  // OnlyOwnerCanUpdateRegistry is a free data retrieval call binding the contract method 0x2fe8a6ad.
  1136  //
  1137  // Solidity: function onlyOwnerCanUpdateRegistry() view returns(bool)
  1138  func (_ConverterRegistry *ConverterRegistryCaller) OnlyOwnerCanUpdateRegistry(opts *bind.CallOpts) (bool, error) {
  1139  	var out []interface{}
  1140  	err := _ConverterRegistry.contract.Call(opts, &out, "onlyOwnerCanUpdateRegistry")
  1141  
  1142  	if err != nil {
  1143  		return *new(bool), err
  1144  	}
  1145  
  1146  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
  1147  
  1148  	return out0, err
  1149  
  1150  }
  1151  
  1152  // OnlyOwnerCanUpdateRegistry is a free data retrieval call binding the contract method 0x2fe8a6ad.
  1153  //
  1154  // Solidity: function onlyOwnerCanUpdateRegistry() view returns(bool)
  1155  func (_ConverterRegistry *ConverterRegistrySession) OnlyOwnerCanUpdateRegistry() (bool, error) {
  1156  	return _ConverterRegistry.Contract.OnlyOwnerCanUpdateRegistry(&_ConverterRegistry.CallOpts)
  1157  }
  1158  
  1159  // OnlyOwnerCanUpdateRegistry is a free data retrieval call binding the contract method 0x2fe8a6ad.
  1160  //
  1161  // Solidity: function onlyOwnerCanUpdateRegistry() view returns(bool)
  1162  func (_ConverterRegistry *ConverterRegistryCallerSession) OnlyOwnerCanUpdateRegistry() (bool, error) {
  1163  	return _ConverterRegistry.Contract.OnlyOwnerCanUpdateRegistry(&_ConverterRegistry.CallOpts)
  1164  }
  1165  
  1166  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1167  //
  1168  // Solidity: function owner() view returns(address)
  1169  func (_ConverterRegistry *ConverterRegistryCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
  1170  	var out []interface{}
  1171  	err := _ConverterRegistry.contract.Call(opts, &out, "owner")
  1172  
  1173  	if err != nil {
  1174  		return *new(common.Address), err
  1175  	}
  1176  
  1177  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1178  
  1179  	return out0, err
  1180  
  1181  }
  1182  
  1183  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1184  //
  1185  // Solidity: function owner() view returns(address)
  1186  func (_ConverterRegistry *ConverterRegistrySession) Owner() (common.Address, error) {
  1187  	return _ConverterRegistry.Contract.Owner(&_ConverterRegistry.CallOpts)
  1188  }
  1189  
  1190  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
  1191  //
  1192  // Solidity: function owner() view returns(address)
  1193  func (_ConverterRegistry *ConverterRegistryCallerSession) Owner() (common.Address, error) {
  1194  	return _ConverterRegistry.Contract.Owner(&_ConverterRegistry.CallOpts)
  1195  }
  1196  
  1197  // PrevRegistry is a free data retrieval call binding the contract method 0x61cd756e.
  1198  //
  1199  // Solidity: function prevRegistry() view returns(address)
  1200  func (_ConverterRegistry *ConverterRegistryCaller) PrevRegistry(opts *bind.CallOpts) (common.Address, error) {
  1201  	var out []interface{}
  1202  	err := _ConverterRegistry.contract.Call(opts, &out, "prevRegistry")
  1203  
  1204  	if err != nil {
  1205  		return *new(common.Address), err
  1206  	}
  1207  
  1208  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1209  
  1210  	return out0, err
  1211  
  1212  }
  1213  
  1214  // PrevRegistry is a free data retrieval call binding the contract method 0x61cd756e.
  1215  //
  1216  // Solidity: function prevRegistry() view returns(address)
  1217  func (_ConverterRegistry *ConverterRegistrySession) PrevRegistry() (common.Address, error) {
  1218  	return _ConverterRegistry.Contract.PrevRegistry(&_ConverterRegistry.CallOpts)
  1219  }
  1220  
  1221  // PrevRegistry is a free data retrieval call binding the contract method 0x61cd756e.
  1222  //
  1223  // Solidity: function prevRegistry() view returns(address)
  1224  func (_ConverterRegistry *ConverterRegistryCallerSession) PrevRegistry() (common.Address, error) {
  1225  	return _ConverterRegistry.Contract.PrevRegistry(&_ConverterRegistry.CallOpts)
  1226  }
  1227  
  1228  // Registry is a free data retrieval call binding the contract method 0x7b103999.
  1229  //
  1230  // Solidity: function registry() view returns(address)
  1231  func (_ConverterRegistry *ConverterRegistryCaller) Registry(opts *bind.CallOpts) (common.Address, error) {
  1232  	var out []interface{}
  1233  	err := _ConverterRegistry.contract.Call(opts, &out, "registry")
  1234  
  1235  	if err != nil {
  1236  		return *new(common.Address), err
  1237  	}
  1238  
  1239  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
  1240  
  1241  	return out0, err
  1242  
  1243  }
  1244  
  1245  // Registry is a free data retrieval call binding the contract method 0x7b103999.
  1246  //
  1247  // Solidity: function registry() view returns(address)
  1248  func (_ConverterRegistry *ConverterRegistrySession) Registry() (common.Address, error) {
  1249  	return _ConverterRegistry.Contract.Registry(&_ConverterRegistry.CallOpts)
  1250  }
  1251  
  1252  // Registry is a free data retrieval call binding the contract method 0x7b103999.
  1253  //
  1254  // Solidity: function registry() view returns(address)
  1255  func (_ConverterRegistry *ConverterRegistryCallerSession) Registry() (common.Address, error) {
  1256  	return _ConverterRegistry.Contract.Registry(&_ConverterRegistry.CallOpts)
  1257  }
  1258  
  1259  // AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097.
  1260  //
  1261  // Solidity: function acceptOwnership() returns()
  1262  func (_ConverterRegistry *ConverterRegistryTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
  1263  	return _ConverterRegistry.contract.Transact(opts, "acceptOwnership")
  1264  }
  1265  
  1266  // AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097.
  1267  //
  1268  // Solidity: function acceptOwnership() returns()
  1269  func (_ConverterRegistry *ConverterRegistrySession) AcceptOwnership() (*types.Transaction, error) {
  1270  	return _ConverterRegistry.Contract.AcceptOwnership(&_ConverterRegistry.TransactOpts)
  1271  }
  1272  
  1273  // AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097.
  1274  //
  1275  // Solidity: function acceptOwnership() returns()
  1276  func (_ConverterRegistry *ConverterRegistryTransactorSession) AcceptOwnership() (*types.Transaction, error) {
  1277  	return _ConverterRegistry.Contract.AcceptOwnership(&_ConverterRegistry.TransactOpts)
  1278  }
  1279  
  1280  // AddConverter is a paid mutator transaction binding the contract method 0x6ce1c4dc.
  1281  //
  1282  // Solidity: function addConverter(address _converter) returns()
  1283  func (_ConverterRegistry *ConverterRegistryTransactor) AddConverter(opts *bind.TransactOpts, _converter common.Address) (*types.Transaction, error) {
  1284  	return _ConverterRegistry.contract.Transact(opts, "addConverter", _converter)
  1285  }
  1286  
  1287  // AddConverter is a paid mutator transaction binding the contract method 0x6ce1c4dc.
  1288  //
  1289  // Solidity: function addConverter(address _converter) returns()
  1290  func (_ConverterRegistry *ConverterRegistrySession) AddConverter(_converter common.Address) (*types.Transaction, error) {
  1291  	return _ConverterRegistry.Contract.AddConverter(&_ConverterRegistry.TransactOpts, _converter)
  1292  }
  1293  
  1294  // AddConverter is a paid mutator transaction binding the contract method 0x6ce1c4dc.
  1295  //
  1296  // Solidity: function addConverter(address _converter) returns()
  1297  func (_ConverterRegistry *ConverterRegistryTransactorSession) AddConverter(_converter common.Address) (*types.Transaction, error) {
  1298  	return _ConverterRegistry.Contract.AddConverter(&_ConverterRegistry.TransactOpts, _converter)
  1299  }
  1300  
  1301  // NewConverter is a paid mutator transaction binding the contract method 0x5a0a6618.
  1302  //
  1303  // Solidity: function newConverter(uint16 _type, string _name, string _symbol, uint8 _decimals, uint32 _maxConversionFee, address[] _reserveTokens, uint32[] _reserveWeights) returns(address)
  1304  func (_ConverterRegistry *ConverterRegistryTransactor) NewConverter(opts *bind.TransactOpts, _type uint16, _name string, _symbol string, _decimals uint8, _maxConversionFee uint32, _reserveTokens []common.Address, _reserveWeights []uint32) (*types.Transaction, error) {
  1305  	return _ConverterRegistry.contract.Transact(opts, "newConverter", _type, _name, _symbol, _decimals, _maxConversionFee, _reserveTokens, _reserveWeights)
  1306  }
  1307  
  1308  // NewConverter is a paid mutator transaction binding the contract method 0x5a0a6618.
  1309  //
  1310  // Solidity: function newConverter(uint16 _type, string _name, string _symbol, uint8 _decimals, uint32 _maxConversionFee, address[] _reserveTokens, uint32[] _reserveWeights) returns(address)
  1311  func (_ConverterRegistry *ConverterRegistrySession) NewConverter(_type uint16, _name string, _symbol string, _decimals uint8, _maxConversionFee uint32, _reserveTokens []common.Address, _reserveWeights []uint32) (*types.Transaction, error) {
  1312  	return _ConverterRegistry.Contract.NewConverter(&_ConverterRegistry.TransactOpts, _type, _name, _symbol, _decimals, _maxConversionFee, _reserveTokens, _reserveWeights)
  1313  }
  1314  
  1315  // NewConverter is a paid mutator transaction binding the contract method 0x5a0a6618.
  1316  //
  1317  // Solidity: function newConverter(uint16 _type, string _name, string _symbol, uint8 _decimals, uint32 _maxConversionFee, address[] _reserveTokens, uint32[] _reserveWeights) returns(address)
  1318  func (_ConverterRegistry *ConverterRegistryTransactorSession) NewConverter(_type uint16, _name string, _symbol string, _decimals uint8, _maxConversionFee uint32, _reserveTokens []common.Address, _reserveWeights []uint32) (*types.Transaction, error) {
  1319  	return _ConverterRegistry.Contract.NewConverter(&_ConverterRegistry.TransactOpts, _type, _name, _symbol, _decimals, _maxConversionFee, _reserveTokens, _reserveWeights)
  1320  }
  1321  
  1322  // RemoveConverter is a paid mutator transaction binding the contract method 0x9e76a007.
  1323  //
  1324  // Solidity: function removeConverter(address _converter) returns()
  1325  func (_ConverterRegistry *ConverterRegistryTransactor) RemoveConverter(opts *bind.TransactOpts, _converter common.Address) (*types.Transaction, error) {
  1326  	return _ConverterRegistry.contract.Transact(opts, "removeConverter", _converter)
  1327  }
  1328  
  1329  // RemoveConverter is a paid mutator transaction binding the contract method 0x9e76a007.
  1330  //
  1331  // Solidity: function removeConverter(address _converter) returns()
  1332  func (_ConverterRegistry *ConverterRegistrySession) RemoveConverter(_converter common.Address) (*types.Transaction, error) {
  1333  	return _ConverterRegistry.Contract.RemoveConverter(&_ConverterRegistry.TransactOpts, _converter)
  1334  }
  1335  
  1336  // RemoveConverter is a paid mutator transaction binding the contract method 0x9e76a007.
  1337  //
  1338  // Solidity: function removeConverter(address _converter) returns()
  1339  func (_ConverterRegistry *ConverterRegistryTransactorSession) RemoveConverter(_converter common.Address) (*types.Transaction, error) {
  1340  	return _ConverterRegistry.Contract.RemoveConverter(&_ConverterRegistry.TransactOpts, _converter)
  1341  }
  1342  
  1343  // RestoreRegistry is a paid mutator transaction binding the contract method 0xb4a176d3.
  1344  //
  1345  // Solidity: function restoreRegistry() returns()
  1346  func (_ConverterRegistry *ConverterRegistryTransactor) RestoreRegistry(opts *bind.TransactOpts) (*types.Transaction, error) {
  1347  	return _ConverterRegistry.contract.Transact(opts, "restoreRegistry")
  1348  }
  1349  
  1350  // RestoreRegistry is a paid mutator transaction binding the contract method 0xb4a176d3.
  1351  //
  1352  // Solidity: function restoreRegistry() returns()
  1353  func (_ConverterRegistry *ConverterRegistrySession) RestoreRegistry() (*types.Transaction, error) {
  1354  	return _ConverterRegistry.Contract.RestoreRegistry(&_ConverterRegistry.TransactOpts)
  1355  }
  1356  
  1357  // RestoreRegistry is a paid mutator transaction binding the contract method 0xb4a176d3.
  1358  //
  1359  // Solidity: function restoreRegistry() returns()
  1360  func (_ConverterRegistry *ConverterRegistryTransactorSession) RestoreRegistry() (*types.Transaction, error) {
  1361  	return _ConverterRegistry.Contract.RestoreRegistry(&_ConverterRegistry.TransactOpts)
  1362  }
  1363  
  1364  // RestrictRegistryUpdate is a paid mutator transaction binding the contract method 0x024c7ec7.
  1365  //
  1366  // Solidity: function restrictRegistryUpdate(bool _onlyOwnerCanUpdateRegistry) returns()
  1367  func (_ConverterRegistry *ConverterRegistryTransactor) RestrictRegistryUpdate(opts *bind.TransactOpts, _onlyOwnerCanUpdateRegistry bool) (*types.Transaction, error) {
  1368  	return _ConverterRegistry.contract.Transact(opts, "restrictRegistryUpdate", _onlyOwnerCanUpdateRegistry)
  1369  }
  1370  
  1371  // RestrictRegistryUpdate is a paid mutator transaction binding the contract method 0x024c7ec7.
  1372  //
  1373  // Solidity: function restrictRegistryUpdate(bool _onlyOwnerCanUpdateRegistry) returns()
  1374  func (_ConverterRegistry *ConverterRegistrySession) RestrictRegistryUpdate(_onlyOwnerCanUpdateRegistry bool) (*types.Transaction, error) {
  1375  	return _ConverterRegistry.Contract.RestrictRegistryUpdate(&_ConverterRegistry.TransactOpts, _onlyOwnerCanUpdateRegistry)
  1376  }
  1377  
  1378  // RestrictRegistryUpdate is a paid mutator transaction binding the contract method 0x024c7ec7.
  1379  //
  1380  // Solidity: function restrictRegistryUpdate(bool _onlyOwnerCanUpdateRegistry) returns()
  1381  func (_ConverterRegistry *ConverterRegistryTransactorSession) RestrictRegistryUpdate(_onlyOwnerCanUpdateRegistry bool) (*types.Transaction, error) {
  1382  	return _ConverterRegistry.Contract.RestrictRegistryUpdate(&_ConverterRegistry.TransactOpts, _onlyOwnerCanUpdateRegistry)
  1383  }
  1384  
  1385  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1386  //
  1387  // Solidity: function transferOwnership(address _newOwner) returns()
  1388  func (_ConverterRegistry *ConverterRegistryTransactor) TransferOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) {
  1389  	return _ConverterRegistry.contract.Transact(opts, "transferOwnership", _newOwner)
  1390  }
  1391  
  1392  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1393  //
  1394  // Solidity: function transferOwnership(address _newOwner) returns()
  1395  func (_ConverterRegistry *ConverterRegistrySession) TransferOwnership(_newOwner common.Address) (*types.Transaction, error) {
  1396  	return _ConverterRegistry.Contract.TransferOwnership(&_ConverterRegistry.TransactOpts, _newOwner)
  1397  }
  1398  
  1399  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
  1400  //
  1401  // Solidity: function transferOwnership(address _newOwner) returns()
  1402  func (_ConverterRegistry *ConverterRegistryTransactorSession) TransferOwnership(_newOwner common.Address) (*types.Transaction, error) {
  1403  	return _ConverterRegistry.Contract.TransferOwnership(&_ConverterRegistry.TransactOpts, _newOwner)
  1404  }
  1405  
  1406  // UpdateRegistry is a paid mutator transaction binding the contract method 0x49d10b64.
  1407  //
  1408  // Solidity: function updateRegistry() returns()
  1409  func (_ConverterRegistry *ConverterRegistryTransactor) UpdateRegistry(opts *bind.TransactOpts) (*types.Transaction, error) {
  1410  	return _ConverterRegistry.contract.Transact(opts, "updateRegistry")
  1411  }
  1412  
  1413  // UpdateRegistry is a paid mutator transaction binding the contract method 0x49d10b64.
  1414  //
  1415  // Solidity: function updateRegistry() returns()
  1416  func (_ConverterRegistry *ConverterRegistrySession) UpdateRegistry() (*types.Transaction, error) {
  1417  	return _ConverterRegistry.Contract.UpdateRegistry(&_ConverterRegistry.TransactOpts)
  1418  }
  1419  
  1420  // UpdateRegistry is a paid mutator transaction binding the contract method 0x49d10b64.
  1421  //
  1422  // Solidity: function updateRegistry() returns()
  1423  func (_ConverterRegistry *ConverterRegistryTransactorSession) UpdateRegistry() (*types.Transaction, error) {
  1424  	return _ConverterRegistry.Contract.UpdateRegistry(&_ConverterRegistry.TransactOpts)
  1425  }
  1426  
  1427  // ConverterRegistryConverterAnchorAddedIterator is returned from FilterConverterAnchorAdded and is used to iterate over the raw logs and unpacked data for ConverterAnchorAdded events raised by the ConverterRegistry contract.
  1428  type ConverterRegistryConverterAnchorAddedIterator struct {
  1429  	Event *ConverterRegistryConverterAnchorAdded // Event containing the contract specifics and raw log
  1430  
  1431  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1432  	event    string              // Event name to use for unpacking event data
  1433  
  1434  	logs chan types.Log        // Log channel receiving the found contract events
  1435  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1436  	done bool                  // Whether the subscription completed delivering logs
  1437  	fail error                 // Occurred error to stop iteration
  1438  }
  1439  
  1440  // Next advances the iterator to the subsequent event, returning whether there
  1441  // are any more events found. In case of a retrieval or parsing error, false is
  1442  // returned and Error() can be queried for the exact failure.
  1443  func (it *ConverterRegistryConverterAnchorAddedIterator) Next() bool {
  1444  	// If the iterator failed, stop iterating
  1445  	if it.fail != nil {
  1446  		return false
  1447  	}
  1448  	// If the iterator completed, deliver directly whatever's available
  1449  	if it.done {
  1450  		select {
  1451  		case log := <-it.logs:
  1452  			it.Event = new(ConverterRegistryConverterAnchorAdded)
  1453  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1454  				it.fail = err
  1455  				return false
  1456  			}
  1457  			it.Event.Raw = log
  1458  			return true
  1459  
  1460  		default:
  1461  			return false
  1462  		}
  1463  	}
  1464  	// Iterator still in progress, wait for either a data or an error event
  1465  	select {
  1466  	case log := <-it.logs:
  1467  		it.Event = new(ConverterRegistryConverterAnchorAdded)
  1468  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1469  			it.fail = err
  1470  			return false
  1471  		}
  1472  		it.Event.Raw = log
  1473  		return true
  1474  
  1475  	case err := <-it.sub.Err():
  1476  		it.done = true
  1477  		it.fail = err
  1478  		return it.Next()
  1479  	}
  1480  }
  1481  
  1482  // Error returns any retrieval or parsing error occurred during filtering.
  1483  func (it *ConverterRegistryConverterAnchorAddedIterator) Error() error {
  1484  	return it.fail
  1485  }
  1486  
  1487  // Close terminates the iteration process, releasing any pending underlying
  1488  // resources.
  1489  func (it *ConverterRegistryConverterAnchorAddedIterator) Close() error {
  1490  	it.sub.Unsubscribe()
  1491  	return nil
  1492  }
  1493  
  1494  // ConverterRegistryConverterAnchorAdded represents a ConverterAnchorAdded event raised by the ConverterRegistry contract.
  1495  type ConverterRegistryConverterAnchorAdded struct {
  1496  	Anchor common.Address
  1497  	Raw    types.Log // Blockchain specific contextual infos
  1498  }
  1499  
  1500  // FilterConverterAnchorAdded is a free log retrieval operation binding the contract event 0xc0a6d303d67b7ed9fa0abae1c48878df32acc0e7ca4334c7dad2bceeee5956fd.
  1501  //
  1502  // Solidity: event ConverterAnchorAdded(address indexed _anchor)
  1503  func (_ConverterRegistry *ConverterRegistryFilterer) FilterConverterAnchorAdded(opts *bind.FilterOpts, _anchor []common.Address) (*ConverterRegistryConverterAnchorAddedIterator, error) {
  1504  
  1505  	var _anchorRule []interface{}
  1506  	for _, _anchorItem := range _anchor {
  1507  		_anchorRule = append(_anchorRule, _anchorItem)
  1508  	}
  1509  
  1510  	logs, sub, err := _ConverterRegistry.contract.FilterLogs(opts, "ConverterAnchorAdded", _anchorRule)
  1511  	if err != nil {
  1512  		return nil, err
  1513  	}
  1514  	return &ConverterRegistryConverterAnchorAddedIterator{contract: _ConverterRegistry.contract, event: "ConverterAnchorAdded", logs: logs, sub: sub}, nil
  1515  }
  1516  
  1517  // WatchConverterAnchorAdded is a free log subscription operation binding the contract event 0xc0a6d303d67b7ed9fa0abae1c48878df32acc0e7ca4334c7dad2bceeee5956fd.
  1518  //
  1519  // Solidity: event ConverterAnchorAdded(address indexed _anchor)
  1520  func (_ConverterRegistry *ConverterRegistryFilterer) WatchConverterAnchorAdded(opts *bind.WatchOpts, sink chan<- *ConverterRegistryConverterAnchorAdded, _anchor []common.Address) (event.Subscription, error) {
  1521  
  1522  	var _anchorRule []interface{}
  1523  	for _, _anchorItem := range _anchor {
  1524  		_anchorRule = append(_anchorRule, _anchorItem)
  1525  	}
  1526  
  1527  	logs, sub, err := _ConverterRegistry.contract.WatchLogs(opts, "ConverterAnchorAdded", _anchorRule)
  1528  	if err != nil {
  1529  		return nil, err
  1530  	}
  1531  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1532  		defer sub.Unsubscribe()
  1533  		for {
  1534  			select {
  1535  			case log := <-logs:
  1536  				// New log arrived, parse the event and forward to the user
  1537  				event := new(ConverterRegistryConverterAnchorAdded)
  1538  				if err := _ConverterRegistry.contract.UnpackLog(event, "ConverterAnchorAdded", log); err != nil {
  1539  					return err
  1540  				}
  1541  				event.Raw = log
  1542  
  1543  				select {
  1544  				case sink <- event:
  1545  				case err := <-sub.Err():
  1546  					return err
  1547  				case <-quit:
  1548  					return nil
  1549  				}
  1550  			case err := <-sub.Err():
  1551  				return err
  1552  			case <-quit:
  1553  				return nil
  1554  			}
  1555  		}
  1556  	}), nil
  1557  }
  1558  
  1559  // ParseConverterAnchorAdded is a log parse operation binding the contract event 0xc0a6d303d67b7ed9fa0abae1c48878df32acc0e7ca4334c7dad2bceeee5956fd.
  1560  //
  1561  // Solidity: event ConverterAnchorAdded(address indexed _anchor)
  1562  func (_ConverterRegistry *ConverterRegistryFilterer) ParseConverterAnchorAdded(log types.Log) (*ConverterRegistryConverterAnchorAdded, error) {
  1563  	event := new(ConverterRegistryConverterAnchorAdded)
  1564  	if err := _ConverterRegistry.contract.UnpackLog(event, "ConverterAnchorAdded", log); err != nil {
  1565  		return nil, err
  1566  	}
  1567  	event.Raw = log
  1568  	return event, nil
  1569  }
  1570  
  1571  // ConverterRegistryConverterAnchorRemovedIterator is returned from FilterConverterAnchorRemoved and is used to iterate over the raw logs and unpacked data for ConverterAnchorRemoved events raised by the ConverterRegistry contract.
  1572  type ConverterRegistryConverterAnchorRemovedIterator struct {
  1573  	Event *ConverterRegistryConverterAnchorRemoved // Event containing the contract specifics and raw log
  1574  
  1575  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1576  	event    string              // Event name to use for unpacking event data
  1577  
  1578  	logs chan types.Log        // Log channel receiving the found contract events
  1579  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1580  	done bool                  // Whether the subscription completed delivering logs
  1581  	fail error                 // Occurred error to stop iteration
  1582  }
  1583  
  1584  // Next advances the iterator to the subsequent event, returning whether there
  1585  // are any more events found. In case of a retrieval or parsing error, false is
  1586  // returned and Error() can be queried for the exact failure.
  1587  func (it *ConverterRegistryConverterAnchorRemovedIterator) Next() bool {
  1588  	// If the iterator failed, stop iterating
  1589  	if it.fail != nil {
  1590  		return false
  1591  	}
  1592  	// If the iterator completed, deliver directly whatever's available
  1593  	if it.done {
  1594  		select {
  1595  		case log := <-it.logs:
  1596  			it.Event = new(ConverterRegistryConverterAnchorRemoved)
  1597  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1598  				it.fail = err
  1599  				return false
  1600  			}
  1601  			it.Event.Raw = log
  1602  			return true
  1603  
  1604  		default:
  1605  			return false
  1606  		}
  1607  	}
  1608  	// Iterator still in progress, wait for either a data or an error event
  1609  	select {
  1610  	case log := <-it.logs:
  1611  		it.Event = new(ConverterRegistryConverterAnchorRemoved)
  1612  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1613  			it.fail = err
  1614  			return false
  1615  		}
  1616  		it.Event.Raw = log
  1617  		return true
  1618  
  1619  	case err := <-it.sub.Err():
  1620  		it.done = true
  1621  		it.fail = err
  1622  		return it.Next()
  1623  	}
  1624  }
  1625  
  1626  // Error returns any retrieval or parsing error occurred during filtering.
  1627  func (it *ConverterRegistryConverterAnchorRemovedIterator) Error() error {
  1628  	return it.fail
  1629  }
  1630  
  1631  // Close terminates the iteration process, releasing any pending underlying
  1632  // resources.
  1633  func (it *ConverterRegistryConverterAnchorRemovedIterator) Close() error {
  1634  	it.sub.Unsubscribe()
  1635  	return nil
  1636  }
  1637  
  1638  // ConverterRegistryConverterAnchorRemoved represents a ConverterAnchorRemoved event raised by the ConverterRegistry contract.
  1639  type ConverterRegistryConverterAnchorRemoved struct {
  1640  	Anchor common.Address
  1641  	Raw    types.Log // Blockchain specific contextual infos
  1642  }
  1643  
  1644  // FilterConverterAnchorRemoved is a free log retrieval operation binding the contract event 0xbfdf1baaa7e4871111360083540f067050014f651c9e4610a2a4a4bdf8bfab5d.
  1645  //
  1646  // Solidity: event ConverterAnchorRemoved(address indexed _anchor)
  1647  func (_ConverterRegistry *ConverterRegistryFilterer) FilterConverterAnchorRemoved(opts *bind.FilterOpts, _anchor []common.Address) (*ConverterRegistryConverterAnchorRemovedIterator, error) {
  1648  
  1649  	var _anchorRule []interface{}
  1650  	for _, _anchorItem := range _anchor {
  1651  		_anchorRule = append(_anchorRule, _anchorItem)
  1652  	}
  1653  
  1654  	logs, sub, err := _ConverterRegistry.contract.FilterLogs(opts, "ConverterAnchorRemoved", _anchorRule)
  1655  	if err != nil {
  1656  		return nil, err
  1657  	}
  1658  	return &ConverterRegistryConverterAnchorRemovedIterator{contract: _ConverterRegistry.contract, event: "ConverterAnchorRemoved", logs: logs, sub: sub}, nil
  1659  }
  1660  
  1661  // WatchConverterAnchorRemoved is a free log subscription operation binding the contract event 0xbfdf1baaa7e4871111360083540f067050014f651c9e4610a2a4a4bdf8bfab5d.
  1662  //
  1663  // Solidity: event ConverterAnchorRemoved(address indexed _anchor)
  1664  func (_ConverterRegistry *ConverterRegistryFilterer) WatchConverterAnchorRemoved(opts *bind.WatchOpts, sink chan<- *ConverterRegistryConverterAnchorRemoved, _anchor []common.Address) (event.Subscription, error) {
  1665  
  1666  	var _anchorRule []interface{}
  1667  	for _, _anchorItem := range _anchor {
  1668  		_anchorRule = append(_anchorRule, _anchorItem)
  1669  	}
  1670  
  1671  	logs, sub, err := _ConverterRegistry.contract.WatchLogs(opts, "ConverterAnchorRemoved", _anchorRule)
  1672  	if err != nil {
  1673  		return nil, err
  1674  	}
  1675  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1676  		defer sub.Unsubscribe()
  1677  		for {
  1678  			select {
  1679  			case log := <-logs:
  1680  				// New log arrived, parse the event and forward to the user
  1681  				event := new(ConverterRegistryConverterAnchorRemoved)
  1682  				if err := _ConverterRegistry.contract.UnpackLog(event, "ConverterAnchorRemoved", log); err != nil {
  1683  					return err
  1684  				}
  1685  				event.Raw = log
  1686  
  1687  				select {
  1688  				case sink <- event:
  1689  				case err := <-sub.Err():
  1690  					return err
  1691  				case <-quit:
  1692  					return nil
  1693  				}
  1694  			case err := <-sub.Err():
  1695  				return err
  1696  			case <-quit:
  1697  				return nil
  1698  			}
  1699  		}
  1700  	}), nil
  1701  }
  1702  
  1703  // ParseConverterAnchorRemoved is a log parse operation binding the contract event 0xbfdf1baaa7e4871111360083540f067050014f651c9e4610a2a4a4bdf8bfab5d.
  1704  //
  1705  // Solidity: event ConverterAnchorRemoved(address indexed _anchor)
  1706  func (_ConverterRegistry *ConverterRegistryFilterer) ParseConverterAnchorRemoved(log types.Log) (*ConverterRegistryConverterAnchorRemoved, error) {
  1707  	event := new(ConverterRegistryConverterAnchorRemoved)
  1708  	if err := _ConverterRegistry.contract.UnpackLog(event, "ConverterAnchorRemoved", log); err != nil {
  1709  		return nil, err
  1710  	}
  1711  	event.Raw = log
  1712  	return event, nil
  1713  }
  1714  
  1715  // ConverterRegistryConvertibleTokenAddedIterator is returned from FilterConvertibleTokenAdded and is used to iterate over the raw logs and unpacked data for ConvertibleTokenAdded events raised by the ConverterRegistry contract.
  1716  type ConverterRegistryConvertibleTokenAddedIterator struct {
  1717  	Event *ConverterRegistryConvertibleTokenAdded // Event containing the contract specifics and raw log
  1718  
  1719  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1720  	event    string              // Event name to use for unpacking event data
  1721  
  1722  	logs chan types.Log        // Log channel receiving the found contract events
  1723  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1724  	done bool                  // Whether the subscription completed delivering logs
  1725  	fail error                 // Occurred error to stop iteration
  1726  }
  1727  
  1728  // Next advances the iterator to the subsequent event, returning whether there
  1729  // are any more events found. In case of a retrieval or parsing error, false is
  1730  // returned and Error() can be queried for the exact failure.
  1731  func (it *ConverterRegistryConvertibleTokenAddedIterator) Next() bool {
  1732  	// If the iterator failed, stop iterating
  1733  	if it.fail != nil {
  1734  		return false
  1735  	}
  1736  	// If the iterator completed, deliver directly whatever's available
  1737  	if it.done {
  1738  		select {
  1739  		case log := <-it.logs:
  1740  			it.Event = new(ConverterRegistryConvertibleTokenAdded)
  1741  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1742  				it.fail = err
  1743  				return false
  1744  			}
  1745  			it.Event.Raw = log
  1746  			return true
  1747  
  1748  		default:
  1749  			return false
  1750  		}
  1751  	}
  1752  	// Iterator still in progress, wait for either a data or an error event
  1753  	select {
  1754  	case log := <-it.logs:
  1755  		it.Event = new(ConverterRegistryConvertibleTokenAdded)
  1756  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1757  			it.fail = err
  1758  			return false
  1759  		}
  1760  		it.Event.Raw = log
  1761  		return true
  1762  
  1763  	case err := <-it.sub.Err():
  1764  		it.done = true
  1765  		it.fail = err
  1766  		return it.Next()
  1767  	}
  1768  }
  1769  
  1770  // Error returns any retrieval or parsing error occurred during filtering.
  1771  func (it *ConverterRegistryConvertibleTokenAddedIterator) Error() error {
  1772  	return it.fail
  1773  }
  1774  
  1775  // Close terminates the iteration process, releasing any pending underlying
  1776  // resources.
  1777  func (it *ConverterRegistryConvertibleTokenAddedIterator) Close() error {
  1778  	it.sub.Unsubscribe()
  1779  	return nil
  1780  }
  1781  
  1782  // ConverterRegistryConvertibleTokenAdded represents a ConvertibleTokenAdded event raised by the ConverterRegistry contract.
  1783  type ConverterRegistryConvertibleTokenAdded struct {
  1784  	ConvertibleToken common.Address
  1785  	SmartToken       common.Address
  1786  	Raw              types.Log // Blockchain specific contextual infos
  1787  }
  1788  
  1789  // FilterConvertibleTokenAdded is a free log retrieval operation binding the contract event 0xf2e7cf6d6ed3f77039511409a43d4fa5108f09ab71d72b014380364c910233a5.
  1790  //
  1791  // Solidity: event ConvertibleTokenAdded(address indexed _convertibleToken, address indexed _smartToken)
  1792  func (_ConverterRegistry *ConverterRegistryFilterer) FilterConvertibleTokenAdded(opts *bind.FilterOpts, _convertibleToken []common.Address, _smartToken []common.Address) (*ConverterRegistryConvertibleTokenAddedIterator, error) {
  1793  
  1794  	var _convertibleTokenRule []interface{}
  1795  	for _, _convertibleTokenItem := range _convertibleToken {
  1796  		_convertibleTokenRule = append(_convertibleTokenRule, _convertibleTokenItem)
  1797  	}
  1798  	var _smartTokenRule []interface{}
  1799  	for _, _smartTokenItem := range _smartToken {
  1800  		_smartTokenRule = append(_smartTokenRule, _smartTokenItem)
  1801  	}
  1802  
  1803  	logs, sub, err := _ConverterRegistry.contract.FilterLogs(opts, "ConvertibleTokenAdded", _convertibleTokenRule, _smartTokenRule)
  1804  	if err != nil {
  1805  		return nil, err
  1806  	}
  1807  	return &ConverterRegistryConvertibleTokenAddedIterator{contract: _ConverterRegistry.contract, event: "ConvertibleTokenAdded", logs: logs, sub: sub}, nil
  1808  }
  1809  
  1810  // WatchConvertibleTokenAdded is a free log subscription operation binding the contract event 0xf2e7cf6d6ed3f77039511409a43d4fa5108f09ab71d72b014380364c910233a5.
  1811  //
  1812  // Solidity: event ConvertibleTokenAdded(address indexed _convertibleToken, address indexed _smartToken)
  1813  func (_ConverterRegistry *ConverterRegistryFilterer) WatchConvertibleTokenAdded(opts *bind.WatchOpts, sink chan<- *ConverterRegistryConvertibleTokenAdded, _convertibleToken []common.Address, _smartToken []common.Address) (event.Subscription, error) {
  1814  
  1815  	var _convertibleTokenRule []interface{}
  1816  	for _, _convertibleTokenItem := range _convertibleToken {
  1817  		_convertibleTokenRule = append(_convertibleTokenRule, _convertibleTokenItem)
  1818  	}
  1819  	var _smartTokenRule []interface{}
  1820  	for _, _smartTokenItem := range _smartToken {
  1821  		_smartTokenRule = append(_smartTokenRule, _smartTokenItem)
  1822  	}
  1823  
  1824  	logs, sub, err := _ConverterRegistry.contract.WatchLogs(opts, "ConvertibleTokenAdded", _convertibleTokenRule, _smartTokenRule)
  1825  	if err != nil {
  1826  		return nil, err
  1827  	}
  1828  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1829  		defer sub.Unsubscribe()
  1830  		for {
  1831  			select {
  1832  			case log := <-logs:
  1833  				// New log arrived, parse the event and forward to the user
  1834  				event := new(ConverterRegistryConvertibleTokenAdded)
  1835  				if err := _ConverterRegistry.contract.UnpackLog(event, "ConvertibleTokenAdded", log); err != nil {
  1836  					return err
  1837  				}
  1838  				event.Raw = log
  1839  
  1840  				select {
  1841  				case sink <- event:
  1842  				case err := <-sub.Err():
  1843  					return err
  1844  				case <-quit:
  1845  					return nil
  1846  				}
  1847  			case err := <-sub.Err():
  1848  				return err
  1849  			case <-quit:
  1850  				return nil
  1851  			}
  1852  		}
  1853  	}), nil
  1854  }
  1855  
  1856  // ParseConvertibleTokenAdded is a log parse operation binding the contract event 0xf2e7cf6d6ed3f77039511409a43d4fa5108f09ab71d72b014380364c910233a5.
  1857  //
  1858  // Solidity: event ConvertibleTokenAdded(address indexed _convertibleToken, address indexed _smartToken)
  1859  func (_ConverterRegistry *ConverterRegistryFilterer) ParseConvertibleTokenAdded(log types.Log) (*ConverterRegistryConvertibleTokenAdded, error) {
  1860  	event := new(ConverterRegistryConvertibleTokenAdded)
  1861  	if err := _ConverterRegistry.contract.UnpackLog(event, "ConvertibleTokenAdded", log); err != nil {
  1862  		return nil, err
  1863  	}
  1864  	event.Raw = log
  1865  	return event, nil
  1866  }
  1867  
  1868  // ConverterRegistryConvertibleTokenRemovedIterator is returned from FilterConvertibleTokenRemoved and is used to iterate over the raw logs and unpacked data for ConvertibleTokenRemoved events raised by the ConverterRegistry contract.
  1869  type ConverterRegistryConvertibleTokenRemovedIterator struct {
  1870  	Event *ConverterRegistryConvertibleTokenRemoved // Event containing the contract specifics and raw log
  1871  
  1872  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  1873  	event    string              // Event name to use for unpacking event data
  1874  
  1875  	logs chan types.Log        // Log channel receiving the found contract events
  1876  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  1877  	done bool                  // Whether the subscription completed delivering logs
  1878  	fail error                 // Occurred error to stop iteration
  1879  }
  1880  
  1881  // Next advances the iterator to the subsequent event, returning whether there
  1882  // are any more events found. In case of a retrieval or parsing error, false is
  1883  // returned and Error() can be queried for the exact failure.
  1884  func (it *ConverterRegistryConvertibleTokenRemovedIterator) Next() bool {
  1885  	// If the iterator failed, stop iterating
  1886  	if it.fail != nil {
  1887  		return false
  1888  	}
  1889  	// If the iterator completed, deliver directly whatever's available
  1890  	if it.done {
  1891  		select {
  1892  		case log := <-it.logs:
  1893  			it.Event = new(ConverterRegistryConvertibleTokenRemoved)
  1894  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1895  				it.fail = err
  1896  				return false
  1897  			}
  1898  			it.Event.Raw = log
  1899  			return true
  1900  
  1901  		default:
  1902  			return false
  1903  		}
  1904  	}
  1905  	// Iterator still in progress, wait for either a data or an error event
  1906  	select {
  1907  	case log := <-it.logs:
  1908  		it.Event = new(ConverterRegistryConvertibleTokenRemoved)
  1909  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  1910  			it.fail = err
  1911  			return false
  1912  		}
  1913  		it.Event.Raw = log
  1914  		return true
  1915  
  1916  	case err := <-it.sub.Err():
  1917  		it.done = true
  1918  		it.fail = err
  1919  		return it.Next()
  1920  	}
  1921  }
  1922  
  1923  // Error returns any retrieval or parsing error occurred during filtering.
  1924  func (it *ConverterRegistryConvertibleTokenRemovedIterator) Error() error {
  1925  	return it.fail
  1926  }
  1927  
  1928  // Close terminates the iteration process, releasing any pending underlying
  1929  // resources.
  1930  func (it *ConverterRegistryConvertibleTokenRemovedIterator) Close() error {
  1931  	it.sub.Unsubscribe()
  1932  	return nil
  1933  }
  1934  
  1935  // ConverterRegistryConvertibleTokenRemoved represents a ConvertibleTokenRemoved event raised by the ConverterRegistry contract.
  1936  type ConverterRegistryConvertibleTokenRemoved struct {
  1937  	ConvertibleToken common.Address
  1938  	SmartToken       common.Address
  1939  	Raw              types.Log // Blockchain specific contextual infos
  1940  }
  1941  
  1942  // FilterConvertibleTokenRemoved is a free log retrieval operation binding the contract event 0x9430ad6ff45d6c3e126c7711bf0036bd9bc6b202fa19628abd88e59cf43ced43.
  1943  //
  1944  // Solidity: event ConvertibleTokenRemoved(address indexed _convertibleToken, address indexed _smartToken)
  1945  func (_ConverterRegistry *ConverterRegistryFilterer) FilterConvertibleTokenRemoved(opts *bind.FilterOpts, _convertibleToken []common.Address, _smartToken []common.Address) (*ConverterRegistryConvertibleTokenRemovedIterator, error) {
  1946  
  1947  	var _convertibleTokenRule []interface{}
  1948  	for _, _convertibleTokenItem := range _convertibleToken {
  1949  		_convertibleTokenRule = append(_convertibleTokenRule, _convertibleTokenItem)
  1950  	}
  1951  	var _smartTokenRule []interface{}
  1952  	for _, _smartTokenItem := range _smartToken {
  1953  		_smartTokenRule = append(_smartTokenRule, _smartTokenItem)
  1954  	}
  1955  
  1956  	logs, sub, err := _ConverterRegistry.contract.FilterLogs(opts, "ConvertibleTokenRemoved", _convertibleTokenRule, _smartTokenRule)
  1957  	if err != nil {
  1958  		return nil, err
  1959  	}
  1960  	return &ConverterRegistryConvertibleTokenRemovedIterator{contract: _ConverterRegistry.contract, event: "ConvertibleTokenRemoved", logs: logs, sub: sub}, nil
  1961  }
  1962  
  1963  // WatchConvertibleTokenRemoved is a free log subscription operation binding the contract event 0x9430ad6ff45d6c3e126c7711bf0036bd9bc6b202fa19628abd88e59cf43ced43.
  1964  //
  1965  // Solidity: event ConvertibleTokenRemoved(address indexed _convertibleToken, address indexed _smartToken)
  1966  func (_ConverterRegistry *ConverterRegistryFilterer) WatchConvertibleTokenRemoved(opts *bind.WatchOpts, sink chan<- *ConverterRegistryConvertibleTokenRemoved, _convertibleToken []common.Address, _smartToken []common.Address) (event.Subscription, error) {
  1967  
  1968  	var _convertibleTokenRule []interface{}
  1969  	for _, _convertibleTokenItem := range _convertibleToken {
  1970  		_convertibleTokenRule = append(_convertibleTokenRule, _convertibleTokenItem)
  1971  	}
  1972  	var _smartTokenRule []interface{}
  1973  	for _, _smartTokenItem := range _smartToken {
  1974  		_smartTokenRule = append(_smartTokenRule, _smartTokenItem)
  1975  	}
  1976  
  1977  	logs, sub, err := _ConverterRegistry.contract.WatchLogs(opts, "ConvertibleTokenRemoved", _convertibleTokenRule, _smartTokenRule)
  1978  	if err != nil {
  1979  		return nil, err
  1980  	}
  1981  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1982  		defer sub.Unsubscribe()
  1983  		for {
  1984  			select {
  1985  			case log := <-logs:
  1986  				// New log arrived, parse the event and forward to the user
  1987  				event := new(ConverterRegistryConvertibleTokenRemoved)
  1988  				if err := _ConverterRegistry.contract.UnpackLog(event, "ConvertibleTokenRemoved", log); err != nil {
  1989  					return err
  1990  				}
  1991  				event.Raw = log
  1992  
  1993  				select {
  1994  				case sink <- event:
  1995  				case err := <-sub.Err():
  1996  					return err
  1997  				case <-quit:
  1998  					return nil
  1999  				}
  2000  			case err := <-sub.Err():
  2001  				return err
  2002  			case <-quit:
  2003  				return nil
  2004  			}
  2005  		}
  2006  	}), nil
  2007  }
  2008  
  2009  // ParseConvertibleTokenRemoved is a log parse operation binding the contract event 0x9430ad6ff45d6c3e126c7711bf0036bd9bc6b202fa19628abd88e59cf43ced43.
  2010  //
  2011  // Solidity: event ConvertibleTokenRemoved(address indexed _convertibleToken, address indexed _smartToken)
  2012  func (_ConverterRegistry *ConverterRegistryFilterer) ParseConvertibleTokenRemoved(log types.Log) (*ConverterRegistryConvertibleTokenRemoved, error) {
  2013  	event := new(ConverterRegistryConvertibleTokenRemoved)
  2014  	if err := _ConverterRegistry.contract.UnpackLog(event, "ConvertibleTokenRemoved", log); err != nil {
  2015  		return nil, err
  2016  	}
  2017  	event.Raw = log
  2018  	return event, nil
  2019  }
  2020  
  2021  // ConverterRegistryLiquidityPoolAddedIterator is returned from FilterLiquidityPoolAdded and is used to iterate over the raw logs and unpacked data for LiquidityPoolAdded events raised by the ConverterRegistry contract.
  2022  type ConverterRegistryLiquidityPoolAddedIterator struct {
  2023  	Event *ConverterRegistryLiquidityPoolAdded // Event containing the contract specifics and raw log
  2024  
  2025  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2026  	event    string              // Event name to use for unpacking event data
  2027  
  2028  	logs chan types.Log        // Log channel receiving the found contract events
  2029  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2030  	done bool                  // Whether the subscription completed delivering logs
  2031  	fail error                 // Occurred error to stop iteration
  2032  }
  2033  
  2034  // Next advances the iterator to the subsequent event, returning whether there
  2035  // are any more events found. In case of a retrieval or parsing error, false is
  2036  // returned and Error() can be queried for the exact failure.
  2037  func (it *ConverterRegistryLiquidityPoolAddedIterator) Next() bool {
  2038  	// If the iterator failed, stop iterating
  2039  	if it.fail != nil {
  2040  		return false
  2041  	}
  2042  	// If the iterator completed, deliver directly whatever's available
  2043  	if it.done {
  2044  		select {
  2045  		case log := <-it.logs:
  2046  			it.Event = new(ConverterRegistryLiquidityPoolAdded)
  2047  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2048  				it.fail = err
  2049  				return false
  2050  			}
  2051  			it.Event.Raw = log
  2052  			return true
  2053  
  2054  		default:
  2055  			return false
  2056  		}
  2057  	}
  2058  	// Iterator still in progress, wait for either a data or an error event
  2059  	select {
  2060  	case log := <-it.logs:
  2061  		it.Event = new(ConverterRegistryLiquidityPoolAdded)
  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  	case err := <-it.sub.Err():
  2070  		it.done = true
  2071  		it.fail = err
  2072  		return it.Next()
  2073  	}
  2074  }
  2075  
  2076  // Error returns any retrieval or parsing error occurred during filtering.
  2077  func (it *ConverterRegistryLiquidityPoolAddedIterator) Error() error {
  2078  	return it.fail
  2079  }
  2080  
  2081  // Close terminates the iteration process, releasing any pending underlying
  2082  // resources.
  2083  func (it *ConverterRegistryLiquidityPoolAddedIterator) Close() error {
  2084  	it.sub.Unsubscribe()
  2085  	return nil
  2086  }
  2087  
  2088  // ConverterRegistryLiquidityPoolAdded represents a LiquidityPoolAdded event raised by the ConverterRegistry contract.
  2089  type ConverterRegistryLiquidityPoolAdded struct {
  2090  	LiquidityPool common.Address
  2091  	Raw           types.Log // Blockchain specific contextual infos
  2092  }
  2093  
  2094  // FilterLiquidityPoolAdded is a free log retrieval operation binding the contract event 0xb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d89.
  2095  //
  2096  // Solidity: event LiquidityPoolAdded(address indexed _liquidityPool)
  2097  func (_ConverterRegistry *ConverterRegistryFilterer) FilterLiquidityPoolAdded(opts *bind.FilterOpts, _liquidityPool []common.Address) (*ConverterRegistryLiquidityPoolAddedIterator, error) {
  2098  
  2099  	var _liquidityPoolRule []interface{}
  2100  	for _, _liquidityPoolItem := range _liquidityPool {
  2101  		_liquidityPoolRule = append(_liquidityPoolRule, _liquidityPoolItem)
  2102  	}
  2103  
  2104  	logs, sub, err := _ConverterRegistry.contract.FilterLogs(opts, "LiquidityPoolAdded", _liquidityPoolRule)
  2105  	if err != nil {
  2106  		return nil, err
  2107  	}
  2108  	return &ConverterRegistryLiquidityPoolAddedIterator{contract: _ConverterRegistry.contract, event: "LiquidityPoolAdded", logs: logs, sub: sub}, nil
  2109  }
  2110  
  2111  // WatchLiquidityPoolAdded is a free log subscription operation binding the contract event 0xb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d89.
  2112  //
  2113  // Solidity: event LiquidityPoolAdded(address indexed _liquidityPool)
  2114  func (_ConverterRegistry *ConverterRegistryFilterer) WatchLiquidityPoolAdded(opts *bind.WatchOpts, sink chan<- *ConverterRegistryLiquidityPoolAdded, _liquidityPool []common.Address) (event.Subscription, error) {
  2115  
  2116  	var _liquidityPoolRule []interface{}
  2117  	for _, _liquidityPoolItem := range _liquidityPool {
  2118  		_liquidityPoolRule = append(_liquidityPoolRule, _liquidityPoolItem)
  2119  	}
  2120  
  2121  	logs, sub, err := _ConverterRegistry.contract.WatchLogs(opts, "LiquidityPoolAdded", _liquidityPoolRule)
  2122  	if err != nil {
  2123  		return nil, err
  2124  	}
  2125  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2126  		defer sub.Unsubscribe()
  2127  		for {
  2128  			select {
  2129  			case log := <-logs:
  2130  				// New log arrived, parse the event and forward to the user
  2131  				event := new(ConverterRegistryLiquidityPoolAdded)
  2132  				if err := _ConverterRegistry.contract.UnpackLog(event, "LiquidityPoolAdded", log); err != nil {
  2133  					return err
  2134  				}
  2135  				event.Raw = log
  2136  
  2137  				select {
  2138  				case sink <- event:
  2139  				case err := <-sub.Err():
  2140  					return err
  2141  				case <-quit:
  2142  					return nil
  2143  				}
  2144  			case err := <-sub.Err():
  2145  				return err
  2146  			case <-quit:
  2147  				return nil
  2148  			}
  2149  		}
  2150  	}), nil
  2151  }
  2152  
  2153  // ParseLiquidityPoolAdded is a log parse operation binding the contract event 0xb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d89.
  2154  //
  2155  // Solidity: event LiquidityPoolAdded(address indexed _liquidityPool)
  2156  func (_ConverterRegistry *ConverterRegistryFilterer) ParseLiquidityPoolAdded(log types.Log) (*ConverterRegistryLiquidityPoolAdded, error) {
  2157  	event := new(ConverterRegistryLiquidityPoolAdded)
  2158  	if err := _ConverterRegistry.contract.UnpackLog(event, "LiquidityPoolAdded", log); err != nil {
  2159  		return nil, err
  2160  	}
  2161  	event.Raw = log
  2162  	return event, nil
  2163  }
  2164  
  2165  // ConverterRegistryLiquidityPoolRemovedIterator is returned from FilterLiquidityPoolRemoved and is used to iterate over the raw logs and unpacked data for LiquidityPoolRemoved events raised by the ConverterRegistry contract.
  2166  type ConverterRegistryLiquidityPoolRemovedIterator struct {
  2167  	Event *ConverterRegistryLiquidityPoolRemoved // Event containing the contract specifics and raw log
  2168  
  2169  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2170  	event    string              // Event name to use for unpacking event data
  2171  
  2172  	logs chan types.Log        // Log channel receiving the found contract events
  2173  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2174  	done bool                  // Whether the subscription completed delivering logs
  2175  	fail error                 // Occurred error to stop iteration
  2176  }
  2177  
  2178  // Next advances the iterator to the subsequent event, returning whether there
  2179  // are any more events found. In case of a retrieval or parsing error, false is
  2180  // returned and Error() can be queried for the exact failure.
  2181  func (it *ConverterRegistryLiquidityPoolRemovedIterator) Next() bool {
  2182  	// If the iterator failed, stop iterating
  2183  	if it.fail != nil {
  2184  		return false
  2185  	}
  2186  	// If the iterator completed, deliver directly whatever's available
  2187  	if it.done {
  2188  		select {
  2189  		case log := <-it.logs:
  2190  			it.Event = new(ConverterRegistryLiquidityPoolRemoved)
  2191  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2192  				it.fail = err
  2193  				return false
  2194  			}
  2195  			it.Event.Raw = log
  2196  			return true
  2197  
  2198  		default:
  2199  			return false
  2200  		}
  2201  	}
  2202  	// Iterator still in progress, wait for either a data or an error event
  2203  	select {
  2204  	case log := <-it.logs:
  2205  		it.Event = new(ConverterRegistryLiquidityPoolRemoved)
  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  	case err := <-it.sub.Err():
  2214  		it.done = true
  2215  		it.fail = err
  2216  		return it.Next()
  2217  	}
  2218  }
  2219  
  2220  // Error returns any retrieval or parsing error occurred during filtering.
  2221  func (it *ConverterRegistryLiquidityPoolRemovedIterator) Error() error {
  2222  	return it.fail
  2223  }
  2224  
  2225  // Close terminates the iteration process, releasing any pending underlying
  2226  // resources.
  2227  func (it *ConverterRegistryLiquidityPoolRemovedIterator) Close() error {
  2228  	it.sub.Unsubscribe()
  2229  	return nil
  2230  }
  2231  
  2232  // ConverterRegistryLiquidityPoolRemoved represents a LiquidityPoolRemoved event raised by the ConverterRegistry contract.
  2233  type ConverterRegistryLiquidityPoolRemoved struct {
  2234  	LiquidityPool common.Address
  2235  	Raw           types.Log // Blockchain specific contextual infos
  2236  }
  2237  
  2238  // FilterLiquidityPoolRemoved is a free log retrieval operation binding the contract event 0x59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee60.
  2239  //
  2240  // Solidity: event LiquidityPoolRemoved(address indexed _liquidityPool)
  2241  func (_ConverterRegistry *ConverterRegistryFilterer) FilterLiquidityPoolRemoved(opts *bind.FilterOpts, _liquidityPool []common.Address) (*ConverterRegistryLiquidityPoolRemovedIterator, error) {
  2242  
  2243  	var _liquidityPoolRule []interface{}
  2244  	for _, _liquidityPoolItem := range _liquidityPool {
  2245  		_liquidityPoolRule = append(_liquidityPoolRule, _liquidityPoolItem)
  2246  	}
  2247  
  2248  	logs, sub, err := _ConverterRegistry.contract.FilterLogs(opts, "LiquidityPoolRemoved", _liquidityPoolRule)
  2249  	if err != nil {
  2250  		return nil, err
  2251  	}
  2252  	return &ConverterRegistryLiquidityPoolRemovedIterator{contract: _ConverterRegistry.contract, event: "LiquidityPoolRemoved", logs: logs, sub: sub}, nil
  2253  }
  2254  
  2255  // WatchLiquidityPoolRemoved is a free log subscription operation binding the contract event 0x59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee60.
  2256  //
  2257  // Solidity: event LiquidityPoolRemoved(address indexed _liquidityPool)
  2258  func (_ConverterRegistry *ConverterRegistryFilterer) WatchLiquidityPoolRemoved(opts *bind.WatchOpts, sink chan<- *ConverterRegistryLiquidityPoolRemoved, _liquidityPool []common.Address) (event.Subscription, error) {
  2259  
  2260  	var _liquidityPoolRule []interface{}
  2261  	for _, _liquidityPoolItem := range _liquidityPool {
  2262  		_liquidityPoolRule = append(_liquidityPoolRule, _liquidityPoolItem)
  2263  	}
  2264  
  2265  	logs, sub, err := _ConverterRegistry.contract.WatchLogs(opts, "LiquidityPoolRemoved", _liquidityPoolRule)
  2266  	if err != nil {
  2267  		return nil, err
  2268  	}
  2269  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2270  		defer sub.Unsubscribe()
  2271  		for {
  2272  			select {
  2273  			case log := <-logs:
  2274  				// New log arrived, parse the event and forward to the user
  2275  				event := new(ConverterRegistryLiquidityPoolRemoved)
  2276  				if err := _ConverterRegistry.contract.UnpackLog(event, "LiquidityPoolRemoved", log); err != nil {
  2277  					return err
  2278  				}
  2279  				event.Raw = log
  2280  
  2281  				select {
  2282  				case sink <- event:
  2283  				case err := <-sub.Err():
  2284  					return err
  2285  				case <-quit:
  2286  					return nil
  2287  				}
  2288  			case err := <-sub.Err():
  2289  				return err
  2290  			case <-quit:
  2291  				return nil
  2292  			}
  2293  		}
  2294  	}), nil
  2295  }
  2296  
  2297  // ParseLiquidityPoolRemoved is a log parse operation binding the contract event 0x59c3fbcae88f30e9b0e35c132a7f68c53231dffa4722f197c7ecb0ee013eee60.
  2298  //
  2299  // Solidity: event LiquidityPoolRemoved(address indexed _liquidityPool)
  2300  func (_ConverterRegistry *ConverterRegistryFilterer) ParseLiquidityPoolRemoved(log types.Log) (*ConverterRegistryLiquidityPoolRemoved, error) {
  2301  	event := new(ConverterRegistryLiquidityPoolRemoved)
  2302  	if err := _ConverterRegistry.contract.UnpackLog(event, "LiquidityPoolRemoved", log); err != nil {
  2303  		return nil, err
  2304  	}
  2305  	event.Raw = log
  2306  	return event, nil
  2307  }
  2308  
  2309  // ConverterRegistryOwnerUpdateIterator is returned from FilterOwnerUpdate and is used to iterate over the raw logs and unpacked data for OwnerUpdate events raised by the ConverterRegistry contract.
  2310  type ConverterRegistryOwnerUpdateIterator struct {
  2311  	Event *ConverterRegistryOwnerUpdate // Event containing the contract specifics and raw log
  2312  
  2313  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2314  	event    string              // Event name to use for unpacking event data
  2315  
  2316  	logs chan types.Log        // Log channel receiving the found contract events
  2317  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2318  	done bool                  // Whether the subscription completed delivering logs
  2319  	fail error                 // Occurred error to stop iteration
  2320  }
  2321  
  2322  // Next advances the iterator to the subsequent event, returning whether there
  2323  // are any more events found. In case of a retrieval or parsing error, false is
  2324  // returned and Error() can be queried for the exact failure.
  2325  func (it *ConverterRegistryOwnerUpdateIterator) Next() bool {
  2326  	// If the iterator failed, stop iterating
  2327  	if it.fail != nil {
  2328  		return false
  2329  	}
  2330  	// If the iterator completed, deliver directly whatever's available
  2331  	if it.done {
  2332  		select {
  2333  		case log := <-it.logs:
  2334  			it.Event = new(ConverterRegistryOwnerUpdate)
  2335  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2336  				it.fail = err
  2337  				return false
  2338  			}
  2339  			it.Event.Raw = log
  2340  			return true
  2341  
  2342  		default:
  2343  			return false
  2344  		}
  2345  	}
  2346  	// Iterator still in progress, wait for either a data or an error event
  2347  	select {
  2348  	case log := <-it.logs:
  2349  		it.Event = new(ConverterRegistryOwnerUpdate)
  2350  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2351  			it.fail = err
  2352  			return false
  2353  		}
  2354  		it.Event.Raw = log
  2355  		return true
  2356  
  2357  	case err := <-it.sub.Err():
  2358  		it.done = true
  2359  		it.fail = err
  2360  		return it.Next()
  2361  	}
  2362  }
  2363  
  2364  // Error returns any retrieval or parsing error occurred during filtering.
  2365  func (it *ConverterRegistryOwnerUpdateIterator) Error() error {
  2366  	return it.fail
  2367  }
  2368  
  2369  // Close terminates the iteration process, releasing any pending underlying
  2370  // resources.
  2371  func (it *ConverterRegistryOwnerUpdateIterator) Close() error {
  2372  	it.sub.Unsubscribe()
  2373  	return nil
  2374  }
  2375  
  2376  // ConverterRegistryOwnerUpdate represents a OwnerUpdate event raised by the ConverterRegistry contract.
  2377  type ConverterRegistryOwnerUpdate struct {
  2378  	PrevOwner common.Address
  2379  	NewOwner  common.Address
  2380  	Raw       types.Log // Blockchain specific contextual infos
  2381  }
  2382  
  2383  // FilterOwnerUpdate is a free log retrieval operation binding the contract event 0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a.
  2384  //
  2385  // Solidity: event OwnerUpdate(address indexed _prevOwner, address indexed _newOwner)
  2386  func (_ConverterRegistry *ConverterRegistryFilterer) FilterOwnerUpdate(opts *bind.FilterOpts, _prevOwner []common.Address, _newOwner []common.Address) (*ConverterRegistryOwnerUpdateIterator, error) {
  2387  
  2388  	var _prevOwnerRule []interface{}
  2389  	for _, _prevOwnerItem := range _prevOwner {
  2390  		_prevOwnerRule = append(_prevOwnerRule, _prevOwnerItem)
  2391  	}
  2392  	var _newOwnerRule []interface{}
  2393  	for _, _newOwnerItem := range _newOwner {
  2394  		_newOwnerRule = append(_newOwnerRule, _newOwnerItem)
  2395  	}
  2396  
  2397  	logs, sub, err := _ConverterRegistry.contract.FilterLogs(opts, "OwnerUpdate", _prevOwnerRule, _newOwnerRule)
  2398  	if err != nil {
  2399  		return nil, err
  2400  	}
  2401  	return &ConverterRegistryOwnerUpdateIterator{contract: _ConverterRegistry.contract, event: "OwnerUpdate", logs: logs, sub: sub}, nil
  2402  }
  2403  
  2404  // WatchOwnerUpdate is a free log subscription operation binding the contract event 0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a.
  2405  //
  2406  // Solidity: event OwnerUpdate(address indexed _prevOwner, address indexed _newOwner)
  2407  func (_ConverterRegistry *ConverterRegistryFilterer) WatchOwnerUpdate(opts *bind.WatchOpts, sink chan<- *ConverterRegistryOwnerUpdate, _prevOwner []common.Address, _newOwner []common.Address) (event.Subscription, error) {
  2408  
  2409  	var _prevOwnerRule []interface{}
  2410  	for _, _prevOwnerItem := range _prevOwner {
  2411  		_prevOwnerRule = append(_prevOwnerRule, _prevOwnerItem)
  2412  	}
  2413  	var _newOwnerRule []interface{}
  2414  	for _, _newOwnerItem := range _newOwner {
  2415  		_newOwnerRule = append(_newOwnerRule, _newOwnerItem)
  2416  	}
  2417  
  2418  	logs, sub, err := _ConverterRegistry.contract.WatchLogs(opts, "OwnerUpdate", _prevOwnerRule, _newOwnerRule)
  2419  	if err != nil {
  2420  		return nil, err
  2421  	}
  2422  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2423  		defer sub.Unsubscribe()
  2424  		for {
  2425  			select {
  2426  			case log := <-logs:
  2427  				// New log arrived, parse the event and forward to the user
  2428  				event := new(ConverterRegistryOwnerUpdate)
  2429  				if err := _ConverterRegistry.contract.UnpackLog(event, "OwnerUpdate", log); err != nil {
  2430  					return err
  2431  				}
  2432  				event.Raw = log
  2433  
  2434  				select {
  2435  				case sink <- event:
  2436  				case err := <-sub.Err():
  2437  					return err
  2438  				case <-quit:
  2439  					return nil
  2440  				}
  2441  			case err := <-sub.Err():
  2442  				return err
  2443  			case <-quit:
  2444  				return nil
  2445  			}
  2446  		}
  2447  	}), nil
  2448  }
  2449  
  2450  // ParseOwnerUpdate is a log parse operation binding the contract event 0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a.
  2451  //
  2452  // Solidity: event OwnerUpdate(address indexed _prevOwner, address indexed _newOwner)
  2453  func (_ConverterRegistry *ConverterRegistryFilterer) ParseOwnerUpdate(log types.Log) (*ConverterRegistryOwnerUpdate, error) {
  2454  	event := new(ConverterRegistryOwnerUpdate)
  2455  	if err := _ConverterRegistry.contract.UnpackLog(event, "OwnerUpdate", log); err != nil {
  2456  		return nil, err
  2457  	}
  2458  	event.Raw = log
  2459  	return event, nil
  2460  }
  2461  
  2462  // ConverterRegistrySmartTokenAddedIterator is returned from FilterSmartTokenAdded and is used to iterate over the raw logs and unpacked data for SmartTokenAdded events raised by the ConverterRegistry contract.
  2463  type ConverterRegistrySmartTokenAddedIterator struct {
  2464  	Event *ConverterRegistrySmartTokenAdded // Event containing the contract specifics and raw log
  2465  
  2466  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2467  	event    string              // Event name to use for unpacking event data
  2468  
  2469  	logs chan types.Log        // Log channel receiving the found contract events
  2470  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2471  	done bool                  // Whether the subscription completed delivering logs
  2472  	fail error                 // Occurred error to stop iteration
  2473  }
  2474  
  2475  // Next advances the iterator to the subsequent event, returning whether there
  2476  // are any more events found. In case of a retrieval or parsing error, false is
  2477  // returned and Error() can be queried for the exact failure.
  2478  func (it *ConverterRegistrySmartTokenAddedIterator) Next() bool {
  2479  	// If the iterator failed, stop iterating
  2480  	if it.fail != nil {
  2481  		return false
  2482  	}
  2483  	// If the iterator completed, deliver directly whatever's available
  2484  	if it.done {
  2485  		select {
  2486  		case log := <-it.logs:
  2487  			it.Event = new(ConverterRegistrySmartTokenAdded)
  2488  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2489  				it.fail = err
  2490  				return false
  2491  			}
  2492  			it.Event.Raw = log
  2493  			return true
  2494  
  2495  		default:
  2496  			return false
  2497  		}
  2498  	}
  2499  	// Iterator still in progress, wait for either a data or an error event
  2500  	select {
  2501  	case log := <-it.logs:
  2502  		it.Event = new(ConverterRegistrySmartTokenAdded)
  2503  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2504  			it.fail = err
  2505  			return false
  2506  		}
  2507  		it.Event.Raw = log
  2508  		return true
  2509  
  2510  	case err := <-it.sub.Err():
  2511  		it.done = true
  2512  		it.fail = err
  2513  		return it.Next()
  2514  	}
  2515  }
  2516  
  2517  // Error returns any retrieval or parsing error occurred during filtering.
  2518  func (it *ConverterRegistrySmartTokenAddedIterator) Error() error {
  2519  	return it.fail
  2520  }
  2521  
  2522  // Close terminates the iteration process, releasing any pending underlying
  2523  // resources.
  2524  func (it *ConverterRegistrySmartTokenAddedIterator) Close() error {
  2525  	it.sub.Unsubscribe()
  2526  	return nil
  2527  }
  2528  
  2529  // ConverterRegistrySmartTokenAdded represents a SmartTokenAdded event raised by the ConverterRegistry contract.
  2530  type ConverterRegistrySmartTokenAdded struct {
  2531  	SmartToken common.Address
  2532  	Raw        types.Log // Blockchain specific contextual infos
  2533  }
  2534  
  2535  // FilterSmartTokenAdded is a free log retrieval operation binding the contract event 0x88881feecdf61136ac4bdb1f681f2f3746a82910263d21ffea94750d2a78c0ab.
  2536  //
  2537  // Solidity: event SmartTokenAdded(address indexed _smartToken)
  2538  func (_ConverterRegistry *ConverterRegistryFilterer) FilterSmartTokenAdded(opts *bind.FilterOpts, _smartToken []common.Address) (*ConverterRegistrySmartTokenAddedIterator, error) {
  2539  
  2540  	var _smartTokenRule []interface{}
  2541  	for _, _smartTokenItem := range _smartToken {
  2542  		_smartTokenRule = append(_smartTokenRule, _smartTokenItem)
  2543  	}
  2544  
  2545  	logs, sub, err := _ConverterRegistry.contract.FilterLogs(opts, "SmartTokenAdded", _smartTokenRule)
  2546  	if err != nil {
  2547  		return nil, err
  2548  	}
  2549  	return &ConverterRegistrySmartTokenAddedIterator{contract: _ConverterRegistry.contract, event: "SmartTokenAdded", logs: logs, sub: sub}, nil
  2550  }
  2551  
  2552  // WatchSmartTokenAdded is a free log subscription operation binding the contract event 0x88881feecdf61136ac4bdb1f681f2f3746a82910263d21ffea94750d2a78c0ab.
  2553  //
  2554  // Solidity: event SmartTokenAdded(address indexed _smartToken)
  2555  func (_ConverterRegistry *ConverterRegistryFilterer) WatchSmartTokenAdded(opts *bind.WatchOpts, sink chan<- *ConverterRegistrySmartTokenAdded, _smartToken []common.Address) (event.Subscription, error) {
  2556  
  2557  	var _smartTokenRule []interface{}
  2558  	for _, _smartTokenItem := range _smartToken {
  2559  		_smartTokenRule = append(_smartTokenRule, _smartTokenItem)
  2560  	}
  2561  
  2562  	logs, sub, err := _ConverterRegistry.contract.WatchLogs(opts, "SmartTokenAdded", _smartTokenRule)
  2563  	if err != nil {
  2564  		return nil, err
  2565  	}
  2566  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2567  		defer sub.Unsubscribe()
  2568  		for {
  2569  			select {
  2570  			case log := <-logs:
  2571  				// New log arrived, parse the event and forward to the user
  2572  				event := new(ConverterRegistrySmartTokenAdded)
  2573  				if err := _ConverterRegistry.contract.UnpackLog(event, "SmartTokenAdded", log); err != nil {
  2574  					return err
  2575  				}
  2576  				event.Raw = log
  2577  
  2578  				select {
  2579  				case sink <- event:
  2580  				case err := <-sub.Err():
  2581  					return err
  2582  				case <-quit:
  2583  					return nil
  2584  				}
  2585  			case err := <-sub.Err():
  2586  				return err
  2587  			case <-quit:
  2588  				return nil
  2589  			}
  2590  		}
  2591  	}), nil
  2592  }
  2593  
  2594  // ParseSmartTokenAdded is a log parse operation binding the contract event 0x88881feecdf61136ac4bdb1f681f2f3746a82910263d21ffea94750d2a78c0ab.
  2595  //
  2596  // Solidity: event SmartTokenAdded(address indexed _smartToken)
  2597  func (_ConverterRegistry *ConverterRegistryFilterer) ParseSmartTokenAdded(log types.Log) (*ConverterRegistrySmartTokenAdded, error) {
  2598  	event := new(ConverterRegistrySmartTokenAdded)
  2599  	if err := _ConverterRegistry.contract.UnpackLog(event, "SmartTokenAdded", log); err != nil {
  2600  		return nil, err
  2601  	}
  2602  	event.Raw = log
  2603  	return event, nil
  2604  }
  2605  
  2606  // ConverterRegistrySmartTokenRemovedIterator is returned from FilterSmartTokenRemoved and is used to iterate over the raw logs and unpacked data for SmartTokenRemoved events raised by the ConverterRegistry contract.
  2607  type ConverterRegistrySmartTokenRemovedIterator struct {
  2608  	Event *ConverterRegistrySmartTokenRemoved // Event containing the contract specifics and raw log
  2609  
  2610  	contract *bind.BoundContract // Generic contract to use for unpacking event data
  2611  	event    string              // Event name to use for unpacking event data
  2612  
  2613  	logs chan types.Log        // Log channel receiving the found contract events
  2614  	sub  ethereum.Subscription // Subscription for errors, completion and termination
  2615  	done bool                  // Whether the subscription completed delivering logs
  2616  	fail error                 // Occurred error to stop iteration
  2617  }
  2618  
  2619  // Next advances the iterator to the subsequent event, returning whether there
  2620  // are any more events found. In case of a retrieval or parsing error, false is
  2621  // returned and Error() can be queried for the exact failure.
  2622  func (it *ConverterRegistrySmartTokenRemovedIterator) Next() bool {
  2623  	// If the iterator failed, stop iterating
  2624  	if it.fail != nil {
  2625  		return false
  2626  	}
  2627  	// If the iterator completed, deliver directly whatever's available
  2628  	if it.done {
  2629  		select {
  2630  		case log := <-it.logs:
  2631  			it.Event = new(ConverterRegistrySmartTokenRemoved)
  2632  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2633  				it.fail = err
  2634  				return false
  2635  			}
  2636  			it.Event.Raw = log
  2637  			return true
  2638  
  2639  		default:
  2640  			return false
  2641  		}
  2642  	}
  2643  	// Iterator still in progress, wait for either a data or an error event
  2644  	select {
  2645  	case log := <-it.logs:
  2646  		it.Event = new(ConverterRegistrySmartTokenRemoved)
  2647  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
  2648  			it.fail = err
  2649  			return false
  2650  		}
  2651  		it.Event.Raw = log
  2652  		return true
  2653  
  2654  	case err := <-it.sub.Err():
  2655  		it.done = true
  2656  		it.fail = err
  2657  		return it.Next()
  2658  	}
  2659  }
  2660  
  2661  // Error returns any retrieval or parsing error occurred during filtering.
  2662  func (it *ConverterRegistrySmartTokenRemovedIterator) Error() error {
  2663  	return it.fail
  2664  }
  2665  
  2666  // Close terminates the iteration process, releasing any pending underlying
  2667  // resources.
  2668  func (it *ConverterRegistrySmartTokenRemovedIterator) Close() error {
  2669  	it.sub.Unsubscribe()
  2670  	return nil
  2671  }
  2672  
  2673  // ConverterRegistrySmartTokenRemoved represents a SmartTokenRemoved event raised by the ConverterRegistry contract.
  2674  type ConverterRegistrySmartTokenRemoved struct {
  2675  	SmartToken common.Address
  2676  	Raw        types.Log // Blockchain specific contextual infos
  2677  }
  2678  
  2679  // FilterSmartTokenRemoved is a free log retrieval operation binding the contract event 0x2aff63790c7da80d1c50ede92d23bc841c384837735c92c184331f3d7b91e5bf.
  2680  //
  2681  // Solidity: event SmartTokenRemoved(address indexed _smartToken)
  2682  func (_ConverterRegistry *ConverterRegistryFilterer) FilterSmartTokenRemoved(opts *bind.FilterOpts, _smartToken []common.Address) (*ConverterRegistrySmartTokenRemovedIterator, error) {
  2683  
  2684  	var _smartTokenRule []interface{}
  2685  	for _, _smartTokenItem := range _smartToken {
  2686  		_smartTokenRule = append(_smartTokenRule, _smartTokenItem)
  2687  	}
  2688  
  2689  	logs, sub, err := _ConverterRegistry.contract.FilterLogs(opts, "SmartTokenRemoved", _smartTokenRule)
  2690  	if err != nil {
  2691  		return nil, err
  2692  	}
  2693  	return &ConverterRegistrySmartTokenRemovedIterator{contract: _ConverterRegistry.contract, event: "SmartTokenRemoved", logs: logs, sub: sub}, nil
  2694  }
  2695  
  2696  // WatchSmartTokenRemoved is a free log subscription operation binding the contract event 0x2aff63790c7da80d1c50ede92d23bc841c384837735c92c184331f3d7b91e5bf.
  2697  //
  2698  // Solidity: event SmartTokenRemoved(address indexed _smartToken)
  2699  func (_ConverterRegistry *ConverterRegistryFilterer) WatchSmartTokenRemoved(opts *bind.WatchOpts, sink chan<- *ConverterRegistrySmartTokenRemoved, _smartToken []common.Address) (event.Subscription, error) {
  2700  
  2701  	var _smartTokenRule []interface{}
  2702  	for _, _smartTokenItem := range _smartToken {
  2703  		_smartTokenRule = append(_smartTokenRule, _smartTokenItem)
  2704  	}
  2705  
  2706  	logs, sub, err := _ConverterRegistry.contract.WatchLogs(opts, "SmartTokenRemoved", _smartTokenRule)
  2707  	if err != nil {
  2708  		return nil, err
  2709  	}
  2710  	return event.NewSubscription(func(quit <-chan struct{}) error {
  2711  		defer sub.Unsubscribe()
  2712  		for {
  2713  			select {
  2714  			case log := <-logs:
  2715  				// New log arrived, parse the event and forward to the user
  2716  				event := new(ConverterRegistrySmartTokenRemoved)
  2717  				if err := _ConverterRegistry.contract.UnpackLog(event, "SmartTokenRemoved", log); err != nil {
  2718  					return err
  2719  				}
  2720  				event.Raw = log
  2721  
  2722  				select {
  2723  				case sink <- event:
  2724  				case err := <-sub.Err():
  2725  					return err
  2726  				case <-quit:
  2727  					return nil
  2728  				}
  2729  			case err := <-sub.Err():
  2730  				return err
  2731  			case <-quit:
  2732  				return nil
  2733  			}
  2734  		}
  2735  	}), nil
  2736  }
  2737  
  2738  // ParseSmartTokenRemoved is a log parse operation binding the contract event 0x2aff63790c7da80d1c50ede92d23bc841c384837735c92c184331f3d7b91e5bf.
  2739  //
  2740  // Solidity: event SmartTokenRemoved(address indexed _smartToken)
  2741  func (_ConverterRegistry *ConverterRegistryFilterer) ParseSmartTokenRemoved(log types.Log) (*ConverterRegistrySmartTokenRemoved, error) {
  2742  	event := new(ConverterRegistrySmartTokenRemoved)
  2743  	if err := _ConverterRegistry.contract.UnpackLog(event, "SmartTokenRemoved", log); err != nil {
  2744  		return nil, err
  2745  	}
  2746  	event.Raw = log
  2747  	return event, nil
  2748  }