Kit
Type aliases

RpcSubscriptionsFromTransport

RpcSubscriptionsFromTransport<TRpcMethods, TRpcSubscriptionsTransport> = TRpcSubscriptionsTransport extends RpcSubscriptionsTransportDevnet ? RpcSubscriptionsDevnet<TRpcMethods> : TRpcSubscriptionsTransport extends RpcSubscriptionsTransportTestnet ? RpcSubscriptionsTestnet<TRpcMethods> : TRpcSubscriptionsTransport extends RpcSubscriptionsTransportMainnet ? RpcSubscriptionsMainnet<TRpcMethods> : RpcSubscriptions<TRpcMethods>

Given a RpcSubscriptionsTransport and a set of RPC methods denoted by TRpcMethods, this utility type will resolve to a RpcSubscriptions that supports those methods on as specific a cluster as possible.

Type Parameters

Type Parameter
TRpcMethods
TRpcSubscriptionsTransport extends RpcSubscriptionsTransport

Example

function createCustomRpcSubscriptions<TRpcSubscriptionsTransport extends RpcSubscriptionsTransport>(
    transport: TRpcSubscriptionsTransport,
): RpcSubscriptionsFromTransport<MyCustomRpcMethods, TRpcSubscriptionsTransport> {
    /* ... */
}
const transport = createDefaultRpcSubscriptionsTransport({
    createChannel: createDefaultSolanaRpcSubscriptionsChannelCreator({
        url: mainnet('ws://rpc.company'),
    }),
});
transport satisfies RpcSubscriptionsTransportMainnet; // OK
const rpcSubscriptions = createCustomRpcSubscriptions(transport);
rpcSubscriptions satisfies RpcSubscriptionsMainnet<MyCustomRpcMethods>; // OK

On this page