collectibles

package
v0.171.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2023 License: MPL-2.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EventCollectiblesOwnershipUpdateStarted           walletevent.EventType = "wallet-collectibles-ownership-update-started"
	EventCollectiblesOwnershipUpdatePartial           walletevent.EventType = "wallet-collectibles-ownership-update-partial"
	EventCollectiblesOwnershipUpdateFinished          walletevent.EventType = "wallet-collectibles-ownership-update-finished"
	EventCollectiblesOwnershipUpdateFinishedWithError walletevent.EventType = "wallet-collectibles-ownership-update-finished-with-error"
	EventCommunityCollectiblesReceived                walletevent.EventType = "wallet-collectibles-community-collectibles-received"

	EventOwnedCollectiblesFilteringDone walletevent.EventType = "wallet-owned-collectibles-filtering-done"
	EventGetCollectiblesDetailsDone     walletevent.EventType = "wallet-get-collectibles-details-done"
)

These events are used to notify the UI of state changes

View Source
const EventCollectiblesConnectionStatusChanged walletevent.EventType = "wallet-collectible-status-changed"
View Source
const InvalidTimestamp = int64(-1)

Variables

View Source
var (
	ErrAllProvidersFailedForChainID   = errors.New("all providers failed for chainID")
	ErrNoProvidersAvailableForChainID = errors.New("no providers available for chainID")
)

Functions

This section is empty.

Types

type CollectibleDataDB added in v0.163.4

type CollectibleDataDB struct {
	// contains filtered or unexported fields
}

func NewCollectibleDataDB added in v0.163.4

func NewCollectibleDataDB(sqlDb *sql.DB) *CollectibleDataDB

func (*CollectibleDataDB) GetData added in v0.163.4

func (*CollectibleDataDB) GetIDsNotInDB added in v0.163.4

func (*CollectibleDataDB) SetData added in v0.163.4

func (o *CollectibleDataDB) SetData(collectibles []thirdparty.CollectibleData) (err error)

type CollectibleDetails added in v0.162.15

type CollectibleDetails struct {
	ID                 thirdparty.CollectibleUniqueID        `json:"id"`
	Name               string                                `json:"name"`
	Description        string                                `json:"description"`
	ImageURL           string                                `json:"image_url"`
	AnimationURL       string                                `json:"animation_url"`
	AnimationMediaType string                                `json:"animation_media_type"`
	Traits             []thirdparty.CollectibleTrait         `json:"traits"`
	BackgroundColor    string                                `json:"background_color"`
	CollectionName     string                                `json:"collection_name"`
	CollectionSlug     string                                `json:"collection_slug"`
	CollectionImageURL string                                `json:"collection_image_url"`
	CommunityInfo      *thirdparty.CollectiblesCommunityInfo `json:"community_info,omitempty"`
}

Combined Collection+Collectible info, used to display a detailed view of a collectible

type CollectibleHeader added in v0.162.15

type CollectibleHeader struct {
	ID                 thirdparty.CollectibleUniqueID `json:"id"`
	Name               string                         `json:"name"`
	ImageURL           string                         `json:"image_url"`
	AnimationURL       string                         `json:"animation_url"`
	AnimationMediaType string                         `json:"animation_media_type"`
	BackgroundColor    string                         `json:"background_color"`
	CollectionName     string                         `json:"collection_name"`
	CollectionSlug     string                         `json:"collection_slug"`
	CollectionImageURL string                         `json:"collection_image_url"`
	CommunityHeader    *CommunityHeader               `json:"community_header,omitempty"`
}

Combined Collection+Collectible info, used to display a basic view of a collectible in a list

type CollectionDataDB added in v0.163.4

type CollectionDataDB struct {
	// contains filtered or unexported fields
}

func NewCollectionDataDB added in v0.163.4

func NewCollectionDataDB(sqlDb *sql.DB) *CollectionDataDB

func (*CollectionDataDB) GetData added in v0.163.4

func (*CollectionDataDB) GetIDsNotInDB added in v0.163.4

func (o *CollectionDataDB) GetIDsNotInDB(ids []thirdparty.ContractID) ([]thirdparty.ContractID, error)

func (*CollectionDataDB) SetData added in v0.163.4

func (o *CollectionDataDB) SetData(collections []thirdparty.CollectionData) (err error)

type CommunityCollectibleHeader added in v0.170.0

type CommunityCollectibleHeader struct {
	ID              thirdparty.CollectibleUniqueID `json:"id"`
	Name            string                         `json:"name"`
	CommunityHeader CommunityHeader                `json:"community_header"`
}

type CommunityHeader added in v0.167.5

type CommunityHeader struct {
	CommunityID     string                `json:"community_id"`
	CommunityName   string                `json:"community_name"`
	CommunityColor  string                `json:"community_color"`
	PrivilegesLevel token.PrivilegesLevel `json:"privileges_level"`
}

type Controller added in v0.170.0

type Controller struct {
	// contains filtered or unexported fields
}

func NewController added in v0.170.0

func NewController(
	db *sql.DB,
	walletFeed *event.Feed,
	accountsDB *accounts.Database,
	accountsFeed *event.Feed,
	settingsFeed *event.Feed,
	networkManager *network.Manager,
	manager *Manager) *Controller

func (*Controller) GetCommandState added in v0.170.0

func (c *Controller) GetCommandState(chainID walletCommon.ChainID, address common.Address) OwnershipState

func (*Controller) RefetchOwnedCollectibles added in v0.170.0

func (c *Controller) RefetchOwnedCollectibles()

func (*Controller) Start added in v0.170.0

func (c *Controller) Start()

func (*Controller) Stop added in v0.170.0

func (c *Controller) Stop()

type ErrorCode added in v0.162.13

type ErrorCode = int
const (
	ErrorCodeSuccess ErrorCode = iota + 1
	ErrorCodeTaskCanceled
	ErrorCodeFailed
)

type FilterOwnedCollectiblesResponse added in v0.162.13

type FilterOwnedCollectiblesResponse struct {
	Collectibles []CollectibleHeader `json:"collectibles"`
	Offset       int                 `json:"offset"`
	// Used to indicate that there might be more collectibles that were not returned
	// based on a simple heuristic
	HasMore         bool                                `json:"hasMore"`
	OwnershipStatus OwnershipStatusPerAddressAndChainID `json:"ownershipStatus"`
	ErrorCode       ErrorCode                           `json:"errorCode"`
}

type GetCollectiblesDetailsResponse added in v0.162.15

type GetCollectiblesDetailsResponse struct {
	Collectibles []CollectibleDetails `json:"collectibles"`
	ErrorCode    ErrorCode            `json:"errorCode"`
}

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

func NewManager

func NewManager(
	db *sql.DB,
	rpcClient *rpc.Client,
	contractOwnershipProviders []thirdparty.CollectibleContractOwnershipProvider,
	accountOwnershipProviders []thirdparty.CollectibleAccountOwnershipProvider,
	collectibleDataProviders []thirdparty.CollectibleDataProvider,
	collectionDataProviders []thirdparty.CollectionDataProvider,
	feed *event.Feed) *Manager

func (*Manager) FetchAllAssetsByOwner

func (o *Manager) FetchAllAssetsByOwner(chainID walletCommon.ChainID, owner common.Address, cursor string, limit int, providerID string) (*thirdparty.FullCollectibleDataContainer, error)

func (*Manager) FetchAllAssetsByOwnerAndContractAddress

func (o *Manager) FetchAllAssetsByOwnerAndContractAddress(chainID walletCommon.ChainID, owner common.Address, contractAddresses []common.Address, cursor string, limit int, providerID string) (*thirdparty.FullCollectibleDataContainer, error)

func (*Manager) FetchAssetsByCollectibleUniqueID added in v0.162.13

func (o *Manager) FetchAssetsByCollectibleUniqueID(uniqueIDs []thirdparty.CollectibleUniqueID) ([]thirdparty.FullCollectibleData, error)

func (*Manager) FetchBalancesByOwnerAndContractAddress added in v0.162.5

func (o *Manager) FetchBalancesByOwnerAndContractAddress(chainID walletCommon.ChainID, ownerAddress common.Address, contractAddresses []common.Address) (thirdparty.TokenBalancesPerContractAddress, error)

Need to combine different providers to support all needed ChainIDs

func (*Manager) FetchCollectibleCommunityInfo added in v0.167.5

func (o *Manager) FetchCollectibleCommunityInfo(communityID string, id thirdparty.CollectibleUniqueID) (*thirdparty.CollectiblesCommunityInfo, error)

func (*Manager) FetchCollectibleCommunityTraits added in v0.167.5

func (o *Manager) FetchCollectibleCommunityTraits(communityID string, id thirdparty.CollectibleUniqueID) ([]thirdparty.CollectibleTrait, error)

func (*Manager) FetchCollectibleOwnersByContractAddress added in v0.162.13

func (o *Manager) FetchCollectibleOwnersByContractAddress(chainID walletCommon.ChainID, contractAddress common.Address) (*thirdparty.CollectibleContractOwnership, error)

func (*Manager) FetchCollectibleOwnershipByOwner added in v0.162.13

func (o *Manager) FetchCollectibleOwnershipByOwner(chainID walletCommon.ChainID, owner common.Address, cursor string, limit int, providerID string) (*thirdparty.CollectibleOwnershipContainer, error)

func (*Manager) FetchCollectionsDataByContractID added in v0.162.15

func (o *Manager) FetchCollectionsDataByContractID(ids []thirdparty.ContractID) ([]thirdparty.CollectionData, error)

func (*Manager) ResetConnectionStatus added in v0.167.5

func (o *Manager) ResetConnectionStatus()

Reset connection status to trigger notifications on the next status update

func (*Manager) SetCommunityInfoProvider added in v0.167.5

func (o *Manager) SetCommunityInfoProvider(communityInfoProvider thirdparty.CollectibleCommunityInfoProvider)

func (*Manager) SetMetadataProvider added in v0.162.1

func (o *Manager) SetMetadataProvider(metadataProvider thirdparty.CollectibleMetadataProvider)

Used to break circular dependency, call once as soon as possible after initialization

type ManagerInterface added in v0.166.7

type ManagerInterface interface {
	FetchAssetsByCollectibleUniqueID(uniqueIDs []thirdparty.CollectibleUniqueID) ([]thirdparty.FullCollectibleData, error)
}

type OwnedCollectibles added in v0.170.0

type OwnedCollectibles struct {
	// contains filtered or unexported fields
}

type OwnedCollectiblesCb added in v0.170.0

type OwnedCollectiblesCb func(OwnedCollectibles)

type OwnershipDB added in v0.162.13

type OwnershipDB struct {
	// contains filtered or unexported fields
}

func NewOwnershipDB added in v0.162.13

func NewOwnershipDB(sqlDb *sql.DB) *OwnershipDB

func (*OwnershipDB) GetIDsNotInDB added in v0.170.0

func (o *OwnershipDB) GetIDsNotInDB(
	chainID w_common.ChainID,
	ownerAddress common.Address,
	newIDs []thirdparty.CollectibleUniqueID) ([]thirdparty.CollectibleUniqueID, error)

Returns the list of new IDs when comparing the given list of IDs with the ones in the DB. Call before Update for the result to be useful.

func (*OwnershipDB) GetLatestOwnershipUpdateTimestamp added in v0.167.5

func (o *OwnershipDB) GetLatestOwnershipUpdateTimestamp(chainID walletCommon.ChainID) (int64, error)

func (*OwnershipDB) GetOwnedCollectible added in v0.166.9

func (o *OwnershipDB) GetOwnedCollectible(chainID w_common.ChainID, ownerAddresses common.Address, contractAddress common.Address, tokenID *big.Int) (*thirdparty.CollectibleUniqueID, error)

func (*OwnershipDB) GetOwnedCollectibles added in v0.162.13

func (o *OwnershipDB) GetOwnedCollectibles(chainIDs []w_common.ChainID, ownerAddresses []common.Address, offset int, limit int) ([]thirdparty.CollectibleUniqueID, error)

func (*OwnershipDB) GetOwnershipUpdateTimestamp added in v0.166.11

func (o *OwnershipDB) GetOwnershipUpdateTimestamp(owner common.Address, chainID walletCommon.ChainID) (int64, error)

func (*OwnershipDB) Update added in v0.162.13

func (o *OwnershipDB) Update(chainID w_common.ChainID, ownerAddress common.Address, collectibles []thirdparty.CollectibleUniqueID, timestamp int64) (err error)

type OwnershipState added in v0.166.11

type OwnershipState = int
const (
	OwnershipStateIdle OwnershipState = iota + 1
	OwnershipStateDelayed
	OwnershipStateUpdating
	OwnershipStateError
)

type OwnershipStatus added in v0.166.11

type OwnershipStatus struct {
	State     OwnershipState `json:"state"`
	Timestamp int64          `json:"timestamp"`
}

type OwnershipStatusPerAddressAndChainID added in v0.166.11

type OwnershipStatusPerAddressAndChainID = map[common.Address]OwnershipStatusPerChainID

type OwnershipStatusPerChainID added in v0.166.11

type OwnershipStatusPerChainID = map[walletCommon.ChainID]OwnershipStatus

type Service added in v0.162.13

type Service struct {
	// contains filtered or unexported fields
}

func NewService added in v0.162.13

func NewService(
	db *sql.DB,
	walletFeed *event.Feed,
	accountsDB *accounts.Database,
	accountsFeed *event.Feed,
	settingsFeed *event.Feed,
	networkManager *network.Manager,
	manager *Manager) *Service

func (*Service) FilterOwnedCollectiblesAsync added in v0.162.13

func (s *Service) FilterOwnedCollectiblesAsync(requestID int32, chainIDs []walletCommon.ChainID, addresses []common.Address, offset int, limit int)

FilterOwnedCollectiblesResponse allows only one filter task to run at a time and it cancels the current one if a new one is started All calls will trigger an EventOwnedCollectiblesFilteringDone event with the result of the filtering

func (*Service) GetCollectiblesDetailsAsync added in v0.162.15

func (s *Service) GetCollectiblesDetailsAsync(requestID int32, uniqueIDs []thirdparty.CollectibleUniqueID)

func (*Service) GetOwnedCollectible added in v0.166.9

func (s *Service) GetOwnedCollectible(chainID walletCommon.ChainID, owner common.Address, contractAddress common.Address, tokenID *big.Int) (*thirdparty.CollectibleUniqueID, error)

func (*Service) GetOwnedCollectibles added in v0.162.13

func (s *Service) GetOwnedCollectibles(chainIDs []walletCommon.ChainID, owners []common.Address, offset int, limit int) ([]thirdparty.CollectibleUniqueID, bool, error)

func (*Service) GetOwnershipStatus added in v0.166.11

func (s *Service) GetOwnershipStatus(chainIDs []walletCommon.ChainID, owners []common.Address) (OwnershipStatusPerAddressAndChainID, error)

func (*Service) RefetchOwnedCollectibles added in v0.167.5

func (s *Service) RefetchOwnedCollectibles()

func (*Service) Start added in v0.162.13

func (s *Service) Start()

func (*Service) Stop added in v0.162.13

func (s *Service) Stop()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL