@solana/rpc-subscriptions-api 2.0.0-20241006045741

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +68 -0
  3. package/dist/index.browser.cjs +217 -0
  4. package/dist/index.browser.cjs.map +1 -0
  5. package/dist/index.browser.mjs +210 -0
  6. package/dist/index.browser.mjs.map +1 -0
  7. package/dist/index.native.mjs +210 -0
  8. package/dist/index.native.mjs.map +1 -0
  9. package/dist/index.node.cjs +217 -0
  10. package/dist/index.node.cjs.map +1 -0
  11. package/dist/index.node.mjs +210 -0
  12. package/dist/index.node.mjs.map +1 -0
  13. package/dist/types/account-notifications.d.ts +29 -0
  14. package/dist/types/account-notifications.d.ts.map +1 -0
  15. package/dist/types/block-notifications.d.ts +236 -0
  16. package/dist/types/block-notifications.d.ts.map +1 -0
  17. package/dist/types/index.d.ts +18 -0
  18. package/dist/types/index.d.ts.map +1 -0
  19. package/dist/types/logs-notifications.d.ts +24 -0
  20. package/dist/types/logs-notifications.d.ts.map +1 -0
  21. package/dist/types/program-notifications.d.ts +46 -0
  22. package/dist/types/program-notifications.d.ts.map +1 -0
  23. package/dist/types/root-notifications.d.ts +10 -0
  24. package/dist/types/root-notifications.d.ts.map +1 -0
  25. package/dist/types/signature-notifications.d.ts +24 -0
  26. package/dist/types/signature-notifications.d.ts.map +1 -0
  27. package/dist/types/slot-notifications.d.ts +14 -0
  28. package/dist/types/slot-notifications.d.ts.map +1 -0
  29. package/dist/types/slots-updates-notifications.d.ts +32 -0
  30. package/dist/types/slots-updates-notifications.d.ts.map +1 -0
  31. package/dist/types/vote-notifications.d.ts +18 -0
  32. package/dist/types/vote-notifications.d.ts.map +1 -0
  33. package/package.json +93 -0
@@ -0,0 +1,210 @@
1
+ import fastStableStringify from '@solana/fast-stable-stringify';
2
+ import { createRpcSubscriptionsApi, executeRpcPubSubSubscriptionPlan } from '@solana/rpc-subscriptions-spec';
3
+ import { getDefaultResponseTransformerForSolanaRpcSubscriptions, jsonParsedAccountsConfigs, KEYPATH_WILDCARD, getDefaultRequestTransformerForSolanaRpc } from '@solana/rpc-transformers';
4
+
5
+ // src/index.ts
6
+ function createSolanaRpcSubscriptionsApi_INTERNAL(config) {
7
+ const responseTransformer = getDefaultResponseTransformerForSolanaRpcSubscriptions({
8
+ allowedNumericKeyPaths: getAllowedNumericKeypaths()
9
+ });
10
+ const parametersTransformer = (notificationName, params) => {
11
+ return getDefaultRequestTransformerForSolanaRpc(config)({ methodName: notificationName, params }).params;
12
+ };
13
+ return createRpcSubscriptionsApi({
14
+ getSubscriptionConfigurationHash({ notificationName, params }) {
15
+ return fastStableStringify([notificationName, params]);
16
+ },
17
+ planExecutor({ notificationName, params, ...rest }) {
18
+ return executeRpcPubSubSubscriptionPlan({
19
+ ...rest,
20
+ responseTransformer,
21
+ subscribeMethodName: notificationName.replace(/Notifications$/, "Subscribe"),
22
+ subscribeParams: parametersTransformer(notificationName, params),
23
+ unsubscribeMethodName: notificationName.replace(/Notifications$/, "Unsubscribe")
24
+ });
25
+ }
26
+ });
27
+ }
28
+ function createSolanaRpcSubscriptionsApi(config) {
29
+ return createSolanaRpcSubscriptionsApi_INTERNAL(config);
30
+ }
31
+ function createSolanaRpcSubscriptionsApi_UNSTABLE(config) {
32
+ return createSolanaRpcSubscriptionsApi_INTERNAL(
33
+ config
34
+ );
35
+ }
36
+ var memoizedKeypaths;
37
+ function getAllowedNumericKeypaths() {
38
+ if (!memoizedKeypaths) {
39
+ memoizedKeypaths = {
40
+ accountNotifications: jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
41
+ blockNotifications: [
42
+ [
43
+ "value",
44
+ "block",
45
+ "transactions",
46
+ KEYPATH_WILDCARD,
47
+ "meta",
48
+ "preTokenBalances",
49
+ KEYPATH_WILDCARD,
50
+ "accountIndex"
51
+ ],
52
+ [
53
+ "value",
54
+ "block",
55
+ "transactions",
56
+ KEYPATH_WILDCARD,
57
+ "meta",
58
+ "preTokenBalances",
59
+ KEYPATH_WILDCARD,
60
+ "uiTokenAmount",
61
+ "decimals"
62
+ ],
63
+ [
64
+ "value",
65
+ "block",
66
+ "transactions",
67
+ KEYPATH_WILDCARD,
68
+ "meta",
69
+ "postTokenBalances",
70
+ KEYPATH_WILDCARD,
71
+ "accountIndex"
72
+ ],
73
+ [
74
+ "value",
75
+ "block",
76
+ "transactions",
77
+ KEYPATH_WILDCARD,
78
+ "meta",
79
+ "postTokenBalances",
80
+ KEYPATH_WILDCARD,
81
+ "uiTokenAmount",
82
+ "decimals"
83
+ ],
84
+ ["value", "block", "transactions", KEYPATH_WILDCARD, "meta", "rewards", KEYPATH_WILDCARD, "commission"],
85
+ [
86
+ "value",
87
+ "block",
88
+ "transactions",
89
+ KEYPATH_WILDCARD,
90
+ "meta",
91
+ "innerInstructions",
92
+ KEYPATH_WILDCARD,
93
+ "index"
94
+ ],
95
+ [
96
+ "value",
97
+ "block",
98
+ "transactions",
99
+ KEYPATH_WILDCARD,
100
+ "meta",
101
+ "innerInstructions",
102
+ KEYPATH_WILDCARD,
103
+ "instructions",
104
+ KEYPATH_WILDCARD,
105
+ "programIdIndex"
106
+ ],
107
+ [
108
+ "value",
109
+ "block",
110
+ "transactions",
111
+ KEYPATH_WILDCARD,
112
+ "meta",
113
+ "innerInstructions",
114
+ KEYPATH_WILDCARD,
115
+ "instructions",
116
+ KEYPATH_WILDCARD,
117
+ "accounts",
118
+ KEYPATH_WILDCARD
119
+ ],
120
+ [
121
+ "value",
122
+ "block",
123
+ "transactions",
124
+ KEYPATH_WILDCARD,
125
+ "transaction",
126
+ "message",
127
+ "addressTableLookups",
128
+ KEYPATH_WILDCARD,
129
+ "writableIndexes",
130
+ KEYPATH_WILDCARD
131
+ ],
132
+ [
133
+ "value",
134
+ "block",
135
+ "transactions",
136
+ KEYPATH_WILDCARD,
137
+ "transaction",
138
+ "message",
139
+ "addressTableLookups",
140
+ KEYPATH_WILDCARD,
141
+ "readonlyIndexes",
142
+ KEYPATH_WILDCARD
143
+ ],
144
+ [
145
+ "value",
146
+ "block",
147
+ "transactions",
148
+ KEYPATH_WILDCARD,
149
+ "transaction",
150
+ "message",
151
+ "instructions",
152
+ KEYPATH_WILDCARD,
153
+ "programIdIndex"
154
+ ],
155
+ [
156
+ "value",
157
+ "block",
158
+ "transactions",
159
+ KEYPATH_WILDCARD,
160
+ "transaction",
161
+ "message",
162
+ "instructions",
163
+ KEYPATH_WILDCARD,
164
+ "accounts",
165
+ KEYPATH_WILDCARD
166
+ ],
167
+ [
168
+ "value",
169
+ "block",
170
+ "transactions",
171
+ KEYPATH_WILDCARD,
172
+ "transaction",
173
+ "message",
174
+ "header",
175
+ "numReadonlySignedAccounts"
176
+ ],
177
+ [
178
+ "value",
179
+ "block",
180
+ "transactions",
181
+ KEYPATH_WILDCARD,
182
+ "transaction",
183
+ "message",
184
+ "header",
185
+ "numReadonlyUnsignedAccounts"
186
+ ],
187
+ [
188
+ "value",
189
+ "block",
190
+ "transactions",
191
+ KEYPATH_WILDCARD,
192
+ "transaction",
193
+ "message",
194
+ "header",
195
+ "numRequiredSignatures"
196
+ ],
197
+ ["value", "block", "rewards", KEYPATH_WILDCARD, "commission"]
198
+ ],
199
+ programNotifications: jsonParsedAccountsConfigs.flatMap((c) => [
200
+ ["value", KEYPATH_WILDCARD, "account", ...c],
201
+ [KEYPATH_WILDCARD, "account", ...c]
202
+ ])
203
+ };
204
+ }
205
+ return memoizedKeypaths;
206
+ }
207
+
208
+ export { createSolanaRpcSubscriptionsApi, createSolanaRpcSubscriptionsApi_UNSTABLE };
209
+ //# sourceMappingURL=index.native.mjs.map
210
+ //# sourceMappingURL=index.native.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.native.mjs","sourcesContent":["import fastStableStringify from '@solana/fast-stable-stringify';\nimport {\n createRpcSubscriptionsApi,\n executeRpcPubSubSubscriptionPlan,\n RpcSubscriptionsApi,\n RpcSubscriptionsApiMethods,\n} from '@solana/rpc-subscriptions-spec';\nimport {\n AllowedNumericKeypaths,\n getDefaultRequestTransformerForSolanaRpc,\n getDefaultResponseTransformerForSolanaRpcSubscriptions,\n jsonParsedAccountsConfigs,\n KEYPATH_WILDCARD,\n RequestTransformerConfig,\n} from '@solana/rpc-transformers';\n\nimport { AccountNotificationsApi } from './account-notifications';\nimport { BlockNotificationsApi } from './block-notifications';\nimport { LogsNotificationsApi } from './logs-notifications';\nimport { ProgramNotificationsApi } from './program-notifications';\nimport { RootNotificationsApi } from './root-notifications';\nimport { SignatureNotificationsApi } from './signature-notifications';\nimport { SlotNotificationsApi } from './slot-notifications';\nimport { SlotsUpdatesNotificationsApi } from './slots-updates-notifications';\nimport { VoteNotificationsApi } from './vote-notifications';\n\nexport type SolanaRpcSubscriptionsApi = AccountNotificationsApi &\n LogsNotificationsApi &\n ProgramNotificationsApi &\n RootNotificationsApi &\n SignatureNotificationsApi &\n SlotNotificationsApi;\nexport type SolanaRpcSubscriptionsApiUnstable = BlockNotificationsApi &\n SlotsUpdatesNotificationsApi &\n VoteNotificationsApi;\n\nexport type {\n AccountNotificationsApi,\n BlockNotificationsApi,\n LogsNotificationsApi,\n ProgramNotificationsApi,\n RootNotificationsApi,\n SignatureNotificationsApi,\n SlotNotificationsApi,\n SlotsUpdatesNotificationsApi,\n VoteNotificationsApi,\n};\n\ntype Config = RequestTransformerConfig;\n\nfunction createSolanaRpcSubscriptionsApi_INTERNAL<TApi extends RpcSubscriptionsApiMethods>(\n config?: Config,\n): RpcSubscriptionsApi<TApi> {\n const responseTransformer = getDefaultResponseTransformerForSolanaRpcSubscriptions({\n allowedNumericKeyPaths: getAllowedNumericKeypaths(),\n });\n // TODO(loris): Replace with request transformer.\n const parametersTransformer = <T extends unknown[]>(notificationName: string, params?: T) => {\n return getDefaultRequestTransformerForSolanaRpc(config)({ methodName: notificationName, params })\n .params as unknown[];\n };\n return createRpcSubscriptionsApi<TApi>({\n getSubscriptionConfigurationHash({ notificationName, params }) {\n return fastStableStringify([notificationName, params]);\n },\n planExecutor({ notificationName, params, ...rest }) {\n return executeRpcPubSubSubscriptionPlan({\n ...rest,\n responseTransformer,\n subscribeMethodName: notificationName.replace(/Notifications$/, 'Subscribe'),\n subscribeParams: parametersTransformer(notificationName, params),\n unsubscribeMethodName: notificationName.replace(/Notifications$/, 'Unsubscribe'),\n });\n },\n });\n}\n\nexport function createSolanaRpcSubscriptionsApi<TApi extends RpcSubscriptionsApiMethods = SolanaRpcSubscriptionsApi>(\n config?: Config,\n): RpcSubscriptionsApi<TApi> {\n return createSolanaRpcSubscriptionsApi_INTERNAL<TApi>(config);\n}\n\nexport function createSolanaRpcSubscriptionsApi_UNSTABLE(config?: Config) {\n return createSolanaRpcSubscriptionsApi_INTERNAL<SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable>(\n config,\n );\n}\n\nlet memoizedKeypaths: AllowedNumericKeypaths<\n RpcSubscriptionsApi<SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable>\n>;\n\n/**\n * These are keypaths at the end of which you will find a numeric value that should *not* be upcast\n * to a `bigint`. These are values that are legitimately defined as `u8` or `usize` on the backend.\n */\nfunction getAllowedNumericKeypaths(): AllowedNumericKeypaths<\n RpcSubscriptionsApi<SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable>\n> {\n if (!memoizedKeypaths) {\n memoizedKeypaths = {\n accountNotifications: jsonParsedAccountsConfigs.map(c => ['value', ...c]),\n blockNotifications: [\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'preTokenBalances',\n KEYPATH_WILDCARD,\n 'accountIndex',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'preTokenBalances',\n KEYPATH_WILDCARD,\n 'uiTokenAmount',\n 'decimals',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'postTokenBalances',\n KEYPATH_WILDCARD,\n 'accountIndex',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'postTokenBalances',\n KEYPATH_WILDCARD,\n 'uiTokenAmount',\n 'decimals',\n ],\n ['value', 'block', 'transactions', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n 'index',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n 'instructions',\n KEYPATH_WILDCARD,\n 'programIdIndex',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n 'instructions',\n KEYPATH_WILDCARD,\n 'accounts',\n KEYPATH_WILDCARD,\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'addressTableLookups',\n KEYPATH_WILDCARD,\n 'writableIndexes',\n KEYPATH_WILDCARD,\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'addressTableLookups',\n KEYPATH_WILDCARD,\n 'readonlyIndexes',\n KEYPATH_WILDCARD,\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'instructions',\n KEYPATH_WILDCARD,\n 'programIdIndex',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'instructions',\n KEYPATH_WILDCARD,\n 'accounts',\n KEYPATH_WILDCARD,\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'header',\n 'numReadonlySignedAccounts',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'header',\n 'numReadonlyUnsignedAccounts',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'header',\n 'numRequiredSignatures',\n ],\n ['value', 'block', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ],\n programNotifications: jsonParsedAccountsConfigs.flatMap(c => [\n ['value', KEYPATH_WILDCARD, 'account', ...c],\n [KEYPATH_WILDCARD, 'account', ...c],\n ]),\n };\n }\n return memoizedKeypaths;\n}\n"]}
@@ -0,0 +1,217 @@
1
+ 'use strict';
2
+
3
+ var fastStableStringify = require('@solana/fast-stable-stringify');
4
+ var rpcSubscriptionsSpec = require('@solana/rpc-subscriptions-spec');
5
+ var rpcTransformers = require('@solana/rpc-transformers');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var fastStableStringify__default = /*#__PURE__*/_interopDefault(fastStableStringify);
10
+
11
+ // src/index.ts
12
+ function createSolanaRpcSubscriptionsApi_INTERNAL(config) {
13
+ const responseTransformer = rpcTransformers.getDefaultResponseTransformerForSolanaRpcSubscriptions({
14
+ allowedNumericKeyPaths: getAllowedNumericKeypaths()
15
+ });
16
+ const parametersTransformer = (notificationName, params) => {
17
+ return rpcTransformers.getDefaultRequestTransformerForSolanaRpc(config)({ methodName: notificationName, params }).params;
18
+ };
19
+ return rpcSubscriptionsSpec.createRpcSubscriptionsApi({
20
+ getSubscriptionConfigurationHash({ notificationName, params }) {
21
+ return fastStableStringify__default.default([notificationName, params]);
22
+ },
23
+ planExecutor({ notificationName, params, ...rest }) {
24
+ return rpcSubscriptionsSpec.executeRpcPubSubSubscriptionPlan({
25
+ ...rest,
26
+ responseTransformer,
27
+ subscribeMethodName: notificationName.replace(/Notifications$/, "Subscribe"),
28
+ subscribeParams: parametersTransformer(notificationName, params),
29
+ unsubscribeMethodName: notificationName.replace(/Notifications$/, "Unsubscribe")
30
+ });
31
+ }
32
+ });
33
+ }
34
+ function createSolanaRpcSubscriptionsApi(config) {
35
+ return createSolanaRpcSubscriptionsApi_INTERNAL(config);
36
+ }
37
+ function createSolanaRpcSubscriptionsApi_UNSTABLE(config) {
38
+ return createSolanaRpcSubscriptionsApi_INTERNAL(
39
+ config
40
+ );
41
+ }
42
+ var memoizedKeypaths;
43
+ function getAllowedNumericKeypaths() {
44
+ if (!memoizedKeypaths) {
45
+ memoizedKeypaths = {
46
+ accountNotifications: rpcTransformers.jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
47
+ blockNotifications: [
48
+ [
49
+ "value",
50
+ "block",
51
+ "transactions",
52
+ rpcTransformers.KEYPATH_WILDCARD,
53
+ "meta",
54
+ "preTokenBalances",
55
+ rpcTransformers.KEYPATH_WILDCARD,
56
+ "accountIndex"
57
+ ],
58
+ [
59
+ "value",
60
+ "block",
61
+ "transactions",
62
+ rpcTransformers.KEYPATH_WILDCARD,
63
+ "meta",
64
+ "preTokenBalances",
65
+ rpcTransformers.KEYPATH_WILDCARD,
66
+ "uiTokenAmount",
67
+ "decimals"
68
+ ],
69
+ [
70
+ "value",
71
+ "block",
72
+ "transactions",
73
+ rpcTransformers.KEYPATH_WILDCARD,
74
+ "meta",
75
+ "postTokenBalances",
76
+ rpcTransformers.KEYPATH_WILDCARD,
77
+ "accountIndex"
78
+ ],
79
+ [
80
+ "value",
81
+ "block",
82
+ "transactions",
83
+ rpcTransformers.KEYPATH_WILDCARD,
84
+ "meta",
85
+ "postTokenBalances",
86
+ rpcTransformers.KEYPATH_WILDCARD,
87
+ "uiTokenAmount",
88
+ "decimals"
89
+ ],
90
+ ["value", "block", "transactions", rpcTransformers.KEYPATH_WILDCARD, "meta", "rewards", rpcTransformers.KEYPATH_WILDCARD, "commission"],
91
+ [
92
+ "value",
93
+ "block",
94
+ "transactions",
95
+ rpcTransformers.KEYPATH_WILDCARD,
96
+ "meta",
97
+ "innerInstructions",
98
+ rpcTransformers.KEYPATH_WILDCARD,
99
+ "index"
100
+ ],
101
+ [
102
+ "value",
103
+ "block",
104
+ "transactions",
105
+ rpcTransformers.KEYPATH_WILDCARD,
106
+ "meta",
107
+ "innerInstructions",
108
+ rpcTransformers.KEYPATH_WILDCARD,
109
+ "instructions",
110
+ rpcTransformers.KEYPATH_WILDCARD,
111
+ "programIdIndex"
112
+ ],
113
+ [
114
+ "value",
115
+ "block",
116
+ "transactions",
117
+ rpcTransformers.KEYPATH_WILDCARD,
118
+ "meta",
119
+ "innerInstructions",
120
+ rpcTransformers.KEYPATH_WILDCARD,
121
+ "instructions",
122
+ rpcTransformers.KEYPATH_WILDCARD,
123
+ "accounts",
124
+ rpcTransformers.KEYPATH_WILDCARD
125
+ ],
126
+ [
127
+ "value",
128
+ "block",
129
+ "transactions",
130
+ rpcTransformers.KEYPATH_WILDCARD,
131
+ "transaction",
132
+ "message",
133
+ "addressTableLookups",
134
+ rpcTransformers.KEYPATH_WILDCARD,
135
+ "writableIndexes",
136
+ rpcTransformers.KEYPATH_WILDCARD
137
+ ],
138
+ [
139
+ "value",
140
+ "block",
141
+ "transactions",
142
+ rpcTransformers.KEYPATH_WILDCARD,
143
+ "transaction",
144
+ "message",
145
+ "addressTableLookups",
146
+ rpcTransformers.KEYPATH_WILDCARD,
147
+ "readonlyIndexes",
148
+ rpcTransformers.KEYPATH_WILDCARD
149
+ ],
150
+ [
151
+ "value",
152
+ "block",
153
+ "transactions",
154
+ rpcTransformers.KEYPATH_WILDCARD,
155
+ "transaction",
156
+ "message",
157
+ "instructions",
158
+ rpcTransformers.KEYPATH_WILDCARD,
159
+ "programIdIndex"
160
+ ],
161
+ [
162
+ "value",
163
+ "block",
164
+ "transactions",
165
+ rpcTransformers.KEYPATH_WILDCARD,
166
+ "transaction",
167
+ "message",
168
+ "instructions",
169
+ rpcTransformers.KEYPATH_WILDCARD,
170
+ "accounts",
171
+ rpcTransformers.KEYPATH_WILDCARD
172
+ ],
173
+ [
174
+ "value",
175
+ "block",
176
+ "transactions",
177
+ rpcTransformers.KEYPATH_WILDCARD,
178
+ "transaction",
179
+ "message",
180
+ "header",
181
+ "numReadonlySignedAccounts"
182
+ ],
183
+ [
184
+ "value",
185
+ "block",
186
+ "transactions",
187
+ rpcTransformers.KEYPATH_WILDCARD,
188
+ "transaction",
189
+ "message",
190
+ "header",
191
+ "numReadonlyUnsignedAccounts"
192
+ ],
193
+ [
194
+ "value",
195
+ "block",
196
+ "transactions",
197
+ rpcTransformers.KEYPATH_WILDCARD,
198
+ "transaction",
199
+ "message",
200
+ "header",
201
+ "numRequiredSignatures"
202
+ ],
203
+ ["value", "block", "rewards", rpcTransformers.KEYPATH_WILDCARD, "commission"]
204
+ ],
205
+ programNotifications: rpcTransformers.jsonParsedAccountsConfigs.flatMap((c) => [
206
+ ["value", rpcTransformers.KEYPATH_WILDCARD, "account", ...c],
207
+ [rpcTransformers.KEYPATH_WILDCARD, "account", ...c]
208
+ ])
209
+ };
210
+ }
211
+ return memoizedKeypaths;
212
+ }
213
+
214
+ exports.createSolanaRpcSubscriptionsApi = createSolanaRpcSubscriptionsApi;
215
+ exports.createSolanaRpcSubscriptionsApi_UNSTABLE = createSolanaRpcSubscriptionsApi_UNSTABLE;
216
+ //# sourceMappingURL=index.node.cjs.map
217
+ //# sourceMappingURL=index.node.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":["getDefaultResponseTransformerForSolanaRpcSubscriptions","getDefaultRequestTransformerForSolanaRpc","createRpcSubscriptionsApi","fastStableStringify","executeRpcPubSubSubscriptionPlan","jsonParsedAccountsConfigs","KEYPATH_WILDCARD"],"mappings":"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","file":"index.node.cjs","sourcesContent":["import fastStableStringify from '@solana/fast-stable-stringify';\nimport {\n createRpcSubscriptionsApi,\n executeRpcPubSubSubscriptionPlan,\n RpcSubscriptionsApi,\n RpcSubscriptionsApiMethods,\n} from '@solana/rpc-subscriptions-spec';\nimport {\n AllowedNumericKeypaths,\n getDefaultRequestTransformerForSolanaRpc,\n getDefaultResponseTransformerForSolanaRpcSubscriptions,\n jsonParsedAccountsConfigs,\n KEYPATH_WILDCARD,\n RequestTransformerConfig,\n} from '@solana/rpc-transformers';\n\nimport { AccountNotificationsApi } from './account-notifications';\nimport { BlockNotificationsApi } from './block-notifications';\nimport { LogsNotificationsApi } from './logs-notifications';\nimport { ProgramNotificationsApi } from './program-notifications';\nimport { RootNotificationsApi } from './root-notifications';\nimport { SignatureNotificationsApi } from './signature-notifications';\nimport { SlotNotificationsApi } from './slot-notifications';\nimport { SlotsUpdatesNotificationsApi } from './slots-updates-notifications';\nimport { VoteNotificationsApi } from './vote-notifications';\n\nexport type SolanaRpcSubscriptionsApi = AccountNotificationsApi &\n LogsNotificationsApi &\n ProgramNotificationsApi &\n RootNotificationsApi &\n SignatureNotificationsApi &\n SlotNotificationsApi;\nexport type SolanaRpcSubscriptionsApiUnstable = BlockNotificationsApi &\n SlotsUpdatesNotificationsApi &\n VoteNotificationsApi;\n\nexport type {\n AccountNotificationsApi,\n BlockNotificationsApi,\n LogsNotificationsApi,\n ProgramNotificationsApi,\n RootNotificationsApi,\n SignatureNotificationsApi,\n SlotNotificationsApi,\n SlotsUpdatesNotificationsApi,\n VoteNotificationsApi,\n};\n\ntype Config = RequestTransformerConfig;\n\nfunction createSolanaRpcSubscriptionsApi_INTERNAL<TApi extends RpcSubscriptionsApiMethods>(\n config?: Config,\n): RpcSubscriptionsApi<TApi> {\n const responseTransformer = getDefaultResponseTransformerForSolanaRpcSubscriptions({\n allowedNumericKeyPaths: getAllowedNumericKeypaths(),\n });\n // TODO(loris): Replace with request transformer.\n const parametersTransformer = <T extends unknown[]>(notificationName: string, params?: T) => {\n return getDefaultRequestTransformerForSolanaRpc(config)({ methodName: notificationName, params })\n .params as unknown[];\n };\n return createRpcSubscriptionsApi<TApi>({\n getSubscriptionConfigurationHash({ notificationName, params }) {\n return fastStableStringify([notificationName, params]);\n },\n planExecutor({ notificationName, params, ...rest }) {\n return executeRpcPubSubSubscriptionPlan({\n ...rest,\n responseTransformer,\n subscribeMethodName: notificationName.replace(/Notifications$/, 'Subscribe'),\n subscribeParams: parametersTransformer(notificationName, params),\n unsubscribeMethodName: notificationName.replace(/Notifications$/, 'Unsubscribe'),\n });\n },\n });\n}\n\nexport function createSolanaRpcSubscriptionsApi<TApi extends RpcSubscriptionsApiMethods = SolanaRpcSubscriptionsApi>(\n config?: Config,\n): RpcSubscriptionsApi<TApi> {\n return createSolanaRpcSubscriptionsApi_INTERNAL<TApi>(config);\n}\n\nexport function createSolanaRpcSubscriptionsApi_UNSTABLE(config?: Config) {\n return createSolanaRpcSubscriptionsApi_INTERNAL<SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable>(\n config,\n );\n}\n\nlet memoizedKeypaths: AllowedNumericKeypaths<\n RpcSubscriptionsApi<SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable>\n>;\n\n/**\n * These are keypaths at the end of which you will find a numeric value that should *not* be upcast\n * to a `bigint`. These are values that are legitimately defined as `u8` or `usize` on the backend.\n */\nfunction getAllowedNumericKeypaths(): AllowedNumericKeypaths<\n RpcSubscriptionsApi<SolanaRpcSubscriptionsApi & SolanaRpcSubscriptionsApiUnstable>\n> {\n if (!memoizedKeypaths) {\n memoizedKeypaths = {\n accountNotifications: jsonParsedAccountsConfigs.map(c => ['value', ...c]),\n blockNotifications: [\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'preTokenBalances',\n KEYPATH_WILDCARD,\n 'accountIndex',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'preTokenBalances',\n KEYPATH_WILDCARD,\n 'uiTokenAmount',\n 'decimals',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'postTokenBalances',\n KEYPATH_WILDCARD,\n 'accountIndex',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'postTokenBalances',\n KEYPATH_WILDCARD,\n 'uiTokenAmount',\n 'decimals',\n ],\n ['value', 'block', 'transactions', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n 'index',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n 'instructions',\n KEYPATH_WILDCARD,\n 'programIdIndex',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n 'instructions',\n KEYPATH_WILDCARD,\n 'accounts',\n KEYPATH_WILDCARD,\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'addressTableLookups',\n KEYPATH_WILDCARD,\n 'writableIndexes',\n KEYPATH_WILDCARD,\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'addressTableLookups',\n KEYPATH_WILDCARD,\n 'readonlyIndexes',\n KEYPATH_WILDCARD,\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'instructions',\n KEYPATH_WILDCARD,\n 'programIdIndex',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'instructions',\n KEYPATH_WILDCARD,\n 'accounts',\n KEYPATH_WILDCARD,\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'header',\n 'numReadonlySignedAccounts',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'header',\n 'numReadonlyUnsignedAccounts',\n ],\n [\n 'value',\n 'block',\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'header',\n 'numRequiredSignatures',\n ],\n ['value', 'block', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ],\n programNotifications: jsonParsedAccountsConfigs.flatMap(c => [\n ['value', KEYPATH_WILDCARD, 'account', ...c],\n [KEYPATH_WILDCARD, 'account', ...c],\n ]),\n };\n }\n return memoizedKeypaths;\n}\n"]}