data

package
v1.10.21-0...-4fff869 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2025 License: MIT Imports: 77 Imported by: 13

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)

	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, mint 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, mint 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) 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)
	GetAccountInfoByTokenAddressBatch(ctx context.Context, addresses ...string) (map[string]*account.Record, error)
	GetAccountInfoByAuthorityAddress(ctx context.Context, address string) (map[string]*account.Record, error)
	GetLatestAccountInfosByOwnerAddress(ctx context.Context, address string) (map[string]map[commonpb.AccountType][]*account.Record, error)
	GetLatestAccountInfoByOwnerAddressAndType(ctx context.Context, address string, accountType commonpb.AccountType) (map[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)
	GetAccountInfoCountRequiringDepositSync(ctx context.Context) (uint64, error)
	GetAccountInfoCountRequiringAutoReturnCheck(ctx context.Context) (uint64, error)

	// Actions
	// --------------------------------------------------------------------------------
	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)
	CountFeeActions(ctx context.Context, intent string, feeType transactionpb.FeePaymentAction_FeeType) (uint64, error)
	HasFeeAction(ctx context.Context, intent string, feeType transactionpb.FeePaymentAction_FeeType) (bool, error)

	// Balance
	// --------------------------------------------------------------------------------
	GetCachedBalanceVersion(ctx context.Context, account string) (uint64, error)
	AdvanceCachedBalanceVersion(ctx context.Context, account string, currentVersion uint64) error
	CheckNotClosedForBalanceUpdate(ctx context.Context, account string) error
	MarkAsClosedForBalanceUpdate(ctx context.Context, account string) error
	SaveExternalBalanceCheckpoint(ctx context.Context, record *balance.ExternalCheckpointRecord) error
	GetExternalBalanceCheckpoint(ctx context.Context, account string) (*balance.ExternalCheckpointRecord, 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, record *currency.MultiRateRecord) error
	PutCurrencyMetadata(ctx context.Context, record *currency.MetadataRecord) error
	GetCurrencyMetadata(ctx context.Context, mint string) (*currency.MetadataRecord, error)
	PutCurrencyReserve(ctx context.Context, record *currency.ReserveRecord) error
	GetCurrencyReserveAtTime(ctx context.Context, mint string, t time.Time) (*currency.ReserveRecord, 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)

	// 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)

	// Fulfillments
	// --------------------------------------------------------------------------------
	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

	// Intents
	// --------------------------------------------------------------------------------
	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)
	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)

	// Merkle Trees
	// --------------------------------------------------------------------------------
	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)

	// 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

	// Nonces
	// --------------------------------------------------------------------------------
	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)
	BatchClaimAvailableNoncesByPurpose(ctx context.Context, env nonce.Environment, instance string, purpose nonce.Purpose, limit int, nodeID string, minExpireAt, maxExpireAt time.Time) ([]*nonce.Record, error)
	SaveNonce(ctx context.Context, record *nonce.Record) error

	// Rendezvous
	// --------------------------------------------------------------------------------
	PutRendezvous(ctx context.Context, record *rendezvous.Record) error
	ExtendRendezvousExpiry(ctx context.Context, key, address string, expiry time.Time) error
	DeleteRendezvous(ctx context.Context, key, address string) error
	GetRendezvous(ctx context.Context, key string) (*rendezvous.Record, error)

	// Timelocks
	// --------------------------------------------------------------------------------
	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)
	GetTimelockBySwapPda(ctx context.Context, swapPda 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)

	// Transactions
	// --------------------------------------------------------------------------------
	GetTransaction(ctx context.Context, sig string) (*transaction.Record, error)
	SaveTransaction(ctx context.Context, record *transaction.Record) 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

	// 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) AdvanceCachedBalanceVersion

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

func (*DatabaseProvider) BatchClaimAvailableNoncesByPurpose

func (dp *DatabaseProvider) BatchClaimAvailableNoncesByPurpose(ctx context.Context, env nonce.Environment, instance string, purpose nonce.Purpose, limit int, nodeID string, minExpireAt, maxExpireAt time.Time) ([]*nonce.Record, error)

func (*DatabaseProvider) CheckNotClosedForBalanceUpdate

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

func (*DatabaseProvider) CountFeeActions

func (dp *DatabaseProvider) CountFeeActions(ctx context.Context, intent string, feeType transactionpb.FeePaymentAction_FeeType) (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) 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, address string) error

func (*DatabaseProvider) ExecuteInTx

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

func (*DatabaseProvider) ExtendRendezvousExpiry

func (dp *DatabaseProvider) ExtendRendezvousExpiry(ctx context.Context, key, address string, expiry time.Time) 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) (map[string]*account.Record, error)

func (*DatabaseProvider) GetAccountInfoByTokenAddress

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

func (*DatabaseProvider) GetAccountInfoByTokenAddressBatch

func (dp *DatabaseProvider) GetAccountInfoByTokenAddressBatch(ctx context.Context, addresses ...string) (map[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) 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) GetAllTimelocksByState

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

func (*DatabaseProvider) GetCachedBalanceVersion

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

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

func (*DatabaseProvider) GetCurrencyMetadata

func (dp *DatabaseProvider) GetCurrencyMetadata(ctx context.Context, mint string) (*currency.MetadataRecord, error)

func (*DatabaseProvider) GetCurrencyReserveAtTime

func (dp *DatabaseProvider) GetCurrencyReserveAtTime(ctx context.Context, mint string, t time.Time) (*currency.ReserveRecord, error)

func (*DatabaseProvider) GetExchangeRate

Currencies --------------------------------------------------------------------------------

func (*DatabaseProvider) GetExchangeRateHistory

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

func (*DatabaseProvider) GetExternalBalanceCheckpoint

func (dp *DatabaseProvider) GetExternalBalanceCheckpoint(ctx context.Context, account string) (*balance.ExternalCheckpointRecord, error)

func (*DatabaseProvider) GetExternalDeposit

func (dp *DatabaseProvider) GetExternalDeposit(ctx context.Context, signature, account string) (*deposit.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)

Fulfillments --------------------------------------------------------------------------------

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)

Intents --------------------------------------------------------------------------------

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) (map[string]*account.Record, error)

func (*DatabaseProvider) GetLatestAccountInfosByOwnerAddress

func (dp *DatabaseProvider) GetLatestAccountInfosByOwnerAddress(ctx context.Context, address string) (map[string]map[commonpb.AccountType][]*account.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)

Nonces --------------------------------------------------------------------------------

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) GetRendezvous

func (dp *DatabaseProvider) GetRendezvous(ctx context.Context, key string) (*rendezvous.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) GetTimelockBySwapPda

func (dp *DatabaseProvider) GetTimelockBySwapPda(ctx context.Context, swapPda 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 added in v1.3.0

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

func (*DatabaseProvider) GetTotalExternalDepositedAmountInQuarksBatch added in v1.3.0

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)

Transactions --------------------------------------------------------------------------------

func (*DatabaseProvider) HasFeeAction

func (dp *DatabaseProvider) HasFeeAction(ctx context.Context, intent string, feeType transactionpb.FeePaymentAction_FeeType) (bool, 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 Trees --------------------------------------------------------------------------------

func (*DatabaseProvider) InitializeVmMemory

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

CVM RAM --------------------------------------------------------------------------------

func (*DatabaseProvider) InitializeVmStorage

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

CVM Storage --------------------------------------------------------------------------------

func (*DatabaseProvider) LoadExistingMerkleTree

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

func (*DatabaseProvider) MarkAsClosedForBalanceUpdate

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

func (*DatabaseProvider) PutAllActions

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

Actions --------------------------------------------------------------------------------

func (*DatabaseProvider) PutAllFulfillments

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

func (*DatabaseProvider) PutCurrencyMetadata

func (dp *DatabaseProvider) PutCurrencyMetadata(ctx context.Context, record *currency.MetadataRecord) error

func (*DatabaseProvider) PutCurrencyReserve

func (dp *DatabaseProvider) PutCurrencyReserve(ctx context.Context, record *currency.ReserveRecord) error

func (*DatabaseProvider) PutRendezvous

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

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

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) SaveExternalBalanceCheckpoint

func (dp *DatabaseProvider) SaveExternalBalanceCheckpoint(ctx context.Context, record *balance.ExternalCheckpointRecord) error

func (*DatabaseProvider) SaveExternalDeposit

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

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) SaveTimelock

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

Timelocks --------------------------------------------------------------------------------

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

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