github.com/status-im/status-go@v1.1.0/contracts/community-tokens/registry/CommunityOwnerTokenRegistry.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 communityownertokenregistry
     5  
     6  import (
     7  	"errors"
     8  	"math/big"
     9  	"strings"
    10  
    11  	ethereum "github.com/ethereum/go-ethereum"
    12  	"github.com/ethereum/go-ethereum/accounts/abi"
    13  	"github.com/ethereum/go-ethereum/accounts/abi/bind"
    14  	"github.com/ethereum/go-ethereum/common"
    15  	"github.com/ethereum/go-ethereum/core/types"
    16  	"github.com/ethereum/go-ethereum/event"
    17  )
    18  
    19  // Reference imports to suppress errors if they are not otherwise used.
    20  var (
    21  	_ = errors.New
    22  	_ = big.NewInt
    23  	_ = strings.NewReader
    24  	_ = ethereum.NotFound
    25  	_ = bind.Bind
    26  	_ = common.Big1
    27  	_ = types.BloomLookup
    28  	_ = event.NewSubscription
    29  	_ = abi.ConvertType
    30  )
    31  
    32  // CommunityOwnerTokenRegistryMetaData contains all meta data concerning the CommunityOwnerTokenRegistry contract.
    33  var CommunityOwnerTokenRegistryMetaData = &bind.MetaData{
    34  	ABI: "[{\"inputs\":[],\"name\":\"CommunityOwnerTokenRegistry_EntryAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommunityOwnerTokenRegistry_InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommunityOwnerTokenRegistry_NotAuthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"AddEntry\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"TokenDeployerAddressChange\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_communityAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"name\":\"addEntry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"communityAddressToTokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_communityAddress\",\"type\":\"address\"}],\"name\":\"getEntry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenDeployer\",\"type\":\"address\"}],\"name\":\"setCommunityTokenDeployerAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenDeployer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
    35  	Bin: "0x608060405234801561001057600080fd5b5061001a3361001f565b610096565b600180546001600160a01b031916905561004381610046602090811b6105de17901c565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610790806100a56000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a7a9584011610076578063d1f7c48a1161005b578063d1f7c48a146101be578063e30c3978146101d1578063f2fde38b146101ef57600080fd5b8063a7a9584014610175578063b97e6ab91461018857600080fd5b806379ba5097116100a757806379ba5097146101165780637db6a4e41461011e5780638da5cb5b1461015757600080fd5b80632a2dae0a146100c3578063715018a61461010c575b600080fd5b6002546100e39073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b610114610202565b005b610114610216565b6100e361012c36600461072e565b73ffffffffffffffffffffffffffffffffffffffff9081166000908152600360205260409020541690565b60005473ffffffffffffffffffffffffffffffffffffffff166100e3565b610114610183366004610750565b6102d0565b6100e361019636600461072e565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6101146101cc36600461072e565b61046a565b60015473ffffffffffffffffffffffffffffffffffffffff166100e3565b6101146101fd36600461072e565b61052e565b61020a610653565b61021460006106d4565b565b600154339073ffffffffffffffffffffffffffffffffffffffff1681146102c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102cd816106d4565b50565b60025473ffffffffffffffffffffffffffffffffffffffff163314610321576040517f6a60770200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8281166000908152600360205260409020541615610380576040517fec22bbb900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821615806103b7575073ffffffffffffffffffffffffffffffffffffffff8116155b156103ee576040517f911f6bec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82811660008181526003602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169486169485179055517f4bc4774424bf8749f142d7c1df17ee73cf36394616f38dd6799e99ea3bb4763a9190a35050565b610472610653565b73ffffffffffffffffffffffffffffffffffffffff81166104bf576040517f911f6bec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f057829294de8b35baa4c034fc338afc6ecb2eb9b3035615c44100d80ecc93db790600090a250565b610536610653565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915561059960005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bb565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556102cd816105de565b803573ffffffffffffffffffffffffffffffffffffffff8116811461072957600080fd5b919050565b60006020828403121561074057600080fd5b61074982610705565b9392505050565b6000806040838503121561076357600080fd5b61076c83610705565b915061077a60208401610705565b9050925092905056fea164736f6c6343000811000a",
    36  }
    37  
    38  // CommunityOwnerTokenRegistryABI is the input ABI used to generate the binding from.
    39  // Deprecated: Use CommunityOwnerTokenRegistryMetaData.ABI instead.
    40  var CommunityOwnerTokenRegistryABI = CommunityOwnerTokenRegistryMetaData.ABI
    41  
    42  // CommunityOwnerTokenRegistryBin is the compiled bytecode used for deploying new contracts.
    43  // Deprecated: Use CommunityOwnerTokenRegistryMetaData.Bin instead.
    44  var CommunityOwnerTokenRegistryBin = CommunityOwnerTokenRegistryMetaData.Bin
    45  
    46  // DeployCommunityOwnerTokenRegistry deploys a new Ethereum contract, binding an instance of CommunityOwnerTokenRegistry to it.
    47  func DeployCommunityOwnerTokenRegistry(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *CommunityOwnerTokenRegistry, error) {
    48  	parsed, err := CommunityOwnerTokenRegistryMetaData.GetAbi()
    49  	if err != nil {
    50  		return common.Address{}, nil, nil, err
    51  	}
    52  	if parsed == nil {
    53  		return common.Address{}, nil, nil, errors.New("GetABI returned nil")
    54  	}
    55  
    56  	address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(CommunityOwnerTokenRegistryBin), backend)
    57  	if err != nil {
    58  		return common.Address{}, nil, nil, err
    59  	}
    60  	return address, tx, &CommunityOwnerTokenRegistry{CommunityOwnerTokenRegistryCaller: CommunityOwnerTokenRegistryCaller{contract: contract}, CommunityOwnerTokenRegistryTransactor: CommunityOwnerTokenRegistryTransactor{contract: contract}, CommunityOwnerTokenRegistryFilterer: CommunityOwnerTokenRegistryFilterer{contract: contract}}, nil
    61  }
    62  
    63  // CommunityOwnerTokenRegistry is an auto generated Go binding around an Ethereum contract.
    64  type CommunityOwnerTokenRegistry struct {
    65  	CommunityOwnerTokenRegistryCaller     // Read-only binding to the contract
    66  	CommunityOwnerTokenRegistryTransactor // Write-only binding to the contract
    67  	CommunityOwnerTokenRegistryFilterer   // Log filterer for contract events
    68  }
    69  
    70  // CommunityOwnerTokenRegistryCaller is an auto generated read-only Go binding around an Ethereum contract.
    71  type CommunityOwnerTokenRegistryCaller struct {
    72  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    73  }
    74  
    75  // CommunityOwnerTokenRegistryTransactor is an auto generated write-only Go binding around an Ethereum contract.
    76  type CommunityOwnerTokenRegistryTransactor struct {
    77  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    78  }
    79  
    80  // CommunityOwnerTokenRegistryFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    81  type CommunityOwnerTokenRegistryFilterer struct {
    82  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    83  }
    84  
    85  // CommunityOwnerTokenRegistrySession is an auto generated Go binding around an Ethereum contract,
    86  // with pre-set call and transact options.
    87  type CommunityOwnerTokenRegistrySession struct {
    88  	Contract     *CommunityOwnerTokenRegistry // Generic contract binding to set the session for
    89  	CallOpts     bind.CallOpts                // Call options to use throughout this session
    90  	TransactOpts bind.TransactOpts            // Transaction auth options to use throughout this session
    91  }
    92  
    93  // CommunityOwnerTokenRegistryCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    94  // with pre-set call options.
    95  type CommunityOwnerTokenRegistryCallerSession struct {
    96  	Contract *CommunityOwnerTokenRegistryCaller // Generic contract caller binding to set the session for
    97  	CallOpts bind.CallOpts                      // Call options to use throughout this session
    98  }
    99  
   100  // CommunityOwnerTokenRegistryTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
   101  // with pre-set transact options.
   102  type CommunityOwnerTokenRegistryTransactorSession struct {
   103  	Contract     *CommunityOwnerTokenRegistryTransactor // Generic contract transactor binding to set the session for
   104  	TransactOpts bind.TransactOpts                      // Transaction auth options to use throughout this session
   105  }
   106  
   107  // CommunityOwnerTokenRegistryRaw is an auto generated low-level Go binding around an Ethereum contract.
   108  type CommunityOwnerTokenRegistryRaw struct {
   109  	Contract *CommunityOwnerTokenRegistry // Generic contract binding to access the raw methods on
   110  }
   111  
   112  // CommunityOwnerTokenRegistryCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   113  type CommunityOwnerTokenRegistryCallerRaw struct {
   114  	Contract *CommunityOwnerTokenRegistryCaller // Generic read-only contract binding to access the raw methods on
   115  }
   116  
   117  // CommunityOwnerTokenRegistryTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   118  type CommunityOwnerTokenRegistryTransactorRaw struct {
   119  	Contract *CommunityOwnerTokenRegistryTransactor // Generic write-only contract binding to access the raw methods on
   120  }
   121  
   122  // NewCommunityOwnerTokenRegistry creates a new instance of CommunityOwnerTokenRegistry, bound to a specific deployed contract.
   123  func NewCommunityOwnerTokenRegistry(address common.Address, backend bind.ContractBackend) (*CommunityOwnerTokenRegistry, error) {
   124  	contract, err := bindCommunityOwnerTokenRegistry(address, backend, backend, backend)
   125  	if err != nil {
   126  		return nil, err
   127  	}
   128  	return &CommunityOwnerTokenRegistry{CommunityOwnerTokenRegistryCaller: CommunityOwnerTokenRegistryCaller{contract: contract}, CommunityOwnerTokenRegistryTransactor: CommunityOwnerTokenRegistryTransactor{contract: contract}, CommunityOwnerTokenRegistryFilterer: CommunityOwnerTokenRegistryFilterer{contract: contract}}, nil
   129  }
   130  
   131  // NewCommunityOwnerTokenRegistryCaller creates a new read-only instance of CommunityOwnerTokenRegistry, bound to a specific deployed contract.
   132  func NewCommunityOwnerTokenRegistryCaller(address common.Address, caller bind.ContractCaller) (*CommunityOwnerTokenRegistryCaller, error) {
   133  	contract, err := bindCommunityOwnerTokenRegistry(address, caller, nil, nil)
   134  	if err != nil {
   135  		return nil, err
   136  	}
   137  	return &CommunityOwnerTokenRegistryCaller{contract: contract}, nil
   138  }
   139  
   140  // NewCommunityOwnerTokenRegistryTransactor creates a new write-only instance of CommunityOwnerTokenRegistry, bound to a specific deployed contract.
   141  func NewCommunityOwnerTokenRegistryTransactor(address common.Address, transactor bind.ContractTransactor) (*CommunityOwnerTokenRegistryTransactor, error) {
   142  	contract, err := bindCommunityOwnerTokenRegistry(address, nil, transactor, nil)
   143  	if err != nil {
   144  		return nil, err
   145  	}
   146  	return &CommunityOwnerTokenRegistryTransactor{contract: contract}, nil
   147  }
   148  
   149  // NewCommunityOwnerTokenRegistryFilterer creates a new log filterer instance of CommunityOwnerTokenRegistry, bound to a specific deployed contract.
   150  func NewCommunityOwnerTokenRegistryFilterer(address common.Address, filterer bind.ContractFilterer) (*CommunityOwnerTokenRegistryFilterer, error) {
   151  	contract, err := bindCommunityOwnerTokenRegistry(address, nil, nil, filterer)
   152  	if err != nil {
   153  		return nil, err
   154  	}
   155  	return &CommunityOwnerTokenRegistryFilterer{contract: contract}, nil
   156  }
   157  
   158  // bindCommunityOwnerTokenRegistry binds a generic wrapper to an already deployed contract.
   159  func bindCommunityOwnerTokenRegistry(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   160  	parsed, err := CommunityOwnerTokenRegistryMetaData.GetAbi()
   161  	if err != nil {
   162  		return nil, err
   163  	}
   164  	return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil
   165  }
   166  
   167  // Call invokes the (constant) contract method with params as input values and
   168  // sets the output to result. The result type might be a single field for simple
   169  // returns, a slice of interfaces for anonymous returns and a struct for named
   170  // returns.
   171  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   172  	return _CommunityOwnerTokenRegistry.Contract.CommunityOwnerTokenRegistryCaller.contract.Call(opts, result, method, params...)
   173  }
   174  
   175  // Transfer initiates a plain transaction to move funds to the contract, calling
   176  // its default method if one is available.
   177  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   178  	return _CommunityOwnerTokenRegistry.Contract.CommunityOwnerTokenRegistryTransactor.contract.Transfer(opts)
   179  }
   180  
   181  // Transact invokes the (paid) contract method with params as input values.
   182  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   183  	return _CommunityOwnerTokenRegistry.Contract.CommunityOwnerTokenRegistryTransactor.contract.Transact(opts, method, params...)
   184  }
   185  
   186  // Call invokes the (constant) contract method with params as input values and
   187  // sets the output to result. The result type might be a single field for simple
   188  // returns, a slice of interfaces for anonymous returns and a struct for named
   189  // returns.
   190  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   191  	return _CommunityOwnerTokenRegistry.Contract.contract.Call(opts, result, method, params...)
   192  }
   193  
   194  // Transfer initiates a plain transaction to move funds to the contract, calling
   195  // its default method if one is available.
   196  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   197  	return _CommunityOwnerTokenRegistry.Contract.contract.Transfer(opts)
   198  }
   199  
   200  // Transact invokes the (paid) contract method with params as input values.
   201  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   202  	return _CommunityOwnerTokenRegistry.Contract.contract.Transact(opts, method, params...)
   203  }
   204  
   205  // CommunityAddressToTokenAddress is a free data retrieval call binding the contract method 0xb97e6ab9.
   206  //
   207  // Solidity: function communityAddressToTokenAddress(address ) view returns(address)
   208  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryCaller) CommunityAddressToTokenAddress(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) {
   209  	var out []interface{}
   210  	err := _CommunityOwnerTokenRegistry.contract.Call(opts, &out, "communityAddressToTokenAddress", arg0)
   211  
   212  	if err != nil {
   213  		return *new(common.Address), err
   214  	}
   215  
   216  	out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
   217  
   218  	return out0, err
   219  
   220  }
   221  
   222  // CommunityAddressToTokenAddress is a free data retrieval call binding the contract method 0xb97e6ab9.
   223  //
   224  // Solidity: function communityAddressToTokenAddress(address ) view returns(address)
   225  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistrySession) CommunityAddressToTokenAddress(arg0 common.Address) (common.Address, error) {
   226  	return _CommunityOwnerTokenRegistry.Contract.CommunityAddressToTokenAddress(&_CommunityOwnerTokenRegistry.CallOpts, arg0)
   227  }
   228  
   229  // CommunityAddressToTokenAddress is a free data retrieval call binding the contract method 0xb97e6ab9.
   230  //
   231  // Solidity: function communityAddressToTokenAddress(address ) view returns(address)
   232  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryCallerSession) CommunityAddressToTokenAddress(arg0 common.Address) (common.Address, error) {
   233  	return _CommunityOwnerTokenRegistry.Contract.CommunityAddressToTokenAddress(&_CommunityOwnerTokenRegistry.CallOpts, arg0)
   234  }
   235  
   236  // GetEntry is a free data retrieval call binding the contract method 0x7db6a4e4.
   237  //
   238  // Solidity: function getEntry(address _communityAddress) view returns(address)
   239  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryCaller) GetEntry(opts *bind.CallOpts, _communityAddress common.Address) (common.Address, error) {
   240  	var out []interface{}
   241  	err := _CommunityOwnerTokenRegistry.contract.Call(opts, &out, "getEntry", _communityAddress)
   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  // GetEntry is a free data retrieval call binding the contract method 0x7db6a4e4.
   254  //
   255  // Solidity: function getEntry(address _communityAddress) view returns(address)
   256  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistrySession) GetEntry(_communityAddress common.Address) (common.Address, error) {
   257  	return _CommunityOwnerTokenRegistry.Contract.GetEntry(&_CommunityOwnerTokenRegistry.CallOpts, _communityAddress)
   258  }
   259  
   260  // GetEntry is a free data retrieval call binding the contract method 0x7db6a4e4.
   261  //
   262  // Solidity: function getEntry(address _communityAddress) view returns(address)
   263  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryCallerSession) GetEntry(_communityAddress common.Address) (common.Address, error) {
   264  	return _CommunityOwnerTokenRegistry.Contract.GetEntry(&_CommunityOwnerTokenRegistry.CallOpts, _communityAddress)
   265  }
   266  
   267  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   268  //
   269  // Solidity: function owner() view returns(address)
   270  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
   271  	var out []interface{}
   272  	err := _CommunityOwnerTokenRegistry.contract.Call(opts, &out, "owner")
   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  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   285  //
   286  // Solidity: function owner() view returns(address)
   287  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistrySession) Owner() (common.Address, error) {
   288  	return _CommunityOwnerTokenRegistry.Contract.Owner(&_CommunityOwnerTokenRegistry.CallOpts)
   289  }
   290  
   291  // Owner is a free data retrieval call binding the contract method 0x8da5cb5b.
   292  //
   293  // Solidity: function owner() view returns(address)
   294  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryCallerSession) Owner() (common.Address, error) {
   295  	return _CommunityOwnerTokenRegistry.Contract.Owner(&_CommunityOwnerTokenRegistry.CallOpts)
   296  }
   297  
   298  // PendingOwner is a free data retrieval call binding the contract method 0xe30c3978.
   299  //
   300  // Solidity: function pendingOwner() view returns(address)
   301  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryCaller) PendingOwner(opts *bind.CallOpts) (common.Address, error) {
   302  	var out []interface{}
   303  	err := _CommunityOwnerTokenRegistry.contract.Call(opts, &out, "pendingOwner")
   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  // PendingOwner is a free data retrieval call binding the contract method 0xe30c3978.
   316  //
   317  // Solidity: function pendingOwner() view returns(address)
   318  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistrySession) PendingOwner() (common.Address, error) {
   319  	return _CommunityOwnerTokenRegistry.Contract.PendingOwner(&_CommunityOwnerTokenRegistry.CallOpts)
   320  }
   321  
   322  // PendingOwner is a free data retrieval call binding the contract method 0xe30c3978.
   323  //
   324  // Solidity: function pendingOwner() view returns(address)
   325  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryCallerSession) PendingOwner() (common.Address, error) {
   326  	return _CommunityOwnerTokenRegistry.Contract.PendingOwner(&_CommunityOwnerTokenRegistry.CallOpts)
   327  }
   328  
   329  // TokenDeployer is a free data retrieval call binding the contract method 0x2a2dae0a.
   330  //
   331  // Solidity: function tokenDeployer() view returns(address)
   332  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryCaller) TokenDeployer(opts *bind.CallOpts) (common.Address, error) {
   333  	var out []interface{}
   334  	err := _CommunityOwnerTokenRegistry.contract.Call(opts, &out, "tokenDeployer")
   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  // TokenDeployer is a free data retrieval call binding the contract method 0x2a2dae0a.
   347  //
   348  // Solidity: function tokenDeployer() view returns(address)
   349  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistrySession) TokenDeployer() (common.Address, error) {
   350  	return _CommunityOwnerTokenRegistry.Contract.TokenDeployer(&_CommunityOwnerTokenRegistry.CallOpts)
   351  }
   352  
   353  // TokenDeployer is a free data retrieval call binding the contract method 0x2a2dae0a.
   354  //
   355  // Solidity: function tokenDeployer() view returns(address)
   356  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryCallerSession) TokenDeployer() (common.Address, error) {
   357  	return _CommunityOwnerTokenRegistry.Contract.TokenDeployer(&_CommunityOwnerTokenRegistry.CallOpts)
   358  }
   359  
   360  // AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097.
   361  //
   362  // Solidity: function acceptOwnership() returns()
   363  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
   364  	return _CommunityOwnerTokenRegistry.contract.Transact(opts, "acceptOwnership")
   365  }
   366  
   367  // AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097.
   368  //
   369  // Solidity: function acceptOwnership() returns()
   370  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistrySession) AcceptOwnership() (*types.Transaction, error) {
   371  	return _CommunityOwnerTokenRegistry.Contract.AcceptOwnership(&_CommunityOwnerTokenRegistry.TransactOpts)
   372  }
   373  
   374  // AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097.
   375  //
   376  // Solidity: function acceptOwnership() returns()
   377  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryTransactorSession) AcceptOwnership() (*types.Transaction, error) {
   378  	return _CommunityOwnerTokenRegistry.Contract.AcceptOwnership(&_CommunityOwnerTokenRegistry.TransactOpts)
   379  }
   380  
   381  // AddEntry is a paid mutator transaction binding the contract method 0xa7a95840.
   382  //
   383  // Solidity: function addEntry(address _communityAddress, address _tokenAddress) returns()
   384  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryTransactor) AddEntry(opts *bind.TransactOpts, _communityAddress common.Address, _tokenAddress common.Address) (*types.Transaction, error) {
   385  	return _CommunityOwnerTokenRegistry.contract.Transact(opts, "addEntry", _communityAddress, _tokenAddress)
   386  }
   387  
   388  // AddEntry is a paid mutator transaction binding the contract method 0xa7a95840.
   389  //
   390  // Solidity: function addEntry(address _communityAddress, address _tokenAddress) returns()
   391  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistrySession) AddEntry(_communityAddress common.Address, _tokenAddress common.Address) (*types.Transaction, error) {
   392  	return _CommunityOwnerTokenRegistry.Contract.AddEntry(&_CommunityOwnerTokenRegistry.TransactOpts, _communityAddress, _tokenAddress)
   393  }
   394  
   395  // AddEntry is a paid mutator transaction binding the contract method 0xa7a95840.
   396  //
   397  // Solidity: function addEntry(address _communityAddress, address _tokenAddress) returns()
   398  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryTransactorSession) AddEntry(_communityAddress common.Address, _tokenAddress common.Address) (*types.Transaction, error) {
   399  	return _CommunityOwnerTokenRegistry.Contract.AddEntry(&_CommunityOwnerTokenRegistry.TransactOpts, _communityAddress, _tokenAddress)
   400  }
   401  
   402  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   403  //
   404  // Solidity: function renounceOwnership() returns()
   405  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
   406  	return _CommunityOwnerTokenRegistry.contract.Transact(opts, "renounceOwnership")
   407  }
   408  
   409  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   410  //
   411  // Solidity: function renounceOwnership() returns()
   412  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistrySession) RenounceOwnership() (*types.Transaction, error) {
   413  	return _CommunityOwnerTokenRegistry.Contract.RenounceOwnership(&_CommunityOwnerTokenRegistry.TransactOpts)
   414  }
   415  
   416  // RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6.
   417  //
   418  // Solidity: function renounceOwnership() returns()
   419  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryTransactorSession) RenounceOwnership() (*types.Transaction, error) {
   420  	return _CommunityOwnerTokenRegistry.Contract.RenounceOwnership(&_CommunityOwnerTokenRegistry.TransactOpts)
   421  }
   422  
   423  // SetCommunityTokenDeployerAddress is a paid mutator transaction binding the contract method 0xd1f7c48a.
   424  //
   425  // Solidity: function setCommunityTokenDeployerAddress(address _tokenDeployer) returns()
   426  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryTransactor) SetCommunityTokenDeployerAddress(opts *bind.TransactOpts, _tokenDeployer common.Address) (*types.Transaction, error) {
   427  	return _CommunityOwnerTokenRegistry.contract.Transact(opts, "setCommunityTokenDeployerAddress", _tokenDeployer)
   428  }
   429  
   430  // SetCommunityTokenDeployerAddress is a paid mutator transaction binding the contract method 0xd1f7c48a.
   431  //
   432  // Solidity: function setCommunityTokenDeployerAddress(address _tokenDeployer) returns()
   433  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistrySession) SetCommunityTokenDeployerAddress(_tokenDeployer common.Address) (*types.Transaction, error) {
   434  	return _CommunityOwnerTokenRegistry.Contract.SetCommunityTokenDeployerAddress(&_CommunityOwnerTokenRegistry.TransactOpts, _tokenDeployer)
   435  }
   436  
   437  // SetCommunityTokenDeployerAddress is a paid mutator transaction binding the contract method 0xd1f7c48a.
   438  //
   439  // Solidity: function setCommunityTokenDeployerAddress(address _tokenDeployer) returns()
   440  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryTransactorSession) SetCommunityTokenDeployerAddress(_tokenDeployer common.Address) (*types.Transaction, error) {
   441  	return _CommunityOwnerTokenRegistry.Contract.SetCommunityTokenDeployerAddress(&_CommunityOwnerTokenRegistry.TransactOpts, _tokenDeployer)
   442  }
   443  
   444  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   445  //
   446  // Solidity: function transferOwnership(address newOwner) returns()
   447  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) {
   448  	return _CommunityOwnerTokenRegistry.contract.Transact(opts, "transferOwnership", newOwner)
   449  }
   450  
   451  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   452  //
   453  // Solidity: function transferOwnership(address newOwner) returns()
   454  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistrySession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   455  	return _CommunityOwnerTokenRegistry.Contract.TransferOwnership(&_CommunityOwnerTokenRegistry.TransactOpts, newOwner)
   456  }
   457  
   458  // TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b.
   459  //
   460  // Solidity: function transferOwnership(address newOwner) returns()
   461  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) {
   462  	return _CommunityOwnerTokenRegistry.Contract.TransferOwnership(&_CommunityOwnerTokenRegistry.TransactOpts, newOwner)
   463  }
   464  
   465  // CommunityOwnerTokenRegistryAddEntryIterator is returned from FilterAddEntry and is used to iterate over the raw logs and unpacked data for AddEntry events raised by the CommunityOwnerTokenRegistry contract.
   466  type CommunityOwnerTokenRegistryAddEntryIterator struct {
   467  	Event *CommunityOwnerTokenRegistryAddEntry // Event containing the contract specifics and raw log
   468  
   469  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   470  	event    string              // Event name to use for unpacking event data
   471  
   472  	logs chan types.Log        // Log channel receiving the found contract events
   473  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   474  	done bool                  // Whether the subscription completed delivering logs
   475  	fail error                 // Occurred error to stop iteration
   476  }
   477  
   478  // Next advances the iterator to the subsequent event, returning whether there
   479  // are any more events found. In case of a retrieval or parsing error, false is
   480  // returned and Error() can be queried for the exact failure.
   481  func (it *CommunityOwnerTokenRegistryAddEntryIterator) Next() bool {
   482  	// If the iterator failed, stop iterating
   483  	if it.fail != nil {
   484  		return false
   485  	}
   486  	// If the iterator completed, deliver directly whatever's available
   487  	if it.done {
   488  		select {
   489  		case log := <-it.logs:
   490  			it.Event = new(CommunityOwnerTokenRegistryAddEntry)
   491  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   492  				it.fail = err
   493  				return false
   494  			}
   495  			it.Event.Raw = log
   496  			return true
   497  
   498  		default:
   499  			return false
   500  		}
   501  	}
   502  	// Iterator still in progress, wait for either a data or an error event
   503  	select {
   504  	case log := <-it.logs:
   505  		it.Event = new(CommunityOwnerTokenRegistryAddEntry)
   506  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   507  			it.fail = err
   508  			return false
   509  		}
   510  		it.Event.Raw = log
   511  		return true
   512  
   513  	case err := <-it.sub.Err():
   514  		it.done = true
   515  		it.fail = err
   516  		return it.Next()
   517  	}
   518  }
   519  
   520  // Error returns any retrieval or parsing error occurred during filtering.
   521  func (it *CommunityOwnerTokenRegistryAddEntryIterator) Error() error {
   522  	return it.fail
   523  }
   524  
   525  // Close terminates the iteration process, releasing any pending underlying
   526  // resources.
   527  func (it *CommunityOwnerTokenRegistryAddEntryIterator) Close() error {
   528  	it.sub.Unsubscribe()
   529  	return nil
   530  }
   531  
   532  // CommunityOwnerTokenRegistryAddEntry represents a AddEntry event raised by the CommunityOwnerTokenRegistry contract.
   533  type CommunityOwnerTokenRegistryAddEntry struct {
   534  	Arg0 common.Address
   535  	Arg1 common.Address
   536  	Raw  types.Log // Blockchain specific contextual infos
   537  }
   538  
   539  // FilterAddEntry is a free log retrieval operation binding the contract event 0x4bc4774424bf8749f142d7c1df17ee73cf36394616f38dd6799e99ea3bb4763a.
   540  //
   541  // Solidity: event AddEntry(address indexed arg0, address indexed arg1)
   542  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryFilterer) FilterAddEntry(opts *bind.FilterOpts, arg0 []common.Address, arg1 []common.Address) (*CommunityOwnerTokenRegistryAddEntryIterator, error) {
   543  
   544  	var arg0Rule []interface{}
   545  	for _, arg0Item := range arg0 {
   546  		arg0Rule = append(arg0Rule, arg0Item)
   547  	}
   548  	var arg1Rule []interface{}
   549  	for _, arg1Item := range arg1 {
   550  		arg1Rule = append(arg1Rule, arg1Item)
   551  	}
   552  
   553  	logs, sub, err := _CommunityOwnerTokenRegistry.contract.FilterLogs(opts, "AddEntry", arg0Rule, arg1Rule)
   554  	if err != nil {
   555  		return nil, err
   556  	}
   557  	return &CommunityOwnerTokenRegistryAddEntryIterator{contract: _CommunityOwnerTokenRegistry.contract, event: "AddEntry", logs: logs, sub: sub}, nil
   558  }
   559  
   560  // WatchAddEntry is a free log subscription operation binding the contract event 0x4bc4774424bf8749f142d7c1df17ee73cf36394616f38dd6799e99ea3bb4763a.
   561  //
   562  // Solidity: event AddEntry(address indexed arg0, address indexed arg1)
   563  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryFilterer) WatchAddEntry(opts *bind.WatchOpts, sink chan<- *CommunityOwnerTokenRegistryAddEntry, arg0 []common.Address, arg1 []common.Address) (event.Subscription, error) {
   564  
   565  	var arg0Rule []interface{}
   566  	for _, arg0Item := range arg0 {
   567  		arg0Rule = append(arg0Rule, arg0Item)
   568  	}
   569  	var arg1Rule []interface{}
   570  	for _, arg1Item := range arg1 {
   571  		arg1Rule = append(arg1Rule, arg1Item)
   572  	}
   573  
   574  	logs, sub, err := _CommunityOwnerTokenRegistry.contract.WatchLogs(opts, "AddEntry", arg0Rule, arg1Rule)
   575  	if err != nil {
   576  		return nil, err
   577  	}
   578  	return event.NewSubscription(func(quit <-chan struct{}) error {
   579  		defer sub.Unsubscribe()
   580  		for {
   581  			select {
   582  			case log := <-logs:
   583  				// New log arrived, parse the event and forward to the user
   584  				event := new(CommunityOwnerTokenRegistryAddEntry)
   585  				if err := _CommunityOwnerTokenRegistry.contract.UnpackLog(event, "AddEntry", log); err != nil {
   586  					return err
   587  				}
   588  				event.Raw = log
   589  
   590  				select {
   591  				case sink <- event:
   592  				case err := <-sub.Err():
   593  					return err
   594  				case <-quit:
   595  					return nil
   596  				}
   597  			case err := <-sub.Err():
   598  				return err
   599  			case <-quit:
   600  				return nil
   601  			}
   602  		}
   603  	}), nil
   604  }
   605  
   606  // ParseAddEntry is a log parse operation binding the contract event 0x4bc4774424bf8749f142d7c1df17ee73cf36394616f38dd6799e99ea3bb4763a.
   607  //
   608  // Solidity: event AddEntry(address indexed arg0, address indexed arg1)
   609  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryFilterer) ParseAddEntry(log types.Log) (*CommunityOwnerTokenRegistryAddEntry, error) {
   610  	event := new(CommunityOwnerTokenRegistryAddEntry)
   611  	if err := _CommunityOwnerTokenRegistry.contract.UnpackLog(event, "AddEntry", log); err != nil {
   612  		return nil, err
   613  	}
   614  	event.Raw = log
   615  	return event, nil
   616  }
   617  
   618  // CommunityOwnerTokenRegistryOwnershipTransferStartedIterator is returned from FilterOwnershipTransferStarted and is used to iterate over the raw logs and unpacked data for OwnershipTransferStarted events raised by the CommunityOwnerTokenRegistry contract.
   619  type CommunityOwnerTokenRegistryOwnershipTransferStartedIterator struct {
   620  	Event *CommunityOwnerTokenRegistryOwnershipTransferStarted // Event containing the contract specifics and raw log
   621  
   622  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   623  	event    string              // Event name to use for unpacking event data
   624  
   625  	logs chan types.Log        // Log channel receiving the found contract events
   626  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   627  	done bool                  // Whether the subscription completed delivering logs
   628  	fail error                 // Occurred error to stop iteration
   629  }
   630  
   631  // Next advances the iterator to the subsequent event, returning whether there
   632  // are any more events found. In case of a retrieval or parsing error, false is
   633  // returned and Error() can be queried for the exact failure.
   634  func (it *CommunityOwnerTokenRegistryOwnershipTransferStartedIterator) Next() bool {
   635  	// If the iterator failed, stop iterating
   636  	if it.fail != nil {
   637  		return false
   638  	}
   639  	// If the iterator completed, deliver directly whatever's available
   640  	if it.done {
   641  		select {
   642  		case log := <-it.logs:
   643  			it.Event = new(CommunityOwnerTokenRegistryOwnershipTransferStarted)
   644  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   645  				it.fail = err
   646  				return false
   647  			}
   648  			it.Event.Raw = log
   649  			return true
   650  
   651  		default:
   652  			return false
   653  		}
   654  	}
   655  	// Iterator still in progress, wait for either a data or an error event
   656  	select {
   657  	case log := <-it.logs:
   658  		it.Event = new(CommunityOwnerTokenRegistryOwnershipTransferStarted)
   659  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   660  			it.fail = err
   661  			return false
   662  		}
   663  		it.Event.Raw = log
   664  		return true
   665  
   666  	case err := <-it.sub.Err():
   667  		it.done = true
   668  		it.fail = err
   669  		return it.Next()
   670  	}
   671  }
   672  
   673  // Error returns any retrieval or parsing error occurred during filtering.
   674  func (it *CommunityOwnerTokenRegistryOwnershipTransferStartedIterator) Error() error {
   675  	return it.fail
   676  }
   677  
   678  // Close terminates the iteration process, releasing any pending underlying
   679  // resources.
   680  func (it *CommunityOwnerTokenRegistryOwnershipTransferStartedIterator) Close() error {
   681  	it.sub.Unsubscribe()
   682  	return nil
   683  }
   684  
   685  // CommunityOwnerTokenRegistryOwnershipTransferStarted represents a OwnershipTransferStarted event raised by the CommunityOwnerTokenRegistry contract.
   686  type CommunityOwnerTokenRegistryOwnershipTransferStarted struct {
   687  	PreviousOwner common.Address
   688  	NewOwner      common.Address
   689  	Raw           types.Log // Blockchain specific contextual infos
   690  }
   691  
   692  // FilterOwnershipTransferStarted is a free log retrieval operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700.
   693  //
   694  // Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
   695  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryFilterer) FilterOwnershipTransferStarted(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*CommunityOwnerTokenRegistryOwnershipTransferStartedIterator, error) {
   696  
   697  	var previousOwnerRule []interface{}
   698  	for _, previousOwnerItem := range previousOwner {
   699  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
   700  	}
   701  	var newOwnerRule []interface{}
   702  	for _, newOwnerItem := range newOwner {
   703  		newOwnerRule = append(newOwnerRule, newOwnerItem)
   704  	}
   705  
   706  	logs, sub, err := _CommunityOwnerTokenRegistry.contract.FilterLogs(opts, "OwnershipTransferStarted", previousOwnerRule, newOwnerRule)
   707  	if err != nil {
   708  		return nil, err
   709  	}
   710  	return &CommunityOwnerTokenRegistryOwnershipTransferStartedIterator{contract: _CommunityOwnerTokenRegistry.contract, event: "OwnershipTransferStarted", logs: logs, sub: sub}, nil
   711  }
   712  
   713  // WatchOwnershipTransferStarted is a free log subscription operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700.
   714  //
   715  // Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
   716  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryFilterer) WatchOwnershipTransferStarted(opts *bind.WatchOpts, sink chan<- *CommunityOwnerTokenRegistryOwnershipTransferStarted, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
   717  
   718  	var previousOwnerRule []interface{}
   719  	for _, previousOwnerItem := range previousOwner {
   720  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
   721  	}
   722  	var newOwnerRule []interface{}
   723  	for _, newOwnerItem := range newOwner {
   724  		newOwnerRule = append(newOwnerRule, newOwnerItem)
   725  	}
   726  
   727  	logs, sub, err := _CommunityOwnerTokenRegistry.contract.WatchLogs(opts, "OwnershipTransferStarted", previousOwnerRule, newOwnerRule)
   728  	if err != nil {
   729  		return nil, err
   730  	}
   731  	return event.NewSubscription(func(quit <-chan struct{}) error {
   732  		defer sub.Unsubscribe()
   733  		for {
   734  			select {
   735  			case log := <-logs:
   736  				// New log arrived, parse the event and forward to the user
   737  				event := new(CommunityOwnerTokenRegistryOwnershipTransferStarted)
   738  				if err := _CommunityOwnerTokenRegistry.contract.UnpackLog(event, "OwnershipTransferStarted", log); err != nil {
   739  					return err
   740  				}
   741  				event.Raw = log
   742  
   743  				select {
   744  				case sink <- event:
   745  				case err := <-sub.Err():
   746  					return err
   747  				case <-quit:
   748  					return nil
   749  				}
   750  			case err := <-sub.Err():
   751  				return err
   752  			case <-quit:
   753  				return nil
   754  			}
   755  		}
   756  	}), nil
   757  }
   758  
   759  // ParseOwnershipTransferStarted is a log parse operation binding the contract event 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700.
   760  //
   761  // Solidity: event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
   762  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryFilterer) ParseOwnershipTransferStarted(log types.Log) (*CommunityOwnerTokenRegistryOwnershipTransferStarted, error) {
   763  	event := new(CommunityOwnerTokenRegistryOwnershipTransferStarted)
   764  	if err := _CommunityOwnerTokenRegistry.contract.UnpackLog(event, "OwnershipTransferStarted", log); err != nil {
   765  		return nil, err
   766  	}
   767  	event.Raw = log
   768  	return event, nil
   769  }
   770  
   771  // CommunityOwnerTokenRegistryOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the CommunityOwnerTokenRegistry contract.
   772  type CommunityOwnerTokenRegistryOwnershipTransferredIterator struct {
   773  	Event *CommunityOwnerTokenRegistryOwnershipTransferred // Event containing the contract specifics and raw log
   774  
   775  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   776  	event    string              // Event name to use for unpacking event data
   777  
   778  	logs chan types.Log        // Log channel receiving the found contract events
   779  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   780  	done bool                  // Whether the subscription completed delivering logs
   781  	fail error                 // Occurred error to stop iteration
   782  }
   783  
   784  // Next advances the iterator to the subsequent event, returning whether there
   785  // are any more events found. In case of a retrieval or parsing error, false is
   786  // returned and Error() can be queried for the exact failure.
   787  func (it *CommunityOwnerTokenRegistryOwnershipTransferredIterator) Next() bool {
   788  	// If the iterator failed, stop iterating
   789  	if it.fail != nil {
   790  		return false
   791  	}
   792  	// If the iterator completed, deliver directly whatever's available
   793  	if it.done {
   794  		select {
   795  		case log := <-it.logs:
   796  			it.Event = new(CommunityOwnerTokenRegistryOwnershipTransferred)
   797  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   798  				it.fail = err
   799  				return false
   800  			}
   801  			it.Event.Raw = log
   802  			return true
   803  
   804  		default:
   805  			return false
   806  		}
   807  	}
   808  	// Iterator still in progress, wait for either a data or an error event
   809  	select {
   810  	case log := <-it.logs:
   811  		it.Event = new(CommunityOwnerTokenRegistryOwnershipTransferred)
   812  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   813  			it.fail = err
   814  			return false
   815  		}
   816  		it.Event.Raw = log
   817  		return true
   818  
   819  	case err := <-it.sub.Err():
   820  		it.done = true
   821  		it.fail = err
   822  		return it.Next()
   823  	}
   824  }
   825  
   826  // Error returns any retrieval or parsing error occurred during filtering.
   827  func (it *CommunityOwnerTokenRegistryOwnershipTransferredIterator) Error() error {
   828  	return it.fail
   829  }
   830  
   831  // Close terminates the iteration process, releasing any pending underlying
   832  // resources.
   833  func (it *CommunityOwnerTokenRegistryOwnershipTransferredIterator) Close() error {
   834  	it.sub.Unsubscribe()
   835  	return nil
   836  }
   837  
   838  // CommunityOwnerTokenRegistryOwnershipTransferred represents a OwnershipTransferred event raised by the CommunityOwnerTokenRegistry contract.
   839  type CommunityOwnerTokenRegistryOwnershipTransferred struct {
   840  	PreviousOwner common.Address
   841  	NewOwner      common.Address
   842  	Raw           types.Log // Blockchain specific contextual infos
   843  }
   844  
   845  // FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
   846  //
   847  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
   848  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*CommunityOwnerTokenRegistryOwnershipTransferredIterator, error) {
   849  
   850  	var previousOwnerRule []interface{}
   851  	for _, previousOwnerItem := range previousOwner {
   852  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
   853  	}
   854  	var newOwnerRule []interface{}
   855  	for _, newOwnerItem := range newOwner {
   856  		newOwnerRule = append(newOwnerRule, newOwnerItem)
   857  	}
   858  
   859  	logs, sub, err := _CommunityOwnerTokenRegistry.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
   860  	if err != nil {
   861  		return nil, err
   862  	}
   863  	return &CommunityOwnerTokenRegistryOwnershipTransferredIterator{contract: _CommunityOwnerTokenRegistry.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil
   864  }
   865  
   866  // WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
   867  //
   868  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
   869  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *CommunityOwnerTokenRegistryOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) {
   870  
   871  	var previousOwnerRule []interface{}
   872  	for _, previousOwnerItem := range previousOwner {
   873  		previousOwnerRule = append(previousOwnerRule, previousOwnerItem)
   874  	}
   875  	var newOwnerRule []interface{}
   876  	for _, newOwnerItem := range newOwner {
   877  		newOwnerRule = append(newOwnerRule, newOwnerItem)
   878  	}
   879  
   880  	logs, sub, err := _CommunityOwnerTokenRegistry.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule)
   881  	if err != nil {
   882  		return nil, err
   883  	}
   884  	return event.NewSubscription(func(quit <-chan struct{}) error {
   885  		defer sub.Unsubscribe()
   886  		for {
   887  			select {
   888  			case log := <-logs:
   889  				// New log arrived, parse the event and forward to the user
   890  				event := new(CommunityOwnerTokenRegistryOwnershipTransferred)
   891  				if err := _CommunityOwnerTokenRegistry.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
   892  					return err
   893  				}
   894  				event.Raw = log
   895  
   896  				select {
   897  				case sink <- event:
   898  				case err := <-sub.Err():
   899  					return err
   900  				case <-quit:
   901  					return nil
   902  				}
   903  			case err := <-sub.Err():
   904  				return err
   905  			case <-quit:
   906  				return nil
   907  			}
   908  		}
   909  	}), nil
   910  }
   911  
   912  // ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0.
   913  //
   914  // Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
   915  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryFilterer) ParseOwnershipTransferred(log types.Log) (*CommunityOwnerTokenRegistryOwnershipTransferred, error) {
   916  	event := new(CommunityOwnerTokenRegistryOwnershipTransferred)
   917  	if err := _CommunityOwnerTokenRegistry.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil {
   918  		return nil, err
   919  	}
   920  	event.Raw = log
   921  	return event, nil
   922  }
   923  
   924  // CommunityOwnerTokenRegistryTokenDeployerAddressChangeIterator is returned from FilterTokenDeployerAddressChange and is used to iterate over the raw logs and unpacked data for TokenDeployerAddressChange events raised by the CommunityOwnerTokenRegistry contract.
   925  type CommunityOwnerTokenRegistryTokenDeployerAddressChangeIterator struct {
   926  	Event *CommunityOwnerTokenRegistryTokenDeployerAddressChange // Event containing the contract specifics and raw log
   927  
   928  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   929  	event    string              // Event name to use for unpacking event data
   930  
   931  	logs chan types.Log        // Log channel receiving the found contract events
   932  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   933  	done bool                  // Whether the subscription completed delivering logs
   934  	fail error                 // Occurred error to stop iteration
   935  }
   936  
   937  // Next advances the iterator to the subsequent event, returning whether there
   938  // are any more events found. In case of a retrieval or parsing error, false is
   939  // returned and Error() can be queried for the exact failure.
   940  func (it *CommunityOwnerTokenRegistryTokenDeployerAddressChangeIterator) Next() bool {
   941  	// If the iterator failed, stop iterating
   942  	if it.fail != nil {
   943  		return false
   944  	}
   945  	// If the iterator completed, deliver directly whatever's available
   946  	if it.done {
   947  		select {
   948  		case log := <-it.logs:
   949  			it.Event = new(CommunityOwnerTokenRegistryTokenDeployerAddressChange)
   950  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   951  				it.fail = err
   952  				return false
   953  			}
   954  			it.Event.Raw = log
   955  			return true
   956  
   957  		default:
   958  			return false
   959  		}
   960  	}
   961  	// Iterator still in progress, wait for either a data or an error event
   962  	select {
   963  	case log := <-it.logs:
   964  		it.Event = new(CommunityOwnerTokenRegistryTokenDeployerAddressChange)
   965  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   966  			it.fail = err
   967  			return false
   968  		}
   969  		it.Event.Raw = log
   970  		return true
   971  
   972  	case err := <-it.sub.Err():
   973  		it.done = true
   974  		it.fail = err
   975  		return it.Next()
   976  	}
   977  }
   978  
   979  // Error returns any retrieval or parsing error occurred during filtering.
   980  func (it *CommunityOwnerTokenRegistryTokenDeployerAddressChangeIterator) Error() error {
   981  	return it.fail
   982  }
   983  
   984  // Close terminates the iteration process, releasing any pending underlying
   985  // resources.
   986  func (it *CommunityOwnerTokenRegistryTokenDeployerAddressChangeIterator) Close() error {
   987  	it.sub.Unsubscribe()
   988  	return nil
   989  }
   990  
   991  // CommunityOwnerTokenRegistryTokenDeployerAddressChange represents a TokenDeployerAddressChange event raised by the CommunityOwnerTokenRegistry contract.
   992  type CommunityOwnerTokenRegistryTokenDeployerAddressChange struct {
   993  	Arg0 common.Address
   994  	Raw  types.Log // Blockchain specific contextual infos
   995  }
   996  
   997  // FilterTokenDeployerAddressChange is a free log retrieval operation binding the contract event 0x057829294de8b35baa4c034fc338afc6ecb2eb9b3035615c44100d80ecc93db7.
   998  //
   999  // Solidity: event TokenDeployerAddressChange(address indexed arg0)
  1000  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryFilterer) FilterTokenDeployerAddressChange(opts *bind.FilterOpts, arg0 []common.Address) (*CommunityOwnerTokenRegistryTokenDeployerAddressChangeIterator, error) {
  1001  
  1002  	var arg0Rule []interface{}
  1003  	for _, arg0Item := range arg0 {
  1004  		arg0Rule = append(arg0Rule, arg0Item)
  1005  	}
  1006  
  1007  	logs, sub, err := _CommunityOwnerTokenRegistry.contract.FilterLogs(opts, "TokenDeployerAddressChange", arg0Rule)
  1008  	if err != nil {
  1009  		return nil, err
  1010  	}
  1011  	return &CommunityOwnerTokenRegistryTokenDeployerAddressChangeIterator{contract: _CommunityOwnerTokenRegistry.contract, event: "TokenDeployerAddressChange", logs: logs, sub: sub}, nil
  1012  }
  1013  
  1014  // WatchTokenDeployerAddressChange is a free log subscription operation binding the contract event 0x057829294de8b35baa4c034fc338afc6ecb2eb9b3035615c44100d80ecc93db7.
  1015  //
  1016  // Solidity: event TokenDeployerAddressChange(address indexed arg0)
  1017  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryFilterer) WatchTokenDeployerAddressChange(opts *bind.WatchOpts, sink chan<- *CommunityOwnerTokenRegistryTokenDeployerAddressChange, arg0 []common.Address) (event.Subscription, error) {
  1018  
  1019  	var arg0Rule []interface{}
  1020  	for _, arg0Item := range arg0 {
  1021  		arg0Rule = append(arg0Rule, arg0Item)
  1022  	}
  1023  
  1024  	logs, sub, err := _CommunityOwnerTokenRegistry.contract.WatchLogs(opts, "TokenDeployerAddressChange", arg0Rule)
  1025  	if err != nil {
  1026  		return nil, err
  1027  	}
  1028  	return event.NewSubscription(func(quit <-chan struct{}) error {
  1029  		defer sub.Unsubscribe()
  1030  		for {
  1031  			select {
  1032  			case log := <-logs:
  1033  				// New log arrived, parse the event and forward to the user
  1034  				event := new(CommunityOwnerTokenRegistryTokenDeployerAddressChange)
  1035  				if err := _CommunityOwnerTokenRegistry.contract.UnpackLog(event, "TokenDeployerAddressChange", log); err != nil {
  1036  					return err
  1037  				}
  1038  				event.Raw = log
  1039  
  1040  				select {
  1041  				case sink <- event:
  1042  				case err := <-sub.Err():
  1043  					return err
  1044  				case <-quit:
  1045  					return nil
  1046  				}
  1047  			case err := <-sub.Err():
  1048  				return err
  1049  			case <-quit:
  1050  				return nil
  1051  			}
  1052  		}
  1053  	}), nil
  1054  }
  1055  
  1056  // ParseTokenDeployerAddressChange is a log parse operation binding the contract event 0x057829294de8b35baa4c034fc338afc6ecb2eb9b3035615c44100d80ecc93db7.
  1057  //
  1058  // Solidity: event TokenDeployerAddressChange(address indexed arg0)
  1059  func (_CommunityOwnerTokenRegistry *CommunityOwnerTokenRegistryFilterer) ParseTokenDeployerAddressChange(log types.Log) (*CommunityOwnerTokenRegistryTokenDeployerAddressChange, error) {
  1060  	event := new(CommunityOwnerTokenRegistryTokenDeployerAddressChange)
  1061  	if err := _CommunityOwnerTokenRegistry.contract.UnpackLog(event, "TokenDeployerAddressChange", log); err != nil {
  1062  		return nil, err
  1063  	}
  1064  	event.Raw = log
  1065  	return event, nil
  1066  }