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 DisableTransactionSchedulingConfigEnvName + const DisableTransactionSubmissionConfigEnvName + const EnableSubsidizerChecksConfigEnvName + const FulfillmentBatchSizeConfigEnvName + const MaxGlobalFailedFulfillmentsConfigEnvName + var ErrCouldNotGetIntentLock = errors.New("could not get intent lock") + var ErrInvalidActionStateTransition = errors.New("invalid action state transition") + var ErrInvalidFulfillmentSignature = errors.New("invalid fulfillment signature") + var ErrInvalidFulfillmentStateTransition = errors.New("invalid fulfillment state transition") + var ErrInvalidIntentStateTransition = errors.New("invalid intent state transition") + func New(data code_data.Provider, scheduler Scheduler, ...) (async.Service, error) + type ActionHandler interface + OnFulfillmentStateChange func(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) error + func NewCloseEmptyAccountActionHandler(data code_data.Provider) ActionHandler + func NewNoPrivacyTransferActionHandler(data code_data.Provider) ActionHandler + func NewNoPrivacyWithdrawActionHandler(data code_data.Provider) ActionHandler + func NewOpenAccountActionHandler(data code_data.Provider) ActionHandler + type CloseEmptyAccountActionHandler struct + func (h *CloseEmptyAccountActionHandler) OnFulfillmentStateChange(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) error + type CloseEmptyTimelockAccountFulfillmentHandler struct + func (h *CloseEmptyTimelockAccountFulfillmentHandler) CanSubmitToBlockchain(ctx context.Context, fulfillmentRecord *fulfillment.Record) (scheduled bool, err error) + func (h *CloseEmptyTimelockAccountFulfillmentHandler) IsRevoked(ctx context.Context, fulfillmentRecord *fulfillment.Record) (revoked bool, nonceUsed bool, err error) + func (h *CloseEmptyTimelockAccountFulfillmentHandler) MakeOnDemandTransaction(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) (*solana.Transaction, []*common.Account, error) + func (h *CloseEmptyTimelockAccountFulfillmentHandler) OnFailure(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) (recovered bool, err error) + func (h *CloseEmptyTimelockAccountFulfillmentHandler) OnSuccess(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) error + func (h *CloseEmptyTimelockAccountFulfillmentHandler) SupportsOnDemandTransactions() bool + type ConfigProvider func() *conf + func WithEnvConfigs() ConfigProvider + type FulfillmentHandler interface + CanSubmitToBlockchain func(ctx context.Context, fulfillmentRecord *fulfillment.Record) (scheduled bool, err error) + IsRevoked func(ctx context.Context, fulfillmentRecord *fulfillment.Record) (revoked bool, nonceUsed bool, err error) + MakeOnDemandTransaction func(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) (*solana.Transaction, []*common.Account, error) + OnFailure func(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) (recovered bool, err error) + OnSuccess func(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) error + SupportsOnDemandTransactions func() bool + func NewCloseEmptyTimelockAccountFulfillmentHandler(data code_data.Provider, vmIndexerClient indexerpb.IndexerClient) FulfillmentHandler + func NewInitializeLockedTimelockAccountFulfillmentHandler(data code_data.Provider) FulfillmentHandler + func NewNoPrivacyTransferWithAuthorityFulfillmentHandler(data code_data.Provider, vmIndexerClient indexerpb.IndexerClient) FulfillmentHandler + func NewNoPrivacyWithdrawFulfillmentHandler(data code_data.Provider, vmIndexerClient indexerpb.IndexerClient) FulfillmentHandler + type InitializeLockedTimelockAccountFulfillmentHandler struct + func (h *InitializeLockedTimelockAccountFulfillmentHandler) CanSubmitToBlockchain(ctx context.Context, fulfillmentRecord *fulfillment.Record) (scheduled bool, err error) + func (h *InitializeLockedTimelockAccountFulfillmentHandler) IsRevoked(ctx context.Context, fulfillmentRecord *fulfillment.Record) (revoked bool, nonceUsed bool, err error) + func (h *InitializeLockedTimelockAccountFulfillmentHandler) MakeOnDemandTransaction(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) (*solana.Transaction, []*common.Account, error) + func (h *InitializeLockedTimelockAccountFulfillmentHandler) OnFailure(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) (recovered bool, err error) + func (h *InitializeLockedTimelockAccountFulfillmentHandler) OnSuccess(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) error + func (h *InitializeLockedTimelockAccountFulfillmentHandler) SupportsOnDemandTransactions() bool + type IntentHandler interface + OnActionUpdated func(ctx context.Context, intentId string) error + func NewOpenAccountsIntentHandler(data code_data.Provider) IntentHandler + func NewPublicDistributionIntentHandler(data code_data.Provider) IntentHandler + func NewReceivePaymentsPubliclyIntentHandler(data code_data.Provider) IntentHandler + func NewSendPublicPaymentIntentHandler(data code_data.Provider) IntentHandler + type NoPrivacyTransferActionHandler struct + func (h *NoPrivacyTransferActionHandler) OnFulfillmentStateChange(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) error + type NoPrivacyTransferWithAuthorityFulfillmentHandler struct + func (h *NoPrivacyTransferWithAuthorityFulfillmentHandler) CanSubmitToBlockchain(ctx context.Context, fulfillmentRecord *fulfillment.Record) (scheduled bool, err error) + func (h *NoPrivacyTransferWithAuthorityFulfillmentHandler) IsRevoked(ctx context.Context, fulfillmentRecord *fulfillment.Record) (revoked bool, nonceUsed bool, err error) + func (h *NoPrivacyTransferWithAuthorityFulfillmentHandler) MakeOnDemandTransaction(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) (*solana.Transaction, []*common.Account, error) + func (h *NoPrivacyTransferWithAuthorityFulfillmentHandler) OnFailure(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) (recovered bool, err error) + func (h *NoPrivacyTransferWithAuthorityFulfillmentHandler) OnSuccess(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) error + func (h *NoPrivacyTransferWithAuthorityFulfillmentHandler) SupportsOnDemandTransactions() bool + type NoPrivacyWithdrawActionHandler struct + func (h *NoPrivacyWithdrawActionHandler) OnFulfillmentStateChange(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) error + type NoPrivacyWithdrawFulfillmentHandler struct + func (h *NoPrivacyWithdrawFulfillmentHandler) CanSubmitToBlockchain(ctx context.Context, fulfillmentRecord *fulfillment.Record) (scheduled bool, err error) + func (h *NoPrivacyWithdrawFulfillmentHandler) IsRevoked(ctx context.Context, fulfillmentRecord *fulfillment.Record) (revoked bool, nonceUsed bool, err error) + func (h *NoPrivacyWithdrawFulfillmentHandler) MakeOnDemandTransaction(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) (*solana.Transaction, []*common.Account, error) + func (h *NoPrivacyWithdrawFulfillmentHandler) OnFailure(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) (recovered bool, err error) + func (h *NoPrivacyWithdrawFulfillmentHandler) OnSuccess(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) error + func (h *NoPrivacyWithdrawFulfillmentHandler) SupportsOnDemandTransactions() bool + type OpenAccountActionHandler struct + func (h *OpenAccountActionHandler) OnFulfillmentStateChange(ctx context.Context, fulfillmentRecord *fulfillment.Record, ...) error + type OpenAccountsIntentHandler struct + func (h *OpenAccountsIntentHandler) OnActionUpdated(ctx context.Context, intentId string) error + type PublicDistributionIntentHandler struct + func (h *PublicDistributionIntentHandler) OnActionUpdated(ctx context.Context, intentId string) error + type ReceivePaymentsPubliclyIntentHandler struct + func (h *ReceivePaymentsPubliclyIntentHandler) OnActionUpdated(ctx context.Context, intentId string) error + type Scheduler interface + CanSubmitToBlockchain func(ctx context.Context, record *fulfillment.Record) (bool, error) + func NewContextualScheduler(data code_data.Provider, indexerClient indexerpb.IndexerClient, ...) Scheduler + type SendPublicPaymentIntentHandler struct + func (h *SendPublicPaymentIntentHandler) OnActionUpdated(ctx context.Context, intentId string) error