@@ -2,7 +2,12 @@ import type { SolanaRpcSubscriptionsApi, SolanaRpcSubscriptionsApiUnstable } fro
22import type { RpcSubscriptions , RpcSubscriptionsTransport } from '@solana/rpc-subscriptions-spec' ;
33import { devnet , mainnet , testnet } from '@solana/rpc-types' ;
44
5- import { createSolanaRpcSubscriptions , createSolanaRpcSubscriptions_UNSTABLE } from '../rpc-subscriptions' ;
5+ import {
6+ createSolanaRpcSubscriptions ,
7+ createSolanaRpcSubscriptions_UNSTABLE ,
8+ createSolanaRpcSubscriptionsFromTransport ,
9+ createSolanaRpcSubscriptionsFromTransport_UNSTABLE ,
10+ } from '../rpc-subscriptions' ;
611import type {
712 RpcSubscriptionsDevnet ,
813 RpcSubscriptionsMainnet ,
@@ -13,163 +18,219 @@ import type {
1318} from '../rpc-subscriptions-clusters' ;
1419import { createDefaultRpcSubscriptionsTransport } from '../rpc-subscriptions-transport' ;
1520
16- // Creating default websocket transports
21+ // Define cluster-aware URLs and transports.
1722
1823const genericUrl = 'http://localhost:8899' ;
1924const devnetUrl = devnet ( 'https://api.devnet.solana.com' ) ;
2025const testnetUrl = testnet ( 'https://api.testnet.solana.com' ) ;
2126const mainnetUrl = mainnet ( 'https://api.mainnet-beta.solana.com' ) ;
2227
23- // No cluster specified should be generic `RpcSubscriptionsTransport`
24- createDefaultRpcSubscriptionsTransport ( { url : genericUrl } ) satisfies RpcSubscriptionsTransport ;
25- //@ts -expect-error Should not be a devnet transport
26- createDefaultRpcSubscriptionsTransport ( { url : genericUrl } ) satisfies RpcSubscriptionsTransportDevnet ;
27- //@ts -expect-error Should not be a testnet transport
28- createDefaultRpcSubscriptionsTransport ( { url : genericUrl } ) satisfies RpcSubscriptionsTransportTestnet ;
29- //@ts -expect-error Should not be a mainnet transport
30- createDefaultRpcSubscriptionsTransport ( { url : genericUrl } ) satisfies RpcSubscriptionsTransportMainnet ;
31-
32- // Devnet cluster should be `RpcSubscriptionsTransportDevnet`
33- createDefaultRpcSubscriptionsTransport ( { url : devnetUrl } ) satisfies RpcSubscriptionsTransportDevnet ;
34- //@ts -expect-error Should not be a testnet transport
35- createDefaultRpcSubscriptionsTransport ( { url : devnetUrl } ) satisfies RpcSubscriptionsTransportTestnet ;
36- //@ts -expect-error Should not be a mainnet transport
37- createDefaultRpcSubscriptionsTransport ( { url : devnetUrl } ) satisfies RpcSubscriptionsTransportMainnet ;
38-
39- // Testnet cluster should be `RpcSubscriptionsTransportTestnet`
40- createDefaultRpcSubscriptionsTransport ( { url : testnetUrl } ) satisfies RpcSubscriptionsTransportTestnet ;
41- //@ts -expect-error Should not be a devnet transport
42- createDefaultRpcSubscriptionsTransport ( { url : testnetUrl } ) satisfies RpcSubscriptionsTransportDevnet ;
43- //@ts -expect-error Should not be a mainnet transport
44- createDefaultRpcSubscriptionsTransport ( { url : testnetUrl } ) satisfies RpcSubscriptionsTransportMainnet ;
45-
46- // Mainnet cluster should be `RpcSubscriptionsTransportMainnet`
47- createDefaultRpcSubscriptionsTransport ( { url : mainnetUrl } ) satisfies RpcSubscriptionsTransportMainnet ;
48- //@ts -expect-error Should not be a devnet transport
49- createDefaultRpcSubscriptionsTransport ( { url : mainnetUrl } ) satisfies RpcSubscriptionsTransportDevnet ;
50- //@ts -expect-error Should not be a testnet transport
51- createDefaultRpcSubscriptionsTransport ( { url : mainnetUrl } ) satisfies RpcSubscriptionsTransportTestnet ;
52-
53- // Creating JSON Subscription RPC clients
54-
55- const genericWebSocketTransport = createDefaultRpcSubscriptionsTransport ( {
56- sendBufferHighWatermark : 0 ,
57- url : genericUrl ,
58- } ) ;
59- const devnetWebSocketTransport = createDefaultRpcSubscriptionsTransport ( {
60- sendBufferHighWatermark : 0 ,
61- url : devnetUrl ,
62- } ) ;
63- const testnetWebSocketTransport = createDefaultRpcSubscriptionsTransport ( {
64- sendBufferHighWatermark : 0 ,
65- url : testnetUrl ,
66- } ) ;
67- const mainnetWebSocketTransport = createDefaultRpcSubscriptionsTransport ( {
68- sendBufferHighWatermark : 0 ,
69- url : mainnetUrl ,
70- } ) ;
71-
72- // Checking stable vs unstable subscriptions
73-
74- createSolanaRpcSubscriptions ( {
75- transport : genericWebSocketTransport ,
76- } ) satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
77- // @ts -expect-error Should not have unstable subscriptions
78- createSolanaRpcSubscriptions ( config ) satisfies RpcSubscriptions <
79- SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable
80- > ;
81-
82- createSolanaRpcSubscriptions_UNSTABLE ( { transport : genericWebSocketTransport } ) satisfies RpcSubscriptions <
83- SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable
84- > ;
85-
86- // Checking cluster-level subscriptions API
87-
88- // No cluster specified should be generic `RpcSubscriptions`
89- createSolanaRpcSubscriptions ( {
90- transport : genericWebSocketTransport ,
91- } ) satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
92- createSolanaRpcSubscriptions ( {
93- transport : genericWebSocketTransport ,
94- //@ts -expect-error Should not be a devnet RPC
95- } ) satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi > ;
96- createSolanaRpcSubscriptions ( {
97- transport : genericWebSocketTransport ,
98- //@ts -expect-error Should not be a testnet RPC
99- } ) satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi > ;
100- createSolanaRpcSubscriptions ( {
101- transport : genericWebSocketTransport ,
102- //@ts -expect-error Should not be a mainnet RPC
103- } ) satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi > ;
104-
105- // Devnet cluster should be `RpcSubscriptionsDevnet`
106- createSolanaRpcSubscriptions ( {
107- transport : devnetWebSocketTransport ,
108- } ) satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
109- createSolanaRpcSubscriptions ( {
110- transport : devnetWebSocketTransport ,
111- } ) satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi > ;
112- createSolanaRpcSubscriptions ( {
113- transport : devnetWebSocketTransport ,
114- //@ts -expect-error Should not be a testnet RPC
115- } ) satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi > ;
116- createSolanaRpcSubscriptions ( {
117- transport : devnetWebSocketTransport ,
118- //@ts -expect-error Should not be a mainnet RPC
119- } ) satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi > ;
120- //@ts -expect-error Should not have unstable subscriptions
121- createSolanaRpcSubscriptions ( { transport : devnetWebSocketTransport } ) satisfies RpcSubscriptionsDevnet <
122- SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable
123- > ;
124- // Unstable methods present with proper initializer
125- createSolanaRpcSubscriptions_UNSTABLE ( { transport : devnetWebSocketTransport } ) satisfies RpcSubscriptionsDevnet <
126- SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable
127- > ;
128-
129- // Testnet cluster should be `RpcSubscriptionsTestnet`
130- createSolanaRpcSubscriptions ( {
131- transport : testnetWebSocketTransport ,
132- } ) satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
133- createSolanaRpcSubscriptions ( {
134- transport : testnetWebSocketTransport ,
135- } ) satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi > ;
136- createSolanaRpcSubscriptions ( {
137- transport : testnetWebSocketTransport ,
138- //@ts -expect-error Should not be a devnet RPC
139- } ) satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi > ;
140- createSolanaRpcSubscriptions ( {
141- transport : testnetWebSocketTransport ,
142- //@ts -expect-error Should not be a mainnet RPC
143- } ) satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi > ;
144- //@ts -expect-error Should not have unstable subscriptions
145- createSolanaRpcSubscriptions ( { transport : testnetWebSocketTransport } ) satisfies RpcSubscriptionsTestnet <
146- SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable
147- > ;
148- // Unstable methods present with proper initializer
149- createSolanaRpcSubscriptions_UNSTABLE ( { transport : testnetWebSocketTransport } ) satisfies RpcSubscriptionsTestnet <
150- SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable
151- > ;
152-
153- // Mainnet cluster should be `RpcSubscriptionsMainnet`
154- createSolanaRpcSubscriptions ( {
155- transport : mainnetWebSocketTransport ,
156- } ) satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
157- createSolanaRpcSubscriptions ( {
158- transport : mainnetWebSocketTransport ,
159- } ) satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi > ;
160- createSolanaRpcSubscriptions ( {
161- transport : mainnetWebSocketTransport ,
162- //@ts -expect-error Should not be a devnet RPC
163- } ) satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi > ;
164- createSolanaRpcSubscriptions ( {
165- transport : mainnetWebSocketTransport ,
166- //@ts -expect-error Should not be a testnet RPC
167- } ) satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi > ;
168- //@ts -expect-error Should not have unstable subscriptions
169- createSolanaRpcSubscriptions ( { transport : mainnetWebSocketTransport } ) satisfies RpcSubscriptionsMainnet <
170- SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable
171- > ;
172- // Unstable methods present with proper initializer
173- createSolanaRpcSubscriptions_UNSTABLE ( { transport : mainnetWebSocketTransport } ) satisfies RpcSubscriptionsMainnet <
174- SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable
175- > ;
28+ const genericTransport = createDefaultRpcSubscriptionsTransport ( { url : genericUrl } ) ;
29+ const devnetTransport = createDefaultRpcSubscriptionsTransport ( { url : devnetUrl } ) ;
30+ const testnetTransport = createDefaultRpcSubscriptionsTransport ( { url : testnetUrl } ) ;
31+ const mainnetTransport = createDefaultRpcSubscriptionsTransport ( { url : mainnetUrl } ) ;
32+
33+ // [DEFINE] createDefaultRpcSubscriptionsTransport.
34+ {
35+ // No cluster specified should be generic `RpcSubscriptionsTransport`.
36+ {
37+ genericTransport satisfies RpcSubscriptionsTransport ;
38+ //@ts -expect-error Should not be a devnet transport
39+ genericTransport satisfies RpcSubscriptionsTransportDevnet ;
40+ //@ts -expect-error Should not be a testnet transport
41+ genericTransport satisfies RpcSubscriptionsTransportTestnet ;
42+ //@ts -expect-error Should not be a mainnet transport
43+ genericTransport satisfies RpcSubscriptionsTransportMainnet ;
44+ }
45+
46+ // Devnet cluster should be `RpcSubscriptionsTransportDevnet`.
47+ {
48+ devnetTransport satisfies RpcSubscriptionsTransportDevnet ;
49+ //@ts -expect-error Should not be a testnet transport
50+ devnetTransport satisfies RpcSubscriptionsTransportTestnet ;
51+ //@ts -expect-error Should not be a mainnet transport
52+ devnetTransport satisfies RpcSubscriptionsTransportMainnet ;
53+ }
54+
55+ // Testnet cluster should be `RpcSubscriptionsTransportTestnet`.
56+ {
57+ testnetTransport satisfies RpcSubscriptionsTransportTestnet ;
58+ //@ts -expect-error Should not be a devnet transport
59+ testnetTransport satisfies RpcSubscriptionsTransportDevnet ;
60+ //@ts -expect-error Should not be a mainnet transport
61+ testnetTransport satisfies RpcSubscriptionsTransportMainnet ;
62+ }
63+
64+ // Mainnet cluster should be `RpcSubscriptionsTransportMainnet`.
65+ {
66+ mainnetTransport satisfies RpcSubscriptionsTransportMainnet ;
67+ //@ts -expect-error Should not be a devnet transport
68+ mainnetTransport satisfies RpcSubscriptionsTransportDevnet ;
69+ //@ts -expect-error Should not be a testnet transport
70+ mainnetTransport satisfies RpcSubscriptionsTransportTestnet ;
71+ }
72+ }
73+
74+ // [DEFINE] createSolanaRpcSubscriptionsFromTransport.
75+ {
76+ const genericRpc = createSolanaRpcSubscriptionsFromTransport ( genericTransport ) ;
77+ const devnetRpc = createSolanaRpcSubscriptionsFromTransport ( devnetTransport ) ;
78+ const tesnetRpc = createSolanaRpcSubscriptionsFromTransport ( testnetTransport ) ;
79+ const mainnetRpc = createSolanaRpcSubscriptionsFromTransport ( mainnetTransport ) ;
80+
81+ // Checking stable subscriptions.
82+ {
83+ genericRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
84+ devnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
85+ tesnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
86+ mainnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
87+
88+ // @ts -expect-error Should not have unstable subscriptions
89+ genericRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
90+ // @ts -expect-error Should not have unstable subscriptions
91+ devnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
92+ // @ts -expect-error Should not have unstable subscriptions
93+ tesnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
94+ // @ts -expect-error Should not have unstable subscriptions
95+ mainnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
96+ }
97+
98+ // No cluster specified should be generic `RpcSubscriptions`.
99+ {
100+ genericRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
101+ //@ts -expect-error Should not be a devnet RPC
102+ genericRpc satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi > ;
103+ //@ts -expect-error Should not be a testnet RPC
104+ genericRpc satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi > ;
105+ //@ts -expect-error Should not be a mainnet RPC
106+ genericRpc satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi > ;
107+ }
108+
109+ // Devnet cluster should be `RpcSubscriptionsDevnet`.
110+ {
111+ devnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
112+ devnetRpc satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi > ;
113+ //@ts -expect-error Should not be a testnet RPC
114+ devnetRpc satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi > ;
115+ //@ts -expect-error Should not be a mainnet RPC
116+ devnetRpc satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi > ;
117+ }
118+
119+ // Testnet cluster should be `RpcSubscriptionsTestnet`.
120+ {
121+ tesnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
122+ tesnetRpc satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi > ;
123+ //@ts -expect-error Should not be a devnet RPC
124+ tesnetRpc satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi > ;
125+ //@ts -expect-error Should not be a mainnet RPC
126+ tesnetRpc satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi > ;
127+ }
128+
129+ // Mainnet cluster should be `RpcSubscriptionsMainnet`.
130+ {
131+ mainnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
132+ mainnetRpc satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi > ;
133+ //@ts -expect-error Should not be a devnet RPC
134+ mainnetRpc satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi > ;
135+ //@ts -expect-error Should not be a testnet RPC
136+ mainnetRpc satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi > ;
137+ }
138+ }
139+
140+ // [DEFINE] createSolanaRpcSubscriptionsFromTransport_UNSTABLE.
141+ {
142+ const genericRpc = createSolanaRpcSubscriptionsFromTransport_UNSTABLE ( genericTransport ) ;
143+ const devnetRpc = createSolanaRpcSubscriptionsFromTransport_UNSTABLE ( devnetTransport ) ;
144+ const tesnetRpc = createSolanaRpcSubscriptionsFromTransport_UNSTABLE ( testnetTransport ) ;
145+ const mainnetRpc = createSolanaRpcSubscriptionsFromTransport_UNSTABLE ( mainnetTransport ) ;
146+
147+ // Checking unstable subscriptions.
148+ {
149+ genericRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
150+ devnetRpc satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
151+ tesnetRpc satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
152+ mainnetRpc satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
153+ }
154+ }
155+
156+ // [DEFINE] createSolanaRpcSubscriptions.
157+ {
158+ const genericRpc = createSolanaRpcSubscriptions ( genericUrl ) ;
159+ const devnetRpc = createSolanaRpcSubscriptions ( devnetUrl ) ;
160+ const tesnetRpc = createSolanaRpcSubscriptions ( testnetUrl ) ;
161+ const mainnetRpc = createSolanaRpcSubscriptions ( mainnetUrl ) ;
162+
163+ // Checking stable subscriptions.
164+ {
165+ genericRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
166+ devnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
167+ tesnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
168+ mainnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
169+
170+ // @ts -expect-error Should not have unstable subscriptions
171+ genericRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
172+ // @ts -expect-error Should not have unstable subscriptions
173+ devnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
174+ // @ts -expect-error Should not have unstable subscriptions
175+ tesnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
176+ // @ts -expect-error Should not have unstable subscriptions
177+ mainnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
178+ }
179+
180+ // No cluster specified should be generic `RpcSubscriptions`.
181+ {
182+ genericRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
183+ //@ts -expect-error Should not be a devnet RPC
184+ genericRpc satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi > ;
185+ //@ts -expect-error Should not be a testnet RPC
186+ genericRpc satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi > ;
187+ //@ts -expect-error Should not be a mainnet RPC
188+ genericRpc satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi > ;
189+ }
190+
191+ // Devnet cluster should be `RpcSubscriptionsDevnet`.
192+ {
193+ devnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
194+ devnetRpc satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi > ;
195+ //@ts -expect-error Should not be a testnet RPC
196+ devnetRpc satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi > ;
197+ //@ts -expect-error Should not be a mainnet RPC
198+ devnetRpc satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi > ;
199+ }
200+
201+ // Testnet cluster should be `RpcSubscriptionsTestnet`.
202+ {
203+ tesnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
204+ tesnetRpc satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi > ;
205+ //@ts -expect-error Should not be a devnet RPC
206+ tesnetRpc satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi > ;
207+ //@ts -expect-error Should not be a mainnet RPC
208+ tesnetRpc satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi > ;
209+ }
210+
211+ // Mainnet cluster should be `RpcSubscriptionsMainnet`.
212+ {
213+ mainnetRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi > ;
214+ mainnetRpc satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi > ;
215+ //@ts -expect-error Should not be a devnet RPC
216+ mainnetRpc satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi > ;
217+ //@ts -expect-error Should not be a testnet RPC
218+ mainnetRpc satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi > ;
219+ }
220+ }
221+
222+ // [DEFINE] createSolanaRpcSubscriptions_UNSTABLE.
223+ {
224+ const genericRpc = createSolanaRpcSubscriptions_UNSTABLE ( genericUrl ) ;
225+ const devnetRpc = createSolanaRpcSubscriptions_UNSTABLE ( devnetUrl ) ;
226+ const tesnetRpc = createSolanaRpcSubscriptions_UNSTABLE ( testnetUrl ) ;
227+ const mainnetRpc = createSolanaRpcSubscriptions_UNSTABLE ( mainnetUrl ) ;
228+
229+ // Checking unstable subscriptions.
230+ {
231+ genericRpc satisfies RpcSubscriptions < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
232+ devnetRpc satisfies RpcSubscriptionsDevnet < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
233+ tesnetRpc satisfies RpcSubscriptionsTestnet < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
234+ mainnetRpc satisfies RpcSubscriptionsMainnet < SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable > ;
235+ }
236+ }
0 commit comments