solana_kit_rpc_subscriptions library
Subscription client for the Solana Kit Dart SDK.
This package is the composition layer that ties together the RPC subscriptions API, WebSocket channel, subscribable pattern, JSON serialization, and error handling packages.
The primary entry points are the createSolanaRpcSubscriptions and
createSolanaRpcSubscriptionsFromTransport factory functions.
The package also exposes the building blocks for custom compositions:
- Autopinging: keep-alive pinging
- Channel pooling: reuse channels across subscriptions
- Subscription coalescing: deduplicate identical subscriptions
- JSON serialization: standard and BigInt-safe variants
Classes
- CancellationToken
- A readable token that completes when an operation is cancelled.
- CancellationTokenSource
- A source that owns a CancellationToken and can cancel it.
- ChannelPool
- A pool of channel entries.
- ChannelPoolEntry
- An entry in the channel pool.
- DefaultRpcSubscriptionsChannelConfig
- Configuration for creating a default RPC subscriptions channel creator.
- DefaultRpcSubscriptionsConfig
- Default configuration for Solana RPC subscriptions.
- DefaultRpcSubscriptionsTransportConfig
- Configuration for createDefaultRpcSubscriptionsTransport.
-
PendingRpcSubscriptionsRequest<
TNotification> - A pending RPC subscription request.
- RpcSubscribeOptions
- Options for subscribing to RPC notifications.
- RpcSubscriptions
- An RPC subscriptions client.
- RpcSubscriptionsApi
- An RPC subscriptions API that maps notification names to subscription plan creators.
- RpcSubscriptionsConfig
- Configuration for creating an RpcSubscriptions instance.
-
RpcSubscriptionsPlan<
TNotification> - Describes a subscription plan, including the request details and how to execute the subscription on a channel.
- RpcSubscriptionsRequest
- An RPC subscriptions request containing a method name and optional parameters.
- RpcSubscriptionsTransportConfig
- Configuration passed to an RpcSubscriptionsTransport.
- RpcSubscriptionsTransportExecuteConfig
- Configuration for executing a subscription on a channel.
Extensions
- SolanaRpcSubscriptionsMethods on RpcSubscriptions
- Typed convenience methods for common Solana RPC subscription requests.
Constants
-
pingPayload
→ const Map<
String, Object> - The JSON-RPC ping payload sent to keep connections alive.
Functions
-
createChannelPool(
) → ChannelPool - Creates a new empty ChannelPool.
-
createDefaultRpcSubscriptionsChannelCreator(
DefaultRpcSubscriptionsChannelConfig config) → RpcSubscriptionsChannelCreator - Creates a default RPC subscriptions channel creator with standard JSON serialization.
-
createDefaultRpcSubscriptionsTransport(
DefaultRpcSubscriptionsTransportConfig config) → RpcSubscriptionsTransport - Creates an RpcSubscriptionsTransport with default behaviors.
-
createDefaultSolanaRpcSubscriptionsChannelCreator(
DefaultRpcSubscriptionsChannelConfig config) → RpcSubscriptionsChannelCreator - Creates a default Solana RPC subscriptions channel creator.
-
createRpcSubscriptionsTransportFromChannelCreator(
RpcSubscriptionsChannelCreator createChannel) → RpcSubscriptionsTransport - Creates an RpcSubscriptionsTransport from a channel creator.
-
createSolanaJsonRpcIntegerOverflowError(
String methodName, List< Object> keyPath, BigInt value) → SolanaError -
Creates a
SolanaErrorfor an integer overflow in a JSON RPC response. -
createSolanaRpcSubscriptions(
String clusterUrl, [DefaultRpcSubscriptionsChannelConfig? config]) → RpcSubscriptions - Creates a Solana RPC subscriptions client with stable API methods.
-
createSolanaRpcSubscriptionsFromTransport(
RpcSubscriptionsTransport transport) → RpcSubscriptions -
Creates a Solana RPC subscriptions client from the given
transport. -
createSolanaRpcSubscriptionsUnstable(
String clusterUrl, [DefaultRpcSubscriptionsChannelConfig? config]) → RpcSubscriptions - Creates a Solana RPC subscriptions client with stable and unstable API methods.
-
createSubscriptionRpc(
RpcSubscriptionsConfig config) → RpcSubscriptions -
Creates an RpcSubscriptions instance from the given
config. -
getChannelPoolingChannelCreator(
RpcSubscriptionsChannelCreator createChannel, {required int maxSubscriptionsPerChannel, required int minChannels}) → RpcSubscriptionsChannelCreator - Wraps a channel creator to pool channels.
-
getRpcSubscriptionsChannelWithAutoping(
{required CancellationToken abortSignal, required RpcSubscriptionsChannel channel, required int intervalMs}) → RpcSubscriptionsChannel -
Wraps an
RpcSubscriptionsChannelto send periodic ping messages. -
getRpcSubscriptionsChannelWithBigIntJsonSerialization(
RpcSubscriptionsChannel channel) → RpcSubscriptionsChannel -
Wraps an
RpcSubscriptionsChannelto serialize outbound messages using BigInt-safe JSON serialization and deserialize inbound'message'events using BigInt-safe JSON parsing. -
getRpcSubscriptionsChannelWithJsonSerialization(
RpcSubscriptionsChannel channel) → RpcSubscriptionsChannel -
Wraps an
RpcSubscriptionsChannelto serialize outbound messages as JSON strings and deserialize inbound'message'events from JSON strings. -
getRpcSubscriptionsTransportWithSubscriptionCoalescing(
RpcSubscriptionsTransport transport) → RpcSubscriptionsTransport - Wraps an RpcSubscriptionsTransport to coalesce identical subscriptions.
Typedefs
-
RpcSubscriptionsChannelCreator
= Future<
RpcSubscriptionsChannel> Function({required CancellationToken abortSignal}) -
A function that creates an
RpcSubscriptionsChannel. -
RpcSubscriptionsTransport
= Future<
NotificationStreams> Function(RpcSubscriptionsTransportConfig config) - A function that acts as an RPC subscriptions transport.