createReactiveStoreWithInitialValueAndSlotTracking
Creates a ReactiveStore that combines an initial RPC fetch with an ongoing subscription to keep its state up to date.
The store uses slot-based comparison to ensure that only the most recent value is kept, regardless of whether it came from the initial RPC response or a subscription notification. This prevents stale data from overwriting newer data when the RPC response and subscription notifications arrive out of order.
Things to note:
getState()returnsundefineduntil the first response or notification arrives. Once data arrives, it returns a SolanaRpcResponse containing the value and the slot context at which it was observed.- On error from either source,
getState()continues to return the last known value andgetError()returns the error. Only the first error is captured. - When an error occurs, the abort signal is triggered, cancelling both the RPC request and the subscription.
- Triggering the caller's abort signal disconnects the store from both sources.
Type Parameters
| Type Parameter |
|---|
TRpcValue |
TSubscriptionValue |
TItem |
Parameters
| Parameter | Type | Description |
|---|---|---|
config | CreateReactiveStoreWithInitialValueAndSlotTrackingConfig<TRpcValue, TSubscriptionValue, TItem> | - |
Returns
ReactiveStore<Readonly<{
context: Readonly<{
slot: Slot;
}>;
value: TItem;
}>>
Example
See
ReactiveStore