Documentation ¶
Index ¶
- Constants
- Variables
- func GetActivityCollectibles(ctx context.Context, db *sql.DB, chainIDs []common.ChainID, ...) ([]thirdparty.CollectibleUniqueID, error)
- func GetOldestTimestamp(ctx context.Context, db *sql.DB, addresses []eth.Address) (timestamp int64, err error)
- func GetRecipients(ctx context.Context, db *sql.DB, chainIDs []common.ChainID, ...) (recipients []eth.Address, hasMore bool, err error)
- type CollectibleHeader
- type Entry
- type EntryData
- type EntryDetails
- type ErrorCode
- type Filter
- type FilterDependencies
- type FilterResponse
- type GetOldestTimestampResponse
- type GetRecipientsResponse
- type GetollectiblesResponse
- type PayloadType
- type Period
- type ProtocolType
- type Service
- func (s *Service) CancelFilterTask(requestID int32)
- func (s *Service) FilterActivityAsync(requestID int32, addresses []common.Address, allAddresses bool, ...)
- func (s *Service) GetActivityCollectiblesAsync(requestID int32, chainIDs []w_common.ChainID, addresses []common.Address, ...)
- func (s *Service) GetMultiTxDetails(ctx context.Context, multiTxID int) (*EntryDetails, error)
- func (s *Service) GetOldestTimestampAsync(requestID int32, addresses []common.Address)
- func (s *Service) GetRecipientsAsync(requestID int32, chainIDs []w_common.ChainID, addresses []common.Address, ...) bool
- func (s *Service) GetTxDetails(ctx context.Context, id string) (*EntryDetails, error)
- func (s *Service) Stop()
- type Status
- type Token
- type TokenType
- type TransferType
- type Type
Constants ¶
const ( // FilterResponse json is sent as a message in the EventActivityFilteringDone event EventActivityFilteringDone walletevent.EventType = "wallet-activity-filtering-done" EventActivityFilteringUpdate walletevent.EventType = "wallet-activity-filtering-entries-updated" EventActivityGetRecipientsDone walletevent.EventType = "wallet-activity-get-recipients-result" EventActivityGetOldestTimestampDone walletevent.EventType = "wallet-activity-get-oldest-timestamp-result" EventActivityGetCollectibles walletevent.EventType = "wallet-activity-get-collectibles" )
const NoLimitTimestampForPeriod = 0
Variables ¶
var (
ZeroAddress = eth.Address{}
)
Functions ¶
func GetActivityCollectibles ¶ added in v0.167.5
func GetOldestTimestamp ¶ added in v0.159.6
Types ¶
type CollectibleHeader ¶ added in v0.167.5
type CollectibleHeader struct { ID thirdparty.CollectibleUniqueID `json:"id"` Name string `json:"name"` ImageURL string `json:"image_url"` }
type Entry ¶
type Entry struct {
// contains filtered or unexported fields
}
func (*Entry) MarshalJSON ¶
func (*Entry) PayloadType ¶ added in v0.152.2
func (e *Entry) PayloadType() PayloadType
func (*Entry) UnmarshalJSON ¶
type EntryData ¶ added in v0.166.7
type EntryData struct { PayloadType PayloadType `json:"payloadType"` Transaction *transfer.TransactionIdentity `json:"transaction,omitempty"` ID *transfer.MultiTransactionIDType `json:"id,omitempty"` Timestamp *int64 `json:"timestamp,omitempty"` ActivityType *Type `json:"activityType,omitempty"` ActivityStatus *Status `json:"activityStatus,omitempty"` AmountOut *hexutil.Big `json:"amountOut,omitempty"` AmountIn *hexutil.Big `json:"amountIn,omitempty"` TokenOut *Token `json:"tokenOut,omitempty"` TokenIn *Token `json:"tokenIn,omitempty"` SymbolOut *string `json:"symbolOut,omitempty"` SymbolIn *string `json:"symbolIn,omitempty"` Sender *eth.Address `json:"sender,omitempty"` Recipient *eth.Address `json:"recipient,omitempty"` ChainIDOut *common.ChainID `json:"chainIdOut,omitempty"` ChainIDIn *common.ChainID `json:"chainIdIn,omitempty"` TransferType *TransferType `json:"transferType,omitempty"` ContractAddress *eth.Address `json:"contractAddress,omitempty"` NftName *string `json:"nftName,omitempty"` NftURL *string `json:"nftUrl,omitempty"` }
type EntryDetails ¶ added in v0.166.1
type EntryDetails struct { ID string `json:"id"` MultiTxID int `json:"multiTxId"` Nonce uint64 `json:"nonce"` BlockNumber int64 `json:"blockNumber"` Input string `json:"input"` ProtocolType *ProtocolType `json:"protocolType,omitempty"` Hash *eth.Hash `json:"hash,omitempty"` Contract *eth.Address `json:"contractAddress,omitempty"` MaxFeePerGas *hexutil.Big `json:"maxFeePerGas"` GasLimit hexutil.Uint64 `json:"gasLimit"` TotalFees *hexutil.Big `json:"totalFees,omitempty"` }
type Filter ¶
type Filter struct { Period Period `json:"period"` Types []Type `json:"types"` Statuses []Status `json:"statuses"` CounterpartyAddresses []eth.Address `json:"counterpartyAddresses"` // Tokens Assets []Token `json:"assets"` Collectibles []Token `json:"collectibles"` FilterOutAssets bool `json:"filterOutAssets"` FilterOutCollectibles bool `json:"filterOutCollectibles"` }
type FilterDependencies ¶ added in v0.159.2
type FilterDependencies struct {
// contains filtered or unexported fields
}
type FilterResponse ¶ added in v0.158.0
type GetOldestTimestampResponse ¶ added in v0.161.2
type GetRecipientsResponse ¶ added in v0.161.2
type GetollectiblesResponse ¶ added in v0.167.5
type GetollectiblesResponse 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"` ErrorCode ErrorCode `json:"errorCode"` }
type PayloadType ¶
type PayloadType = int
const ( MultiTransactionPT PayloadType = iota + 1 SimpleTransactionPT PendingTransactionPT )
Beware: please update multiTransactionTypeToActivityType if changing this enum
type ProtocolType ¶ added in v0.166.1
type ProtocolType = int
const ( ProtocolHop ProtocolType = iota + 1 ProtocolUniswap )
type Service ¶ added in v0.158.0
type Service struct {
// contains filtered or unexported fields
}
Service provides an async interface, ensuring only one filter request, of each type, is running at a time. It also provides lazy load of NFT info and token mapping
func NewService ¶ added in v0.158.0
func NewService(db *sql.DB, tokenManager token.ManagerInterface, collectibles collectibles.ManagerInterface, eventFeed *event.Feed) *Service
func (*Service) CancelFilterTask ¶ added in v0.167.5
func (*Service) FilterActivityAsync ¶ added in v0.158.0
func (s *Service) FilterActivityAsync(requestID int32, addresses []common.Address, allAddresses bool, chainIDs []w_common.ChainID, filter Filter, offset int, limit int)
FilterActivityAsync allows only one filter task to run at a time it cancels the current one if a new one is started and should not expect other owners to have data in one of the queried tables
All calls will trigger an EventActivityFilteringDone event with the result of the filtering
func (*Service) GetActivityCollectiblesAsync ¶ added in v0.167.5
func (*Service) GetMultiTxDetails ¶ added in v0.166.1
func (*Service) GetOldestTimestampAsync ¶ added in v0.161.2
func (*Service) GetRecipientsAsync ¶ added in v0.161.2
func (s *Service) GetRecipientsAsync(requestID int32, chainIDs []w_common.ChainID, addresses []common.Address, offset int, limit int) bool
GetRecipientsAsync returns true if a task is already running or scheduled due to a previous call; meaning that this call won't receive an answer but client should rely on the answer from the previous call. If no task is already scheduled false will be returned
func (*Service) GetTxDetails ¶ added in v0.166.1
type Token ¶ added in v0.159.2
type Token struct { TokenType TokenType `json:"tokenType"` // ChainID is used for TokenType.Native only to lookup the symbol, all chains will be included in the token filter ChainID common.ChainID `json:"chainId"` Address eth.Address `json:"address,omitempty"` TokenID *hexutil.Big `json:"tokenId,omitempty"` }
Token supports all tokens. Some fields might be optional, depending on the TokenType
type TransferType ¶ added in v0.162.9
type TransferType = int
const ( TransferTypeEth TransferType = iota + 1 TransferTypeErc20 TransferTypeErc721 TransferTypeErc1155 )