Versions in this module Expand all Collapse all v0 v0.2.0 Dec 1, 2025 v0.1.0 Nov 28, 2025 Changes in this version + const AirdropperOwnerPublicKeyEnvName + const ClientReceiveTimeoutConfigEnvName + const CreateOnSendWithdrawalUsdFeeConfigEnvName + const DisableSubmitIntentConfigEnvName + const DisableSwapsConfigEnvName + const EnableAirdropsConfigEnvName + const FeeCollectorOwnerPublicKeyConfigEnvName + const MaxAirdropUsdValueEnvName + const SubmitIntentTimeoutConfigEnvName + const SwapTimeoutConfigEnvName + var ErrDestinationNotManagedByCode = NewIntentDeniedError("a destination account is no longer managed by code") + var ErrIneligibleForAirdrop = errors.New("user isn't eligible for airdrop") + var ErrInsufficientAirdropperBalance = errors.New("insufficient airdropper balance") + var ErrInvalidAirdropTarget = errors.New("invalid airdrop target owner account") + var ErrInvalidSignature = errors.New("invalid signature provided") + var ErrMissingSignature = errors.New("at least one signature is missing") + var ErrNotImplemented = errors.New("feature not implemented") + var ErrSourceNotManagedByCode = NewIntentDeniedError("at least one source account is no longer managed by code") + var ErrTimedOutReceivingRequest = errors.New("timed out receiving request") + var ErrTooManyPayments = NewIntentDeniedError("too many payments") + var ErrTooManySignatures = errors.New("too many signatures provided") + var ErrTransactionLimitExceeded = NewIntentDeniedError("dollar value exceeds limit") + func GetAirdropIntentId(airdropType AirdropType, reference string) string + func NewTransactionServer(data code_data.Provider, vmIndexerClient indexerpb.IndexerClient, ...) (transactionpb.TransactionServer, error) + type AirdropIntegration interface + GetWelcomeBonusAmount func(ctx context.Context, owner *common.Account) (float64, currency_lib.Code, error) + func NewDefaultAirdropIntegration() AirdropIntegration + type AirdropType uint8 + const AirdropTypeOnboardingBonus + const AirdropTypeUnknown + const AirdropTypeWelcomeBonus + func (t AirdropType) String() string + type ConfigProvider func() *conf + func WithEnvConfigs() ConfigProvider + type CreateActionHandler interface + FulfillmentCount func() int + GetFulfillmentMetadata func(index int, nonce *common.Account, bh solana.Blockhash) (*newFulfillmentMetadata, error) + GetServerParameter func() *transactionpb.ServerParameter + OnCommitToDB func(ctx context.Context) error + PopulateMetadata func(actionRecord *action.Record) error + RequiresNonce func(fulfillmentIndex int) (bool, *common.Account) + func NewFeePaymentActionHandler(ctx context.Context, data code_data.Provider, ...) (CreateActionHandler, error) + func NewNoPrivacyTransferActionHandler(ctx context.Context, data code_data.Provider, ...) (CreateActionHandler, error) + func NewNoPrivacyWithdrawActionHandler(ctx context.Context, data code_data.Provider, intentRecord *intent.Record, ...) (CreateActionHandler, error) + func NewOpenAccountActionHandler(ctx context.Context, data code_data.Provider, ...) (CreateActionHandler, error) + type CreateIntentHandler interface + AllowCreation func(ctx context.Context, intentRecord *intent.Record, ...) error + CreatesNewUser func(ctx context.Context, metadata *transactionpb.Metadata) (bool, error) + GetBalanceLocks func(ctx context.Context, intentRecord *intent.Record, ...) ([]*intentBalanceLock, error) + IsNoop func(ctx context.Context, intentRecord *intent.Record, ...) (bool, error) + OnCommitToDB func(ctx context.Context) error + PopulateMetadata func(ctx context.Context, intentRecord *intent.Record, ...) error + func NewOpenAccountsIntentHandler(conf *conf, data code_data.Provider, antispamGuard *antispam.Guard) CreateIntentHandler + func NewPublicDistributionIntentHandler(conf *conf, data code_data.Provider, antispamGuard *antispam.Guard, ...) CreateIntentHandler + func NewReceivePaymentsPubliclyIntentHandler(conf *conf, data code_data.Provider, antispamGuard *antispam.Guard, ...) CreateIntentHandler + func NewSendPublicPaymentIntentHandler(conf *conf, data code_data.Provider, antispamGuard *antispam.Guard, ...) CreateIntentHandler + type CurrencyCreatorBuySellSwapHandler struct + func (h *CurrencyCreatorBuySellSwapHandler) GetServerParameters() *SwapServerParameters + func (h *CurrencyCreatorBuySellSwapHandler) MakeInstructions(ctx context.Context) ([]solana.Instruction, error) + type CurrencyCreatorBuySwapHandler struct + func (h *CurrencyCreatorBuySwapHandler) GetServerParameters() *SwapServerParameters + func (h *CurrencyCreatorBuySwapHandler) MakeInstructions(ctx context.Context) ([]solana.Instruction, error) + type CurrencyCreatorSellSwapHandler struct + func (h *CurrencyCreatorSellSwapHandler) GetServerParameters() *SwapServerParameters + func (h *CurrencyCreatorSellSwapHandler) MakeInstructions(ctx context.Context) ([]solana.Instruction, error) + type IntentDeniedError struct + func NewIntentDeniedError(message string) IntentDeniedError + func NewIntentDeniedErrorf(format string, args ...any) IntentDeniedError + func (e IntentDeniedError) Error() string + type IntentValidationError struct + func NewActionValidationError(action *transactionpb.Action, message string) IntentValidationError + func NewActionValidationErrorf(action *transactionpb.Action, message string, args ...any) IntentValidationError + func NewIntentValidationError(message string) IntentValidationError + func NewIntentValidationErrorf(format string, args ...any) IntentValidationError + func (e IntentValidationError) Error() string + type LocalSimulationResult struct + SimulationsByAccount map[string]TokenAccountSimulation + func LocalSimulation(ctx context.Context, data code_data.Provider, actions []*transactionpb.Action) (*LocalSimulationResult, error) + func (s LocalSimulationResult) CountFeePayments() int + func (s LocalSimulationResult) GetClosedAccounts() []TokenAccountSimulation + func (s LocalSimulationResult) GetFeePayments() []TransferSimulation + func (s LocalSimulationResult) GetOpenedAccounts() []TokenAccountSimulation + func (s LocalSimulationResult) HasAnyFeePayments() bool + type NoPrivacyTransferActionHandler struct + func (h *NoPrivacyTransferActionHandler) FulfillmentCount() int + func (h *NoPrivacyTransferActionHandler) GetFulfillmentMetadata(index int, nonce *common.Account, bh solana.Blockhash) (*newFulfillmentMetadata, error) + func (h *NoPrivacyTransferActionHandler) GetServerParameter() *transactionpb.ServerParameter + func (h *NoPrivacyTransferActionHandler) OnCommitToDB(ctx context.Context) error + func (h *NoPrivacyTransferActionHandler) PopulateMetadata(actionRecord *action.Record) error + func (h *NoPrivacyTransferActionHandler) RequiresNonce(index int) (bool, *common.Account) + type NoPrivacyWithdrawActionHandler struct + func (h *NoPrivacyWithdrawActionHandler) FulfillmentCount() int + func (h *NoPrivacyWithdrawActionHandler) GetFulfillmentMetadata(index int, nonce *common.Account, bh solana.Blockhash) (*newFulfillmentMetadata, error) + func (h *NoPrivacyWithdrawActionHandler) GetServerParameter() *transactionpb.ServerParameter + func (h *NoPrivacyWithdrawActionHandler) OnCommitToDB(ctx context.Context) error + func (h *NoPrivacyWithdrawActionHandler) PopulateMetadata(actionRecord *action.Record) error + func (h *NoPrivacyWithdrawActionHandler) RequiresNonce(index int) (bool, *common.Account) + type OpenAccountActionHandler struct + func (h *OpenAccountActionHandler) FulfillmentCount() int + func (h *OpenAccountActionHandler) GetFulfillmentMetadata(index int, nonce *common.Account, bh solana.Blockhash) (*newFulfillmentMetadata, error) + func (h *OpenAccountActionHandler) GetServerParameter() *transactionpb.ServerParameter + func (h *OpenAccountActionHandler) OnCommitToDB(ctx context.Context) error + func (h *OpenAccountActionHandler) PopulateMetadata(actionRecord *action.Record) error + func (h *OpenAccountActionHandler) RequiresNonce(index int) (bool, *common.Account) + type OpenAccountsIntentHandler struct + func (h *OpenAccountsIntentHandler) AllowCreation(ctx context.Context, intentRecord *intent.Record, ...) error + func (h *OpenAccountsIntentHandler) CreatesNewUser(ctx context.Context, metadata *transactionpb.Metadata) (bool, error) + func (h *OpenAccountsIntentHandler) GetBalanceLocks(ctx context.Context, intentRecord *intent.Record, ...) ([]*intentBalanceLock, error) + func (h *OpenAccountsIntentHandler) IsNoop(ctx context.Context, intentRecord *intent.Record, ...) (bool, error) + func (h *OpenAccountsIntentHandler) OnCommitToDB(ctx context.Context) error + func (h *OpenAccountsIntentHandler) PopulateMetadata(ctx context.Context, intentRecord *intent.Record, ...) error + type PublicDistributionIntentHandler struct + func (h *PublicDistributionIntentHandler) AllowCreation(ctx context.Context, intentRecord *intent.Record, ...) error + func (h *PublicDistributionIntentHandler) CreatesNewUser(ctx context.Context, metadata *transactionpb.Metadata) (bool, error) + func (h *PublicDistributionIntentHandler) GetBalanceLocks(ctx context.Context, intentRecord *intent.Record, ...) ([]*intentBalanceLock, error) + func (h *PublicDistributionIntentHandler) IsNoop(ctx context.Context, intentRecord *intent.Record, ...) (bool, error) + func (h *PublicDistributionIntentHandler) OnCommitToDB(ctx context.Context) error + func (h *PublicDistributionIntentHandler) PopulateMetadata(ctx context.Context, intentRecord *intent.Record, ...) error + type ReceivePaymentsPubliclyIntentHandler struct + func (h *ReceivePaymentsPubliclyIntentHandler) AllowCreation(ctx context.Context, intentRecord *intent.Record, ...) error + func (h *ReceivePaymentsPubliclyIntentHandler) CreatesNewUser(ctx context.Context, metadata *transactionpb.Metadata) (bool, error) + func (h *ReceivePaymentsPubliclyIntentHandler) GetBalanceLocks(ctx context.Context, intentRecord *intent.Record, ...) ([]*intentBalanceLock, error) + func (h *ReceivePaymentsPubliclyIntentHandler) IsNoop(ctx context.Context, intentRecord *intent.Record, ...) (bool, error) + func (h *ReceivePaymentsPubliclyIntentHandler) OnCommitToDB(ctx context.Context) error + func (h *ReceivePaymentsPubliclyIntentHandler) PopulateMetadata(ctx context.Context, intentRecord *intent.Record, ...) error + type SendPublicPaymentIntentHandler struct + func (h *SendPublicPaymentIntentHandler) AllowCreation(ctx context.Context, intentRecord *intent.Record, ...) error + func (h *SendPublicPaymentIntentHandler) CreatesNewUser(ctx context.Context, metadata *transactionpb.Metadata) (bool, error) + func (h *SendPublicPaymentIntentHandler) GetBalanceLocks(ctx context.Context, intentRecord *intent.Record, ...) ([]*intentBalanceLock, error) + func (h *SendPublicPaymentIntentHandler) IsNoop(ctx context.Context, intentRecord *intent.Record, ...) (bool, error) + func (h *SendPublicPaymentIntentHandler) OnCommitToDB(ctx context.Context) error + func (h *SendPublicPaymentIntentHandler) PopulateMetadata(ctx context.Context, intentRecord *intent.Record, ...) error + type StaleStateError struct + func NewActionWithStaleStateError(action *transactionpb.Action, message string) StaleStateError + func NewStaleStateError(message string) StaleStateError + func NewStaleStateErrorf(format string, args ...any) StaleStateError + func (e StaleStateError) Error() string + type SubmitIntentIntegration interface + AllowCreation func(ctx context.Context, intentRecord *intent.Record, ...) error + OnSuccess func(ctx context.Context, intentRecord *intent.Record) error + func NewDefaultSubmitIntentIntegration() SubmitIntentIntegration + type SwapDeniedError struct + func NewSwapDeniedError(message string) SwapDeniedError + func NewSwapDeniedErrorf(format string, args ...any) SwapDeniedError + func (e SwapDeniedError) Error() string + type SwapHandler interface + GetServerParameters func() *SwapServerParameters + MakeInstructions func(ctx context.Context) ([]solana.Instruction, error) + func NewCurrencyCreatorBuySellSwapHandler(data code_data.Provider, vmIndexerClient indexerpb.IndexerClient, ...) SwapHandler + func NewCurrencyCreatorBuySwapHandler(data code_data.Provider, vmIndexerClient indexerpb.IndexerClient, ...) SwapHandler + func NewCurrencyCreatorSellSwapHandler(data code_data.Provider, vmIndexerClient indexerpb.IndexerClient, ...) SwapHandler + type SwapServerParameters struct + ComputeUnitLimit uint32 + ComputeUnitPrice uint64 + MemoValue string + MemoryAccount *common.Account + MemoryIndex uint16 + type SwapValidationError struct + func NewSwapValidationError(message string) SwapValidationError + func NewSwapValidationErrorf(format string, args ...any) SwapValidationError + func (e SwapValidationError) Error() string + type TokenAccountSimulation struct + CloseAction *transactionpb.Action + Closed bool + IsAutoReturned bool + MintAccount *common.Account + OpenAction *transactionpb.Action + Opened bool + TokenAccount *common.Account + Transfers []TransferSimulation + func FilterAutoReturnedAccounts(in []TokenAccountSimulation) []TokenAccountSimulation + func (s TokenAccountSimulation) CountIncomingTransfers() int + func (s TokenAccountSimulation) CountOutgoingTransfers() int + func (s TokenAccountSimulation) CountPrivateTransfers() int + func (s TokenAccountSimulation) CountPublicTransfers() int + func (s TokenAccountSimulation) CountWithdrawals() int + func (s TokenAccountSimulation) EnforceBalances(ctx context.Context, data code_data.Provider, currentBalance uint64) error + func (s TokenAccountSimulation) GetAutoReturns() []TransferSimulation + func (s TokenAccountSimulation) GetDeltaQuarks(includeAutoReturns bool) int64 + func (s TokenAccountSimulation) GetIncomingTransfers() []TransferSimulation + func (s TokenAccountSimulation) GetOutgoingTransfers() []TransferSimulation + func (s TokenAccountSimulation) GetPrivateTransfers() []TransferSimulation + func (s TokenAccountSimulation) GetPublicTransfers() []TransferSimulation + func (s TokenAccountSimulation) GetWithdraws() []TransferSimulation + func (s TokenAccountSimulation) HasAnyPrivateTransfers() bool + func (s TokenAccountSimulation) HasAnyPublicTransfers() bool + func (s TokenAccountSimulation) HasAnyWithdraws() bool + func (s TokenAccountSimulation) HasIncomingTransfer() bool + func (s TokenAccountSimulation) HasOutgoingTransfer() bool + func (s TokenAccountSimulation) RequiresBalanceCheck() bool + func (s TokenAccountSimulation) RequiresBalanceFetch() bool + type TransferSimulation struct + Action *transactionpb.Action + DeltaQuarks int64 + IsAutoReturn bool + IsFee bool + IsPrivate bool + IsWithdraw bool + func FilterAutoReturnTransfers(in []TransferSimulation) []TransferSimulation