data

package
v0.0.0-...-c6effd4 Latest Latest
Warning

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

Go to latest
Published: May 22, 2025 License: MIT Imports: 86 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FixerApiKeyConfigEnvName = "FIXER_API_KEY"
)

Variables

View Source
var (
	ErrInvalidAccount = errors.New("invalid account")
)

Functions

This section is empty.

Types

type BlockchainData

type BlockchainData interface {
	SubmitBlockchainTransaction(ctx context.Context, tx *solana.Transaction) (solana.Signature, error)
	RequestBlockchainAirdrop(ctx context.Context, account string, amount uint64) (solana.Signature, error)

	GetBlockchainAccountInfo(ctx context.Context, account string, commitment solana.Commitment) (*solana.AccountInfo, error)
	GetBlockchainAccountDataAfterBlock(ctx context.Context, account string, slot uint64) ([]byte, uint64, error)
	GetBlockchainBalance(ctx context.Context, account string) (uint64, uint64, error)
	GetBlockchainBlock(ctx context.Context, slot uint64) (*solana.Block, error)
	GetBlockchainBlockSignatures(ctx context.Context, slot uint64) ([]string, error)
	GetBlockchainBlocksWithLimit(ctx context.Context, start uint64, limit uint64) ([]uint64, error)
	GetBlockchainHistory(ctx context.Context, account string, commitment solana.Commitment, opts ...query.Option) ([]*solana.TransactionSignature, error)
	GetBlockchainMinimumBalanceForRentExemption(ctx context.Context, size uint64) (uint64, error)
	GetBlockchainLatestBlockhash(ctx context.Context) (solana.Blockhash, error)
	GetBlockchainSignatureStatuses(ctx context.Context, signatures []solana.Signature) ([]*solana.SignatureStatus, error)
	GetBlockchainSlot(ctx context.Context, commitment solana.Commitment) (uint64, error)
	GetBlockchainTokenAccountInfo(ctx context.Context, account string, commitment solana.Commitment) (*token.Account, error)
	GetBlockchainTokenAccountsByOwner(ctx context.Context, account string) ([]ed25519.PublicKey, error)
	GetBlockchainTransaction(ctx context.Context, sig string, commitment solana.Commitment) (*solana.ConfirmedTransaction, error)
	GetBlockchainTransactionTokenBalances(ctx context.Context, sig string) (*solana.TransactionTokenBalances, error)
	GetBlockchainFilteredProgramAccounts(ctx context.Context, program string, offset uint, filterValue []byte) ([]string, uint64, error)
}

func NewBlockchainProvider

func NewBlockchainProvider(solanaEndpoint string) (BlockchainData, error)

type BlockchainProvider

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

func (*BlockchainProvider) GetBlockchainAccountDataAfterBlock

func (dp *BlockchainProvider) GetBlockchainAccountDataAfterBlock(ctx context.Context, account string, slot uint64) ([]byte, uint64, error)

func (*BlockchainProvider) GetBlockchainAccountInfo

func (dp *BlockchainProvider) GetBlockchainAccountInfo(ctx context.Context, account string, commitment solana.Commitment) (*solana.AccountInfo, error)

func (*BlockchainProvider) GetBlockchainBalance

func (dp *BlockchainProvider) GetBlockchainBalance(ctx context.Context, account string) (uint64, uint64, error)

func (*BlockchainProvider) GetBlockchainBlock

func (dp *BlockchainProvider) GetBlockchainBlock(ctx context.Context, slot uint64) (*solana.Block, error)

func (*BlockchainProvider) GetBlockchainBlockSignatures

func (dp *BlockchainProvider) GetBlockchainBlockSignatures(ctx context.Context, slot uint64) ([]string, error)

func (*BlockchainProvider) GetBlockchainBlocksWithLimit

func (dp *BlockchainProvider) GetBlockchainBlocksWithLimit(ctx context.Context, start uint64, limit uint64) ([]uint64, error)

func (*BlockchainProvider) GetBlockchainFilteredProgramAccounts

func (dp *BlockchainProvider) GetBlockchainFilteredProgramAccounts(ctx context.Context, program string, offset uint, filterValue []byte) ([]string, uint64, error)

func (*BlockchainProvider) GetBlockchainHistory

func (dp *BlockchainProvider) GetBlockchainHistory(ctx context.Context, account string, commitment solana.Commitment, opts ...query.Option) ([]*solana.TransactionSignature, error)

func (*BlockchainProvider) GetBlockchainLatestBlockhash

func (dp *BlockchainProvider) GetBlockchainLatestBlockhash(ctx context.Context) (solana.Blockhash, error)

func (*BlockchainProvider) GetBlockchainMinimumBalanceForRentExemption

func (dp *BlockchainProvider) GetBlockchainMinimumBalanceForRentExemption(ctx context.Context, size uint64) (uint64, error)

func (*BlockchainProvider) GetBlockchainSignatureStatuses

func (dp *BlockchainProvider) GetBlockchainSignatureStatuses(ctx context.Context, signatures []solana.Signature) ([]*solana.SignatureStatus, error)

func (*BlockchainProvider) GetBlockchainSlot

func (dp *BlockchainProvider) GetBlockchainSlot(ctx context.Context, commitment solana.Commitment) (uint64, error)

func (*BlockchainProvider) GetBlockchainTokenAccountInfo

func (dp *BlockchainProvider) GetBlockchainTokenAccountInfo(ctx context.Context, account string, commitment solana.Commitment) (*token.Account, error)

func (*BlockchainProvider) GetBlockchainTokenAccountsByOwner

func (dp *BlockchainProvider) GetBlockchainTokenAccountsByOwner(ctx context.Context, account string) ([]ed25519.PublicKey, error)

func (*BlockchainProvider) GetBlockchainTransaction

func (dp *BlockchainProvider) GetBlockchainTransaction(ctx context.Context, sig string, commitment solana.Commitment) (*solana.ConfirmedTransaction, error)

func (*BlockchainProvider) GetBlockchainTransactionTokenBalances

func (dp *BlockchainProvider) GetBlockchainTransactionTokenBalances(ctx context.Context, sig string) (*solana.TransactionTokenBalances, error)

func (*BlockchainProvider) RequestBlockchainAirdrop

func (dp *BlockchainProvider) RequestBlockchainAirdrop(ctx context.Context, account string, amount uint64) (solana.Signature, error)

func (*BlockchainProvider) SubmitBlockchainTransaction

func (dp *BlockchainProvider) SubmitBlockchainTransaction(ctx context.Context, tx *solana.Transaction) (solana.Signature, error)

type ConfigProvider

type ConfigProvider func() *conf

ConfigProvider defines how config values are pulled

todo: Possibly introduce an override config provider, for things like scripts.

func WithEnvConfigs

func WithEnvConfigs() ConfigProvider

WithEnvConfigs returns configuration pulled from environment variables

type DataProvider

func (*DataProvider) GetBlockchainDataProvider

func (p *DataProvider) GetBlockchainDataProvider() BlockchainData

func (*DataProvider) GetDatabaseDataProvider

func (p *DataProvider) GetDatabaseDataProvider() DatabaseData

func (*DataProvider) GetEstimatedDataProvider

func (p *DataProvider) GetEstimatedDataProvider() EstimatedData

func (*DataProvider) GetWebDataProvider

func (p *DataProvider) GetWebDataProvider() WebData

type DatabaseData

type DatabaseData interface {
	// Account Info
	// --------------------------------------------------------------------------------
	CreateAccountInfo(ctx context.Context, record *account.Record) error
	UpdateAccountInfo(ctx context.Context, record *account.Record) error
	GetAccountInfoByTokenAddress(ctx context.Context, address string) (*account.Record, error)
	GetAccountInfoByAuthorityAddress(ctx context.Context, address string) (*account.Record, error)
	GetLatestAccountInfosByOwnerAddress(ctx context.Context, address string) (map[commonpb.AccountType][]*account.Record, error)
	GetLatestAccountInfoByOwnerAddressAndType(ctx context.Context, address string, accountType commonpb.AccountType) (*account.Record, error)
	GetRelationshipAccountInfoByOwnerAddress(ctx context.Context, address, relationshipTo string) (*account.Record, error)
	GetPrioritizedAccountInfosRequiringDepositSync(ctx context.Context, limit uint64) ([]*account.Record, error)
	GetPrioritizedAccountInfosRequiringAutoReturnCheck(ctx context.Context, maxAge time.Duration, limit uint64) ([]*account.Record, error)
	GetPrioritizedAccountInfosRequiringSwapRetry(ctx context.Context, maxAge time.Duration, limit uint64) ([]*account.Record, error)
	GetAccountInfoCountRequiringDepositSync(ctx context.Context) (uint64, error)
	GetAccountInfoCountRequiringAutoReturnCheck(ctx context.Context) (uint64, error)
	GetAccountInfoCountRequiringSwapRetry(ctx context.Context) (uint64, error)

	// Currency
	// --------------------------------------------------------------------------------
	GetExchangeRate(ctx context.Context, code currency_lib.Code, t time.Time) (*currency.ExchangeRateRecord, error)
	GetAllExchangeRates(ctx context.Context, t time.Time) (*currency.MultiRateRecord, error)
	GetExchangeRateHistory(ctx context.Context, code currency_lib.Code, opts ...query.Option) ([]*currency.ExchangeRateRecord, error)
	ImportExchangeRates(ctx context.Context, data *currency.MultiRateRecord) error

	// Vault
	// --------------------------------------------------------------------------------
	GetKey(ctx context.Context, public_key string) (*vault.Record, error)
	GetKeyCount(ctx context.Context) (uint64, error)
	GetKeyCountByState(ctx context.Context, state vault.State) (uint64, error)
	GetAllKeysByState(ctx context.Context, state vault.State, opts ...query.Option) ([]*vault.Record, error)
	SaveKey(ctx context.Context, record *vault.Record) error

	// Nonce
	// --------------------------------------------------------------------------------
	GetNonce(ctx context.Context, address string) (*nonce.Record, error)
	GetNonceCount(ctx context.Context, env nonce.Environment, instance string) (uint64, error)
	GetNonceCountByState(ctx context.Context, env nonce.Environment, instance string, state nonce.State) (uint64, error)
	GetNonceCountByStateAndPurpose(ctx context.Context, env nonce.Environment, instance string, state nonce.State, purpose nonce.Purpose) (uint64, error)
	GetAllNonceByState(ctx context.Context, env nonce.Environment, instance string, state nonce.State, opts ...query.Option) ([]*nonce.Record, error)
	GetRandomAvailableNonceByPurpose(ctx context.Context, env nonce.Environment, instance string, purpose nonce.Purpose) (*nonce.Record, error)
	SaveNonce(ctx context.Context, record *nonce.Record) error

	// Fulfillment
	// --------------------------------------------------------------------------------
	GetFulfillmentById(ctx context.Context, id uint64) (*fulfillment.Record, error)
	GetFulfillmentBySignature(ctx context.Context, signature string) (*fulfillment.Record, error)
	GetFulfillmentByVirtualSignature(ctx context.Context, signature string) (*fulfillment.Record, error)
	GetFulfillmentCount(ctx context.Context) (uint64, error)
	GetFulfillmentCountByState(ctx context.Context, state fulfillment.State) (uint64, error)
	GetFulfillmentCountByStateGroupedByType(ctx context.Context, state fulfillment.State) (map[fulfillment.Type]uint64, error)
	GetFulfillmentCountForMetrics(ctx context.Context, state fulfillment.State) (map[fulfillment.Type]uint64, error)
	GetFulfillmentCountByStateAndAddress(ctx context.Context, state fulfillment.State, address string) (uint64, error)
	GetFulfillmentCountByTypeStateAndAddress(ctx context.Context, fulfillmentType fulfillment.Type, state fulfillment.State, address string) (uint64, error)
	GetFulfillmentCountByTypeStateAndAddressAsSource(ctx context.Context, fulfillmentType fulfillment.Type, state fulfillment.State, address string) (uint64, error)
	GetFulfillmentCountByIntentAndState(ctx context.Context, intent string, state fulfillment.State) (uint64, error)
	GetFulfillmentCountByIntent(ctx context.Context, intent string) (uint64, error)
	GetFulfillmentCountByTypeActionAndState(ctx context.Context, intentId string, actionId uint32, fulfillmentType fulfillment.Type, state fulfillment.State) (uint64, error)
	GetPendingFulfillmentCountByType(ctx context.Context) (map[fulfillment.Type]uint64, error)
	GetAllFulfillmentsByState(ctx context.Context, state fulfillment.State, includeDisabledActiveScheduling bool, opts ...query.Option) ([]*fulfillment.Record, error)
	GetAllFulfillmentsByIntent(ctx context.Context, intent string, opts ...query.Option) ([]*fulfillment.Record, error)
	GetAllFulfillmentsByAction(ctx context.Context, intentId string, actionId uint32) ([]*fulfillment.Record, error)
	GetAllFulfillmentsByTypeAndAction(ctx context.Context, fulfillmentType fulfillment.Type, intentId string, actionId uint32) ([]*fulfillment.Record, error)
	GetFirstSchedulableFulfillmentByAddressAsSource(ctx context.Context, address string) (*fulfillment.Record, error)
	GetFirstSchedulableFulfillmentByAddressAsDestination(ctx context.Context, address string) (*fulfillment.Record, error)
	GetFirstSchedulableFulfillmentByType(ctx context.Context, fulfillmentType fulfillment.Type) (*fulfillment.Record, error)
	GetNextSchedulableFulfillmentByAddress(ctx context.Context, address string, intentOrderingIndex uint64, actionOrderingIndex, fulfillmentOrderingIndex uint32) (*fulfillment.Record, error)
	PutAllFulfillments(ctx context.Context, records ...*fulfillment.Record) error
	UpdateFulfillment(ctx context.Context, record *fulfillment.Record) error
	MarkFulfillmentAsActivelyScheduled(ctx context.Context, id uint64) error

	// Intent
	// --------------------------------------------------------------------------------
	SaveIntent(ctx context.Context, record *intent.Record) error
	GetIntent(ctx context.Context, intentID string) (*intent.Record, error)
	GetIntentBySignature(ctx context.Context, signature string) (*intent.Record, error)
	GetAllIntentsByOwner(ctx context.Context, owner string, opts ...query.Option) ([]*intent.Record, error)
	GetLatestIntentByInitiatorAndType(ctx context.Context, intentType intent.Type, owner string) (*intent.Record, error)
	GetOriginalGiftCardIssuedIntent(ctx context.Context, giftCardVault string) (*intent.Record, error)
	GetGiftCardClaimedIntent(ctx context.Context, giftCardVault string) (*intent.Record, error)
	GetTransactedAmountForAntiMoneyLaundering(ctx context.Context, owner string, since time.Time) (uint64, float64, error)

	// Action
	// --------------------------------------------------------------------------------
	PutAllActions(ctx context.Context, records ...*action.Record) error
	UpdateAction(ctx context.Context, record *action.Record) error
	GetActionById(ctx context.Context, intent string, actionId uint32) (*action.Record, error)
	GetAllActionsByIntent(ctx context.Context, intent string) ([]*action.Record, error)
	GetAllActionsByAddress(ctx context.Context, address string) ([]*action.Record, error)
	GetNetBalanceFromActions(ctx context.Context, address string) (int64, error)
	GetNetBalanceFromActionsBatch(ctx context.Context, accounts ...string) (map[string]int64, error)
	GetGiftCardClaimedAction(ctx context.Context, giftCardVault string) (*action.Record, error)
	GetGiftCardAutoReturnAction(ctx context.Context, giftCardVault string) (*action.Record, error)

	// Transaction
	// --------------------------------------------------------------------------------
	GetTransaction(ctx context.Context, sig string) (*transaction.Record, error)
	SaveTransaction(ctx context.Context, record *transaction.Record) error

	// Messaging
	// --------------------------------------------------------------------------------
	CreateMessage(ctx context.Context, record *messaging.Record) error
	GetMessages(ctx context.Context, account string) ([]*messaging.Record, error)
	DeleteMessage(ctx context.Context, account string, messageID uuid.UUID) error

	// Timelock
	// --------------------------------------------------------------------------------
	SaveTimelock(ctx context.Context, record *timelock.Record) error
	GetTimelockByAddress(ctx context.Context, address string) (*timelock.Record, error)
	GetTimelockByVault(ctx context.Context, vault string) (*timelock.Record, error)
	GetTimelockByDepositPda(ctx context.Context, depositPda string) (*timelock.Record, error)
	GetTimelockByVaultBatch(ctx context.Context, vaults ...string) (map[string]*timelock.Record, error)
	GetAllTimelocksByState(ctx context.Context, state timelock_token.TimelockState, opts ...query.Option) ([]*timelock.Record, error)
	GetTimelockCountByState(ctx context.Context, state timelock_token.TimelockState) (uint64, error)

	// Merkle Tree
	// --------------------------------------------------------------------------------
	InitializeNewMerkleTree(ctx context.Context, name string, levels uint8, seeds []merkletree.Seed, readOnly bool) (*merkletree.MerkleTree, error)
	LoadExistingMerkleTree(ctx context.Context, name string, readOnly bool) (*merkletree.MerkleTree, error)

	// External Deposits
	// --------------------------------------------------------------------------------
	SaveExternalDeposit(ctx context.Context, record *deposit.Record) error
	GetExternalDeposit(ctx context.Context, signature, destination string) (*deposit.Record, error)
	GetTotalExternalDepositedAmountInQuarks(ctx context.Context, account string) (uint64, error)
	GetTotalExternalDepositedAmountInQuarksBatch(ctx context.Context, accounts ...string) (map[string]uint64, error)
	GetTotalExternalDepositedAmountInUsd(ctx context.Context, account string) (float64, error)

	// Rendezvous
	// --------------------------------------------------------------------------------
	SaveRendezvous(ctx context.Context, record *rendezvous.Record) error
	GetRendezvous(ctx context.Context, key string) (*rendezvous.Record, error)
	DeleteRendezvous(ctx context.Context, key string) error

	// Requests
	// --------------------------------------------------------------------------------
	CreateRequest(ctx context.Context, record *paymentrequest.Record) error
	GetRequest(ctx context.Context, intentId string) (*paymentrequest.Record, error)

	// Webhook
	// --------------------------------------------------------------------------------
	CreateWebhook(ctx context.Context, record *webhook.Record) error
	UpdateWebhook(ctx context.Context, record *webhook.Record) error
	GetWebhook(ctx context.Context, webhookId string) (*webhook.Record, error)
	CountWebhookByState(ctx context.Context, state webhook.State) (uint64, error)
	GetAllPendingWebhooksReadyToSend(ctx context.Context, limit uint64) ([]*webhook.Record, error)

	// Balance
	// --------------------------------------------------------------------------------
	SaveBalanceCheckpoint(ctx context.Context, record *balance.Record) error
	GetBalanceCheckpoint(ctx context.Context, account string) (*balance.Record, error)

	// Onramp
	// --------------------------------------------------------------------------------
	PutFiatOnrampPurchase(ctx context.Context, record *onramp.Record) error
	GetFiatOnrampPurchase(ctx context.Context, nonce uuid.UUID) (*onramp.Record, error)

	// CVM RAM
	// --------------------------------------------------------------------------------
	InitializeVmMemory(ctx context.Context, record *cvm_ram.Record) error
	FreeVmMemoryByIndex(ctx context.Context, memoryAccount string, index uint16) error
	FreeVmMemoryByAddress(ctx context.Context, address string) error
	ReserveVmMemory(ctx context.Context, vm string, accountType cvm.VirtualAccountType, address string) (string, uint16, error)

	// CVM Storage
	// --------------------------------------------------------------------------------
	InitializeVmStorage(ctx context.Context, record *cvm_storage.Record) error
	FindAnyVmStorageWithAvailableCapacity(ctx context.Context, vm string, purpose cvm_storage.Purpose, minCapacity uint64) (*cvm_storage.Record, error)
	ReserveVmStorage(ctx context.Context, vm string, purpose cvm_storage.Purpose, address string) (string, error)

	// ExecuteInTx executes fn with a single DB transaction that is scoped to the call.
	// This enables more complex transactions that can span many calls across the provider.
	//
	// Note: This highly relies on the store implementations adding explicit support for
	// this, which was added way later than when most were written. When using this
	// function, ensure there is proper support for whatever is being called inside fn.
	ExecuteInTx(ctx context.Context, isolation sql.IsolationLevel, fn func(ctx context.Context) error) error
}

func NewDatabaseProvider

func NewDatabaseProvider(dbConfig *pg.Config) (DatabaseData, error)

func NewTestDatabaseProvider

func NewTestDatabaseProvider() DatabaseData

type DatabaseProvider

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

func (*DatabaseProvider) CountWebhookByState

func (dp *DatabaseProvider) CountWebhookByState(ctx context.Context, state webhook.State) (uint64, error)

func (*DatabaseProvider) CreateAccountInfo

func (dp *DatabaseProvider) CreateAccountInfo(ctx context.Context, record *account.Record) error

Account Info --------------------------------------------------------------------------------

func (*DatabaseProvider) CreateMessage

func (dp *DatabaseProvider) CreateMessage(ctx context.Context, record *messaging.Record) error

Messaging --------------------------------------------------------------------------------

func (*DatabaseProvider) CreateRequest

func (dp *DatabaseProvider) CreateRequest(ctx context.Context, record *paymentrequest.Record) error

Payment Request --------------------------------------------------------------------------------

func (*DatabaseProvider) CreateWebhook

func (dp *DatabaseProvider) CreateWebhook(ctx context.Context, record *webhook.Record) error

Webhook --------------------------------------------------------------------------------

func (*DatabaseProvider) DeleteMessage

func (dp *DatabaseProvider) DeleteMessage(ctx context.Context, account string, messageID uuid.UUID) error

func (*DatabaseProvider) DeleteRendezvous

func (dp *DatabaseProvider) DeleteRendezvous(ctx context.Context, key string) error

func (*DatabaseProvider) ExecuteInTx

func (dp *DatabaseProvider) ExecuteInTx(ctx context.Context, isolation sql.IsolationLevel, fn func(ctx context.Context) error) error

func (*DatabaseProvider) FindAnyVmStorageWithAvailableCapacity

func (dp *DatabaseProvider) FindAnyVmStorageWithAvailableCapacity(ctx context.Context, vm string, purpose cvm_storage.Purpose, minCapacity uint64) (*cvm_storage.Record, error)

func (*DatabaseProvider) FreeVmMemoryByAddress

func (dp *DatabaseProvider) FreeVmMemoryByAddress(ctx context.Context, address string) error

func (*DatabaseProvider) FreeVmMemoryByIndex

func (dp *DatabaseProvider) FreeVmMemoryByIndex(ctx context.Context, memoryAccount string, index uint16) error

func (*DatabaseProvider) GetAccountInfoByAuthorityAddress

func (dp *DatabaseProvider) GetAccountInfoByAuthorityAddress(ctx context.Context, address string) (*account.Record, error)

func (*DatabaseProvider) GetAccountInfoByTokenAddress

func (dp *DatabaseProvider) GetAccountInfoByTokenAddress(ctx context.Context, address string) (*account.Record, error)

func (*DatabaseProvider) GetAccountInfoCountRequiringAutoReturnCheck

func (dp *DatabaseProvider) GetAccountInfoCountRequiringAutoReturnCheck(ctx context.Context) (uint64, error)

func (*DatabaseProvider) GetAccountInfoCountRequiringDepositSync

func (dp *DatabaseProvider) GetAccountInfoCountRequiringDepositSync(ctx context.Context) (uint64, error)

func (*DatabaseProvider) GetAccountInfoCountRequiringSwapRetry

func (dp *DatabaseProvider) GetAccountInfoCountRequiringSwapRetry(ctx context.Context) (uint64, error)

func (*DatabaseProvider) GetActionById

func (dp *DatabaseProvider) GetActionById(ctx context.Context, intent string, actionId uint32) (*action.Record, error)

func (*DatabaseProvider) GetAllActionsByAddress

func (dp *DatabaseProvider) GetAllActionsByAddress(ctx context.Context, address string) ([]*action.Record, error)

func (*DatabaseProvider) GetAllActionsByIntent

func (dp *DatabaseProvider) GetAllActionsByIntent(ctx context.Context, intent string) ([]*action.Record, error)

func (*DatabaseProvider) GetAllExchangeRates

func (dp *DatabaseProvider) GetAllExchangeRates(ctx context.Context, t time.Time) (*currency.MultiRateRecord, error)

func (*DatabaseProvider) GetAllFulfillmentsByAction

func (dp *DatabaseProvider) GetAllFulfillmentsByAction(ctx context.Context, intentId string, actionId uint32) ([]*fulfillment.Record, error)

func (*DatabaseProvider) GetAllFulfillmentsByIntent

func (dp *DatabaseProvider) GetAllFulfillmentsByIntent(ctx context.Context, intent string, opts ...query.Option) ([]*fulfillment.Record, error)

func (*DatabaseProvider) GetAllFulfillmentsByState

func (dp *DatabaseProvider) GetAllFulfillmentsByState(ctx context.Context, state fulfillment.State, includeDisabledActiveScheduling bool, opts ...query.Option) ([]*fulfillment.Record, error)

func (*DatabaseProvider) GetAllFulfillmentsByTypeAndAction

func (dp *DatabaseProvider) GetAllFulfillmentsByTypeAndAction(ctx context.Context, fulfillmentType fulfillment.Type, intentId string, actionId uint32) ([]*fulfillment.Record, error)

func (*DatabaseProvider) GetAllIntentsByOwner

func (dp *DatabaseProvider) GetAllIntentsByOwner(ctx context.Context, owner string, opts ...query.Option) ([]*intent.Record, error)

func (*DatabaseProvider) GetAllKeysByState

func (dp *DatabaseProvider) GetAllKeysByState(ctx context.Context, state vault.State, opts ...query.Option) ([]*vault.Record, error)

func (*DatabaseProvider) GetAllNonceByState

func (dp *DatabaseProvider) GetAllNonceByState(ctx context.Context, env nonce.Environment, instance string, state nonce.State, opts ...query.Option) ([]*nonce.Record, error)

func (*DatabaseProvider) GetAllPendingWebhooksReadyToSend

func (dp *DatabaseProvider) GetAllPendingWebhooksReadyToSend(ctx context.Context, limit uint64) ([]*webhook.Record, error)

func (*DatabaseProvider) GetAllTimelocksByState

func (dp *DatabaseProvider) GetAllTimelocksByState(ctx context.Context, state timelock_token.TimelockState, opts ...query.Option) ([]*timelock.Record, error)

func (*DatabaseProvider) GetBalanceCheckpoint

func (dp *DatabaseProvider) GetBalanceCheckpoint(ctx context.Context, account string) (*balance.Record, error)

func (*DatabaseProvider) GetExchangeRate

Currency --------------------------------------------------------------------------------

func (*DatabaseProvider) GetExchangeRateHistory

func (dp *DatabaseProvider) GetExchangeRateHistory(ctx context.Context, code currency_lib.Code, opts ...query.Option) ([]*currency.ExchangeRateRecord, error)

func (*DatabaseProvider) GetExternalDeposit

func (dp *DatabaseProvider) GetExternalDeposit(ctx context.Context, signature, account string) (*deposit.Record, error)

func (*DatabaseProvider) GetFiatOnrampPurchase

func (dp *DatabaseProvider) GetFiatOnrampPurchase(ctx context.Context, nonce uuid.UUID) (*onramp.Record, error)

func (*DatabaseProvider) GetFirstSchedulableFulfillmentByAddressAsDestination

func (dp *DatabaseProvider) GetFirstSchedulableFulfillmentByAddressAsDestination(ctx context.Context, address string) (*fulfillment.Record, error)

func (*DatabaseProvider) GetFirstSchedulableFulfillmentByAddressAsSource

func (dp *DatabaseProvider) GetFirstSchedulableFulfillmentByAddressAsSource(ctx context.Context, address string) (*fulfillment.Record, error)

func (*DatabaseProvider) GetFirstSchedulableFulfillmentByType

func (dp *DatabaseProvider) GetFirstSchedulableFulfillmentByType(ctx context.Context, fulfillmentType fulfillment.Type) (*fulfillment.Record, error)

func (*DatabaseProvider) GetFulfillmentById

func (dp *DatabaseProvider) GetFulfillmentById(ctx context.Context, id uint64) (*fulfillment.Record, error)

Fulfillment --------------------------------------------------------------------------------

func (*DatabaseProvider) GetFulfillmentBySignature

func (dp *DatabaseProvider) GetFulfillmentBySignature(ctx context.Context, signature string) (*fulfillment.Record, error)

func (*DatabaseProvider) GetFulfillmentByVirtualSignature

func (dp *DatabaseProvider) GetFulfillmentByVirtualSignature(ctx context.Context, signature string) (*fulfillment.Record, error)

func (*DatabaseProvider) GetFulfillmentCount

func (dp *DatabaseProvider) GetFulfillmentCount(ctx context.Context) (uint64, error)

func (*DatabaseProvider) GetFulfillmentCountByIntent

func (dp *DatabaseProvider) GetFulfillmentCountByIntent(ctx context.Context, intent string) (uint64, error)

func (*DatabaseProvider) GetFulfillmentCountByIntentAndState

func (dp *DatabaseProvider) GetFulfillmentCountByIntentAndState(ctx context.Context, intent string, state fulfillment.State) (uint64, error)

func (*DatabaseProvider) GetFulfillmentCountByState

func (dp *DatabaseProvider) GetFulfillmentCountByState(ctx context.Context, state fulfillment.State) (uint64, error)

func (*DatabaseProvider) GetFulfillmentCountByStateAndAddress

func (dp *DatabaseProvider) GetFulfillmentCountByStateAndAddress(ctx context.Context, state fulfillment.State, address string) (uint64, error)

func (*DatabaseProvider) GetFulfillmentCountByStateGroupedByType

func (dp *DatabaseProvider) GetFulfillmentCountByStateGroupedByType(ctx context.Context, state fulfillment.State) (map[fulfillment.Type]uint64, error)

func (*DatabaseProvider) GetFulfillmentCountByTypeActionAndState

func (dp *DatabaseProvider) GetFulfillmentCountByTypeActionAndState(ctx context.Context, intentId string, actionId uint32, fulfillmentType fulfillment.Type, state fulfillment.State) (uint64, error)

func (*DatabaseProvider) GetFulfillmentCountByTypeStateAndAddress

func (dp *DatabaseProvider) GetFulfillmentCountByTypeStateAndAddress(ctx context.Context, fulfillmentType fulfillment.Type, state fulfillment.State, address string) (uint64, error)

func (*DatabaseProvider) GetFulfillmentCountByTypeStateAndAddressAsSource

func (dp *DatabaseProvider) GetFulfillmentCountByTypeStateAndAddressAsSource(ctx context.Context, fulfillmentType fulfillment.Type, state fulfillment.State, address string) (uint64, error)

func (*DatabaseProvider) GetFulfillmentCountForMetrics

func (dp *DatabaseProvider) GetFulfillmentCountForMetrics(ctx context.Context, state fulfillment.State) (map[fulfillment.Type]uint64, error)

func (*DatabaseProvider) GetGiftCardAutoReturnAction

func (dp *DatabaseProvider) GetGiftCardAutoReturnAction(ctx context.Context, giftCardVault string) (*action.Record, error)

func (*DatabaseProvider) GetGiftCardClaimedAction

func (dp *DatabaseProvider) GetGiftCardClaimedAction(ctx context.Context, giftCardVault string) (*action.Record, error)

func (*DatabaseProvider) GetGiftCardClaimedIntent

func (dp *DatabaseProvider) GetGiftCardClaimedIntent(ctx context.Context, giftCardVault string) (*intent.Record, error)

func (*DatabaseProvider) GetIntent

func (dp *DatabaseProvider) GetIntent(ctx context.Context, intentID string) (*intent.Record, error)

Intent --------------------------------------------------------------------------------

func (*DatabaseProvider) GetIntentBySignature

func (dp *DatabaseProvider) GetIntentBySignature(ctx context.Context, signature string) (*intent.Record, error)

func (*DatabaseProvider) GetKey

func (dp *DatabaseProvider) GetKey(ctx context.Context, public_key string) (*vault.Record, error)

Vault --------------------------------------------------------------------------------

func (*DatabaseProvider) GetKeyCount

func (dp *DatabaseProvider) GetKeyCount(ctx context.Context) (uint64, error)

func (*DatabaseProvider) GetKeyCountByState

func (dp *DatabaseProvider) GetKeyCountByState(ctx context.Context, state vault.State) (uint64, error)

func (*DatabaseProvider) GetLatestAccountInfoByOwnerAddressAndType

func (dp *DatabaseProvider) GetLatestAccountInfoByOwnerAddressAndType(ctx context.Context, address string, accountType commonpb.AccountType) (*account.Record, error)

func (*DatabaseProvider) GetLatestAccountInfosByOwnerAddress

func (dp *DatabaseProvider) GetLatestAccountInfosByOwnerAddress(ctx context.Context, address string) (map[commonpb.AccountType][]*account.Record, error)

func (*DatabaseProvider) GetLatestIntentByInitiatorAndType

func (dp *DatabaseProvider) GetLatestIntentByInitiatorAndType(ctx context.Context, intentType intent.Type, owner string) (*intent.Record, error)

func (*DatabaseProvider) GetMessages

func (dp *DatabaseProvider) GetMessages(ctx context.Context, account string) ([]*messaging.Record, error)

func (*DatabaseProvider) GetNetBalanceFromActions

func (dp *DatabaseProvider) GetNetBalanceFromActions(ctx context.Context, address string) (int64, error)

func (*DatabaseProvider) GetNetBalanceFromActionsBatch

func (dp *DatabaseProvider) GetNetBalanceFromActionsBatch(ctx context.Context, accounts ...string) (map[string]int64, error)

func (*DatabaseProvider) GetNextSchedulableFulfillmentByAddress

func (dp *DatabaseProvider) GetNextSchedulableFulfillmentByAddress(ctx context.Context, address string, intentOrderingIndex uint64, actionOrderingIndex, fulfillmentOrderingIndex uint32) (*fulfillment.Record, error)

func (*DatabaseProvider) GetNonce

func (dp *DatabaseProvider) GetNonce(ctx context.Context, address string) (*nonce.Record, error)

Nonce --------------------------------------------------------------------------------

func (*DatabaseProvider) GetNonceCount

func (dp *DatabaseProvider) GetNonceCount(ctx context.Context, env nonce.Environment, instance string) (uint64, error)

func (*DatabaseProvider) GetNonceCountByState

func (dp *DatabaseProvider) GetNonceCountByState(ctx context.Context, env nonce.Environment, instance string, state nonce.State) (uint64, error)

func (*DatabaseProvider) GetNonceCountByStateAndPurpose

func (dp *DatabaseProvider) GetNonceCountByStateAndPurpose(ctx context.Context, env nonce.Environment, instance string, state nonce.State, purpose nonce.Purpose) (uint64, error)

func (*DatabaseProvider) GetOriginalGiftCardIssuedIntent

func (dp *DatabaseProvider) GetOriginalGiftCardIssuedIntent(ctx context.Context, giftCardVault string) (*intent.Record, error)

func (*DatabaseProvider) GetPendingFulfillmentCountByType

func (dp *DatabaseProvider) GetPendingFulfillmentCountByType(ctx context.Context) (map[fulfillment.Type]uint64, error)

func (*DatabaseProvider) GetPrioritizedAccountInfosRequiringAutoReturnCheck

func (dp *DatabaseProvider) GetPrioritizedAccountInfosRequiringAutoReturnCheck(ctx context.Context, maxAge time.Duration, limit uint64) ([]*account.Record, error)

func (*DatabaseProvider) GetPrioritizedAccountInfosRequiringDepositSync

func (dp *DatabaseProvider) GetPrioritizedAccountInfosRequiringDepositSync(ctx context.Context, limit uint64) ([]*account.Record, error)

func (*DatabaseProvider) GetPrioritizedAccountInfosRequiringSwapRetry

func (dp *DatabaseProvider) GetPrioritizedAccountInfosRequiringSwapRetry(ctx context.Context, maxAge time.Duration, limit uint64) ([]*account.Record, error)

func (*DatabaseProvider) GetRandomAvailableNonceByPurpose

func (dp *DatabaseProvider) GetRandomAvailableNonceByPurpose(ctx context.Context, env nonce.Environment, instance string, purpose nonce.Purpose) (*nonce.Record, error)

func (*DatabaseProvider) GetRelationshipAccountInfoByOwnerAddress

func (dp *DatabaseProvider) GetRelationshipAccountInfoByOwnerAddress(ctx context.Context, address, relationshipTo string) (*account.Record, error)

func (*DatabaseProvider) GetRendezvous

func (dp *DatabaseProvider) GetRendezvous(ctx context.Context, key string) (*rendezvous.Record, error)

func (*DatabaseProvider) GetRequest

func (dp *DatabaseProvider) GetRequest(ctx context.Context, intentId string) (*paymentrequest.Record, error)

func (*DatabaseProvider) GetTimelockByAddress

func (dp *DatabaseProvider) GetTimelockByAddress(ctx context.Context, address string) (*timelock.Record, error)

func (*DatabaseProvider) GetTimelockByDepositPda

func (dp *DatabaseProvider) GetTimelockByDepositPda(ctx context.Context, depositPda string) (*timelock.Record, error)

func (*DatabaseProvider) GetTimelockByVault

func (dp *DatabaseProvider) GetTimelockByVault(ctx context.Context, vault string) (*timelock.Record, error)

func (*DatabaseProvider) GetTimelockByVaultBatch

func (dp *DatabaseProvider) GetTimelockByVaultBatch(ctx context.Context, vaults ...string) (map[string]*timelock.Record, error)

func (*DatabaseProvider) GetTimelockCountByState

func (dp *DatabaseProvider) GetTimelockCountByState(ctx context.Context, state timelock_token.TimelockState) (uint64, error)

func (*DatabaseProvider) GetTotalExternalDepositedAmountInQuarks

func (dp *DatabaseProvider) GetTotalExternalDepositedAmountInQuarks(ctx context.Context, account string) (uint64, error)

func (*DatabaseProvider) GetTotalExternalDepositedAmountInQuarksBatch

func (dp *DatabaseProvider) GetTotalExternalDepositedAmountInQuarksBatch(ctx context.Context, accounts ...string) (map[string]uint64, error)

func (*DatabaseProvider) GetTotalExternalDepositedAmountInUsd

func (dp *DatabaseProvider) GetTotalExternalDepositedAmountInUsd(ctx context.Context, account string) (float64, error)

func (*DatabaseProvider) GetTransactedAmountForAntiMoneyLaundering

func (dp *DatabaseProvider) GetTransactedAmountForAntiMoneyLaundering(ctx context.Context, owner string, since time.Time) (uint64, float64, error)

func (*DatabaseProvider) GetTransaction

func (dp *DatabaseProvider) GetTransaction(ctx context.Context, sig string) (*transaction.Record, error)

Transaction --------------------------------------------------------------------------------

func (*DatabaseProvider) GetWebhook

func (dp *DatabaseProvider) GetWebhook(ctx context.Context, webhookId string) (*webhook.Record, error)

func (*DatabaseProvider) ImportExchangeRates

func (dp *DatabaseProvider) ImportExchangeRates(ctx context.Context, data *currency.MultiRateRecord) error

func (*DatabaseProvider) InitializeNewMerkleTree

func (dp *DatabaseProvider) InitializeNewMerkleTree(ctx context.Context, name string, levels uint8, seeds []merkletree.Seed, readOnly bool) (*merkletree.MerkleTree, error)

Merkle Tree

func (*DatabaseProvider) InitializeVmMemory

func (dp *DatabaseProvider) InitializeVmMemory(ctx context.Context, record *cvm_ram.Record) error

VM RAM --------------------------------------------------------------------------------

func (*DatabaseProvider) InitializeVmStorage

func (dp *DatabaseProvider) InitializeVmStorage(ctx context.Context, record *cvm_storage.Record) error

VM Storage --------------------------------------------------------------------------------

func (*DatabaseProvider) LoadExistingMerkleTree

func (dp *DatabaseProvider) LoadExistingMerkleTree(ctx context.Context, name string, readOnly bool) (*merkletree.MerkleTree, error)

func (*DatabaseProvider) MarkFulfillmentAsActivelyScheduled

func (dp *DatabaseProvider) MarkFulfillmentAsActivelyScheduled(ctx context.Context, id uint64) error

func (*DatabaseProvider) PutAllActions

func (dp *DatabaseProvider) PutAllActions(ctx context.Context, records ...*action.Record) error

Action --------------------------------------------------------------------------------

func (*DatabaseProvider) PutAllFulfillments

func (dp *DatabaseProvider) PutAllFulfillments(ctx context.Context, records ...*fulfillment.Record) error

func (*DatabaseProvider) PutFiatOnrampPurchase

func (dp *DatabaseProvider) PutFiatOnrampPurchase(ctx context.Context, record *onramp.Record) error

Onramp --------------------------------------------------------------------------------

func (*DatabaseProvider) ReserveVmMemory

func (dp *DatabaseProvider) ReserveVmMemory(ctx context.Context, vm string, accountType cvm.VirtualAccountType, address string) (string, uint16, error)

func (*DatabaseProvider) ReserveVmStorage

func (dp *DatabaseProvider) ReserveVmStorage(ctx context.Context, vm string, purpose cvm_storage.Purpose, address string) (string, error)

func (*DatabaseProvider) SaveBalanceCheckpoint

func (dp *DatabaseProvider) SaveBalanceCheckpoint(ctx context.Context, record *balance.Record) error

Balance --------------------------------------------------------------------------------

func (*DatabaseProvider) SaveExternalDeposit

func (dp *DatabaseProvider) SaveExternalDeposit(ctx context.Context, record *deposit.Record) error

External Deposits --------------------------------------------------------------------------------

func (*DatabaseProvider) SaveIntent

func (dp *DatabaseProvider) SaveIntent(ctx context.Context, record *intent.Record) error

func (*DatabaseProvider) SaveKey

func (dp *DatabaseProvider) SaveKey(ctx context.Context, record *vault.Record) error

func (*DatabaseProvider) SaveNonce

func (dp *DatabaseProvider) SaveNonce(ctx context.Context, record *nonce.Record) error

func (*DatabaseProvider) SaveRendezvous

func (dp *DatabaseProvider) SaveRendezvous(ctx context.Context, record *rendezvous.Record) error

Rendezvous --------------------------------------------------------------------------------

func (*DatabaseProvider) SaveTimelock

func (dp *DatabaseProvider) SaveTimelock(ctx context.Context, record *timelock.Record) error

Timelock --------------------------------------------------------------------------------

func (*DatabaseProvider) SaveTransaction

func (dp *DatabaseProvider) SaveTransaction(ctx context.Context, record *transaction.Record) error

func (*DatabaseProvider) UpdateAccountInfo

func (dp *DatabaseProvider) UpdateAccountInfo(ctx context.Context, record *account.Record) error

func (*DatabaseProvider) UpdateAction

func (dp *DatabaseProvider) UpdateAction(ctx context.Context, record *action.Record) error

func (*DatabaseProvider) UpdateFulfillment

func (dp *DatabaseProvider) UpdateFulfillment(ctx context.Context, record *fulfillment.Record) error

func (*DatabaseProvider) UpdateWebhook

func (dp *DatabaseProvider) UpdateWebhook(ctx context.Context, record *webhook.Record) error

type EstimatedData

type EstimatedData interface {
	TestForKnownAccount(ctx context.Context, account []byte) (bool, error)
	AddKnownAccount(ctx context.Context, account []byte) error
}

func NewEstimatedProvider

func NewEstimatedProvider() (EstimatedData, error)

type EstimatedProvider

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

func (*EstimatedProvider) AddKnownAccount

func (p *EstimatedProvider) AddKnownAccount(ctx context.Context, account []byte) error

func (*EstimatedProvider) TestForKnownAccount

func (p *EstimatedProvider) TestForKnownAccount(ctx context.Context, account []byte) (bool, error)

type Provider

type Provider interface {
	BlockchainData
	DatabaseData
	WebData
	EstimatedData

	GetBlockchainDataProvider() BlockchainData
	GetDatabaseDataProvider() DatabaseData
	GetWebDataProvider() WebData
	GetEstimatedDataProvider() EstimatedData
}

func NewDataProvider

func NewDataProvider(dbConfig *pg.Config, solanaEnv string, configProvider ConfigProvider) (Provider, error)

func NewDataProviderWithoutBlockchain

func NewDataProviderWithoutBlockchain(dbConfig *pg.Config, configProvider ConfigProvider) (Provider, error)

func NewTestDataProvider

func NewTestDataProvider() Provider

type WebData

type WebData interface {
	GetCurrentExchangeRatesFromExternalProviders(ctx context.Context) (*currency.MultiRateRecord, error)
	GetPastExchangeRatesFromExternalProviders(ctx context.Context, t time.Time) (*currency.MultiRateRecord, error)
}

func NewWebProvider

func NewWebProvider(configProvider ConfigProvider) (WebData, error)

type WebProvider

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

func (*WebProvider) GetCurrentExchangeRatesFromExternalProviders

func (dp *WebProvider) GetCurrentExchangeRatesFromExternalProviders(ctx context.Context) (*currency.MultiRateRecord, error)

Currency --------------------------------------------------------------------------------

func (*WebProvider) GetPastExchangeRatesFromExternalProviders

func (dp *WebProvider) GetPastExchangeRatesFromExternalProviders(ctx context.Context, t time.Time) (*currency.MultiRateRecord, error)

Jump to

Keyboard shortcuts

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