Kit
Type aliases

RpcFromTransport

RpcFromTransport<TRpcMethods, TRpcTransport> = TRpcTransport extends RpcTransportDevnet ? RpcDevnet<TRpcMethods> : TRpcTransport extends RpcTransportTestnet ? RpcTestnet<TRpcMethods> : TRpcTransport extends RpcTransportMainnet ? RpcMainnet<TRpcMethods> : Rpc<TRpcMethods>

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

Type Parameters

Type Parameter
TRpcMethods
TRpcTransport extends RpcTransport

Example

function createCustomRpc<TRpcTransport extends RpcTransport>(
    transport: TRpcTransport,
): RpcFromTransport<MyCustomRpcMethods, TRpcTransport> {
    /* ... */
}
const transport = createDefaultRpcTransport({ url: mainnet('http://rpc.company') });
transport satisfies RpcTransportMainnet; // OK
const rpc = createCustomRpc(transport);
rpc satisfies RpcMainnet<MyCustomRpcMethods>; // OK

On this page