@solana/rpc-api 2.0.0-experimental.021706b
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.
- package/LICENSE +20 -0
- package/README.md +17 -0
- package/dist/index.browser.cjs +199 -0
- package/dist/index.browser.cjs.map +1 -0
- package/dist/index.browser.js +197 -0
- package/dist/index.browser.js.map +1 -0
- package/dist/index.native.js +197 -0
- package/dist/index.native.js.map +1 -0
- package/dist/index.node.cjs +199 -0
- package/dist/index.node.cjs.map +1 -0
- package/dist/index.node.js +197 -0
- package/dist/index.node.js.map +1 -0
- package/dist/types/getAccountInfo.d.ts +34 -0
- package/dist/types/getAccountInfo.d.ts.map +1 -0
- package/dist/types/getBalance.d.ts +15 -0
- package/dist/types/getBalance.d.ts.map +1 -0
- package/dist/types/getBlock.d.ts +173 -0
- package/dist/types/getBlock.d.ts.map +1 -0
- package/dist/types/getBlockCommitment.d.ts +15 -0
- package/dist/types/getBlockCommitment.d.ts.map +1 -0
- package/dist/types/getBlockHeight.d.ts +14 -0
- package/dist/types/getBlockHeight.d.ts.map +1 -0
- package/dist/types/getBlockProduction.d.ts +39 -0
- package/dist/types/getBlockProduction.d.ts.map +1 -0
- package/dist/types/getBlockTime.d.ts +14 -0
- package/dist/types/getBlockTime.d.ts.map +1 -0
- package/dist/types/getBlocks.d.ts +13 -0
- package/dist/types/getBlocks.d.ts.map +1 -0
- package/dist/types/getBlocksWithLimit.d.ts +14 -0
- package/dist/types/getBlocksWithLimit.d.ts.map +1 -0
- package/dist/types/getClusterNodes.d.ts +34 -0
- package/dist/types/getClusterNodes.d.ts.map +1 -0
- package/dist/types/getEpochInfo.d.ts +27 -0
- package/dist/types/getEpochInfo.d.ts.map +1 -0
- package/dist/types/getEpochSchedule.d.ts +23 -0
- package/dist/types/getEpochSchedule.d.ts.map +1 -0
- package/dist/types/getFeeForMessage.d.ts +16 -0
- package/dist/types/getFeeForMessage.d.ts.map +1 -0
- package/dist/types/getFirstAvailableBlock.d.ts +12 -0
- package/dist/types/getFirstAvailableBlock.d.ts.map +1 -0
- package/dist/types/getGenesisHash.d.ts +11 -0
- package/dist/types/getGenesisHash.d.ts.map +1 -0
- package/dist/types/getHealth.d.ts +10 -0
- package/dist/types/getHealth.d.ts.map +1 -0
- package/dist/types/getHighestSnapshotSlot.d.ts +18 -0
- package/dist/types/getHighestSnapshotSlot.d.ts.map +1 -0
- package/dist/types/getIdentity.d.ts +13 -0
- package/dist/types/getIdentity.d.ts.map +1 -0
- package/dist/types/getInflationGovernor.d.ts +28 -0
- package/dist/types/getInflationGovernor.d.ts.map +1 -0
- package/dist/types/getInflationRate.d.ts +20 -0
- package/dist/types/getInflationRate.d.ts.map +1 -0
- package/dist/types/getInflationReward.d.ts +22 -0
- package/dist/types/getInflationReward.d.ts.map +1 -0
- package/dist/types/getLargestAccounts.d.ts +23 -0
- package/dist/types/getLargestAccounts.d.ts.map +1 -0
- package/dist/types/getLatestBlockhash.d.ts +19 -0
- package/dist/types/getLatestBlockhash.d.ts.map +1 -0
- package/dist/types/getLeaderSchedule.d.ts +51 -0
- package/dist/types/getLeaderSchedule.d.ts.map +1 -0
- package/dist/types/getMaxRetransmitSlot.d.ts +12 -0
- package/dist/types/getMaxRetransmitSlot.d.ts.map +1 -0
- package/dist/types/getMaxShredInsertSlot.d.ts +12 -0
- package/dist/types/getMaxShredInsertSlot.d.ts.map +1 -0
- package/dist/types/getMinimumBalanceForRentExemption.d.ts +13 -0
- package/dist/types/getMinimumBalanceForRentExemption.d.ts.map +1 -0
- package/dist/types/getMultipleAccounts.d.ts +44 -0
- package/dist/types/getMultipleAccounts.d.ts.map +1 -0
- package/dist/types/getProgramAccounts.d.ts +60 -0
- package/dist/types/getProgramAccounts.d.ts.map +1 -0
- package/dist/types/getRecentPerformanceSamples.d.ts +25 -0
- package/dist/types/getRecentPerformanceSamples.d.ts.map +1 -0
- package/dist/types/getRecentPrioritizationFees.d.ts +30 -0
- package/dist/types/getRecentPrioritizationFees.d.ts.map +1 -0
- package/dist/types/getSignatureStatuses.d.ts +58 -0
- package/dist/types/getSignatureStatuses.d.ts.map +1 -0
- package/dist/types/getSignaturesForAddress.d.ts +40 -0
- package/dist/types/getSignaturesForAddress.d.ts.map +1 -0
- package/dist/types/getSlot.d.ts +14 -0
- package/dist/types/getSlot.d.ts.map +1 -0
- package/dist/types/getSlotLeader.d.ts +13 -0
- package/dist/types/getSlotLeader.d.ts.map +1 -0
- package/dist/types/getSlotLeaders.d.ts +17 -0
- package/dist/types/getSlotLeaders.d.ts.map +1 -0
- package/dist/types/getStakeActivation.d.ts +24 -0
- package/dist/types/getStakeActivation.d.ts.map +1 -0
- package/dist/types/getStakeMinimumDelegation.d.ts +13 -0
- package/dist/types/getStakeMinimumDelegation.d.ts.map +1 -0
- package/dist/types/getSupply.d.ts +42 -0
- package/dist/types/getSupply.d.ts.map +1 -0
- package/dist/types/getTokenAccountBalance.d.ts +16 -0
- package/dist/types/getTokenAccountBalance.d.ts.map +1 -0
- package/dist/types/getTokenAccountsByDelegate.d.ts +54 -0
- package/dist/types/getTokenAccountsByDelegate.d.ts.map +1 -0
- package/dist/types/getTokenAccountsByOwner.d.ts +54 -0
- package/dist/types/getTokenAccountsByOwner.d.ts.map +1 -0
- package/dist/types/getTokenLargestAccounts.d.ts +16 -0
- package/dist/types/getTokenLargestAccounts.d.ts.map +1 -0
- package/dist/types/getTokenSupply.d.ts +16 -0
- package/dist/types/getTokenSupply.d.ts.map +1 -0
- package/dist/types/getTransaction.d.ts +164 -0
- package/dist/types/getTransaction.d.ts.map +1 -0
- package/dist/types/getTransactionCount.d.ts +14 -0
- package/dist/types/getTransactionCount.d.ts.map +1 -0
- package/dist/types/getVersion.d.ts +15 -0
- package/dist/types/getVersion.d.ts.map +1 -0
- package/dist/types/getVoteAccounts.d.ts +44 -0
- package/dist/types/getVoteAccounts.d.ts.map +1 -0
- package/dist/types/index.d.ts +65 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/isBlockhashValid.d.ts +18 -0
- package/dist/types/isBlockhashValid.d.ts.map +1 -0
- package/dist/types/minimumLedgerSlot.d.ts +12 -0
- package/dist/types/minimumLedgerSlot.d.ts.map +1 -0
- package/dist/types/requestAirdrop.d.ts +16 -0
- package/dist/types/requestAirdrop.d.ts.map +1 -0
- package/dist/types/sendTransaction.d.ts +49 -0
- package/dist/types/sendTransaction.d.ts.map +1 -0
- package/dist/types/simulateTransaction.d.ts +104 -0
- package/dist/types/simulateTransaction.d.ts.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { createRpcApi } from '@solana/rpc-spec';
|
|
2
|
+
import { getDefaultParamsTransformerForSolanaRpc, getDefaultResponseTransformerForSolanaRpc, jsonParsedAccountsConfigs, KEYPATH_WILDCARD, jsonParsedTokenAccountsConfigs } from '@solana/rpc-transformers';
|
|
3
|
+
|
|
4
|
+
// src/index.ts
|
|
5
|
+
function createSolanaRpcApi(config) {
|
|
6
|
+
return createRpcApi({
|
|
7
|
+
parametersTransformer: getDefaultParamsTransformerForSolanaRpc(config),
|
|
8
|
+
responseTransformer: getDefaultResponseTransformerForSolanaRpc({
|
|
9
|
+
allowedNumericKeyPaths: getAllowedNumericKeypaths()
|
|
10
|
+
})
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
var memoizedKeypaths;
|
|
14
|
+
function getAllowedNumericKeypaths() {
|
|
15
|
+
if (!memoizedKeypaths) {
|
|
16
|
+
memoizedKeypaths = {
|
|
17
|
+
getAccountInfo: jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
|
|
18
|
+
getBlock: [
|
|
19
|
+
["blockTime"],
|
|
20
|
+
["transactions", KEYPATH_WILDCARD, "meta", "preTokenBalances", KEYPATH_WILDCARD, "accountIndex"],
|
|
21
|
+
[
|
|
22
|
+
"transactions",
|
|
23
|
+
KEYPATH_WILDCARD,
|
|
24
|
+
"meta",
|
|
25
|
+
"preTokenBalances",
|
|
26
|
+
KEYPATH_WILDCARD,
|
|
27
|
+
"uiTokenAmount",
|
|
28
|
+
"decimals"
|
|
29
|
+
],
|
|
30
|
+
["transactions", KEYPATH_WILDCARD, "meta", "postTokenBalances", KEYPATH_WILDCARD, "accountIndex"],
|
|
31
|
+
[
|
|
32
|
+
"transactions",
|
|
33
|
+
KEYPATH_WILDCARD,
|
|
34
|
+
"meta",
|
|
35
|
+
"postTokenBalances",
|
|
36
|
+
KEYPATH_WILDCARD,
|
|
37
|
+
"uiTokenAmount",
|
|
38
|
+
"decimals"
|
|
39
|
+
],
|
|
40
|
+
["transactions", KEYPATH_WILDCARD, "meta", "rewards", KEYPATH_WILDCARD, "commission"],
|
|
41
|
+
["transactions", KEYPATH_WILDCARD, "meta", "innerInstructions", KEYPATH_WILDCARD, "index"],
|
|
42
|
+
[
|
|
43
|
+
"transactions",
|
|
44
|
+
KEYPATH_WILDCARD,
|
|
45
|
+
"meta",
|
|
46
|
+
"innerInstructions",
|
|
47
|
+
KEYPATH_WILDCARD,
|
|
48
|
+
"instructions",
|
|
49
|
+
KEYPATH_WILDCARD,
|
|
50
|
+
"programIdIndex"
|
|
51
|
+
],
|
|
52
|
+
[
|
|
53
|
+
"transactions",
|
|
54
|
+
KEYPATH_WILDCARD,
|
|
55
|
+
"meta",
|
|
56
|
+
"innerInstructions",
|
|
57
|
+
KEYPATH_WILDCARD,
|
|
58
|
+
"instructions",
|
|
59
|
+
KEYPATH_WILDCARD,
|
|
60
|
+
"accounts",
|
|
61
|
+
KEYPATH_WILDCARD
|
|
62
|
+
],
|
|
63
|
+
[
|
|
64
|
+
"transactions",
|
|
65
|
+
KEYPATH_WILDCARD,
|
|
66
|
+
"transaction",
|
|
67
|
+
"message",
|
|
68
|
+
"addressTableLookups",
|
|
69
|
+
KEYPATH_WILDCARD,
|
|
70
|
+
"writableIndexes",
|
|
71
|
+
KEYPATH_WILDCARD
|
|
72
|
+
],
|
|
73
|
+
[
|
|
74
|
+
"transactions",
|
|
75
|
+
KEYPATH_WILDCARD,
|
|
76
|
+
"transaction",
|
|
77
|
+
"message",
|
|
78
|
+
"addressTableLookups",
|
|
79
|
+
KEYPATH_WILDCARD,
|
|
80
|
+
"readonlyIndexes",
|
|
81
|
+
KEYPATH_WILDCARD
|
|
82
|
+
],
|
|
83
|
+
[
|
|
84
|
+
"transactions",
|
|
85
|
+
KEYPATH_WILDCARD,
|
|
86
|
+
"transaction",
|
|
87
|
+
"message",
|
|
88
|
+
"instructions",
|
|
89
|
+
KEYPATH_WILDCARD,
|
|
90
|
+
"programIdIndex"
|
|
91
|
+
],
|
|
92
|
+
[
|
|
93
|
+
"transactions",
|
|
94
|
+
KEYPATH_WILDCARD,
|
|
95
|
+
"transaction",
|
|
96
|
+
"message",
|
|
97
|
+
"instructions",
|
|
98
|
+
KEYPATH_WILDCARD,
|
|
99
|
+
"accounts",
|
|
100
|
+
KEYPATH_WILDCARD
|
|
101
|
+
],
|
|
102
|
+
["transactions", KEYPATH_WILDCARD, "transaction", "message", "header", "numReadonlySignedAccounts"],
|
|
103
|
+
["transactions", KEYPATH_WILDCARD, "transaction", "message", "header", "numReadonlyUnsignedAccounts"],
|
|
104
|
+
["transactions", KEYPATH_WILDCARD, "transaction", "message", "header", "numRequiredSignatures"],
|
|
105
|
+
["rewards", KEYPATH_WILDCARD, "commission"]
|
|
106
|
+
],
|
|
107
|
+
getBlockTime: [[]],
|
|
108
|
+
getClusterNodes: [
|
|
109
|
+
[KEYPATH_WILDCARD, "featureSet"],
|
|
110
|
+
[KEYPATH_WILDCARD, "shredVersion"]
|
|
111
|
+
],
|
|
112
|
+
getInflationGovernor: [["initial"], ["foundation"], ["foundationTerm"], ["taper"], ["terminal"]],
|
|
113
|
+
getInflationRate: [["foundation"], ["total"], ["validator"]],
|
|
114
|
+
getInflationReward: [[KEYPATH_WILDCARD, "commission"]],
|
|
115
|
+
getMultipleAccounts: jsonParsedAccountsConfigs.map((c) => ["value", KEYPATH_WILDCARD, ...c]),
|
|
116
|
+
getProgramAccounts: jsonParsedAccountsConfigs.flatMap((c) => [
|
|
117
|
+
["value", KEYPATH_WILDCARD, "account", ...c],
|
|
118
|
+
[KEYPATH_WILDCARD, "account", ...c]
|
|
119
|
+
]),
|
|
120
|
+
getRecentPerformanceSamples: [[KEYPATH_WILDCARD, "samplePeriodSecs"]],
|
|
121
|
+
getTokenAccountBalance: [
|
|
122
|
+
["value", "decimals"],
|
|
123
|
+
["value", "uiAmount"]
|
|
124
|
+
],
|
|
125
|
+
getTokenAccountsByDelegate: jsonParsedTokenAccountsConfigs.map((c) => [
|
|
126
|
+
"value",
|
|
127
|
+
KEYPATH_WILDCARD,
|
|
128
|
+
"account",
|
|
129
|
+
...c
|
|
130
|
+
]),
|
|
131
|
+
getTokenAccountsByOwner: jsonParsedTokenAccountsConfigs.map((c) => [
|
|
132
|
+
"value",
|
|
133
|
+
KEYPATH_WILDCARD,
|
|
134
|
+
"account",
|
|
135
|
+
...c
|
|
136
|
+
]),
|
|
137
|
+
getTokenLargestAccounts: [
|
|
138
|
+
["value", KEYPATH_WILDCARD, "decimals"],
|
|
139
|
+
["value", KEYPATH_WILDCARD, "uiAmount"]
|
|
140
|
+
],
|
|
141
|
+
getTokenSupply: [
|
|
142
|
+
["value", "decimals"],
|
|
143
|
+
["value", "uiAmount"]
|
|
144
|
+
],
|
|
145
|
+
getTransaction: [
|
|
146
|
+
["meta", "preTokenBalances", KEYPATH_WILDCARD, "accountIndex"],
|
|
147
|
+
["meta", "preTokenBalances", KEYPATH_WILDCARD, "uiTokenAmount", "decimals"],
|
|
148
|
+
["meta", "postTokenBalances", KEYPATH_WILDCARD, "accountIndex"],
|
|
149
|
+
["meta", "postTokenBalances", KEYPATH_WILDCARD, "uiTokenAmount", "decimals"],
|
|
150
|
+
["meta", "rewards", KEYPATH_WILDCARD, "commission"],
|
|
151
|
+
["meta", "innerInstructions", KEYPATH_WILDCARD, "index"],
|
|
152
|
+
["meta", "innerInstructions", KEYPATH_WILDCARD, "instructions", KEYPATH_WILDCARD, "programIdIndex"],
|
|
153
|
+
[
|
|
154
|
+
"meta",
|
|
155
|
+
"innerInstructions",
|
|
156
|
+
KEYPATH_WILDCARD,
|
|
157
|
+
"instructions",
|
|
158
|
+
KEYPATH_WILDCARD,
|
|
159
|
+
"accounts",
|
|
160
|
+
KEYPATH_WILDCARD
|
|
161
|
+
],
|
|
162
|
+
[
|
|
163
|
+
"transaction",
|
|
164
|
+
"message",
|
|
165
|
+
"addressTableLookups",
|
|
166
|
+
KEYPATH_WILDCARD,
|
|
167
|
+
"writableIndexes",
|
|
168
|
+
KEYPATH_WILDCARD
|
|
169
|
+
],
|
|
170
|
+
[
|
|
171
|
+
"transaction",
|
|
172
|
+
"message",
|
|
173
|
+
"addressTableLookups",
|
|
174
|
+
KEYPATH_WILDCARD,
|
|
175
|
+
"readonlyIndexes",
|
|
176
|
+
KEYPATH_WILDCARD
|
|
177
|
+
],
|
|
178
|
+
["transaction", "message", "instructions", KEYPATH_WILDCARD, "programIdIndex"],
|
|
179
|
+
["transaction", "message", "instructions", KEYPATH_WILDCARD, "accounts", KEYPATH_WILDCARD],
|
|
180
|
+
["transaction", "message", "header", "numReadonlySignedAccounts"],
|
|
181
|
+
["transaction", "message", "header", "numReadonlyUnsignedAccounts"],
|
|
182
|
+
["transaction", "message", "header", "numRequiredSignatures"]
|
|
183
|
+
],
|
|
184
|
+
getVersion: [["feature-set"]],
|
|
185
|
+
getVoteAccounts: [
|
|
186
|
+
["current", KEYPATH_WILDCARD, "commission"],
|
|
187
|
+
["delinquent", KEYPATH_WILDCARD, "commission"]
|
|
188
|
+
],
|
|
189
|
+
simulateTransaction: jsonParsedAccountsConfigs.map((c) => ["value", "accounts", KEYPATH_WILDCARD, ...c])
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
return memoizedKeypaths;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export { createSolanaRpcApi };
|
|
196
|
+
//# sourceMappingURL=out.js.map
|
|
197
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { createRpcApi, RpcApi } from '@solana/rpc-spec';\nimport {\n AllowedNumericKeypaths,\n getDefaultParamsTransformerForSolanaRpc,\n getDefaultResponseTransformerForSolanaRpc,\n jsonParsedAccountsConfigs,\n jsonParsedTokenAccountsConfigs,\n KEYPATH_WILDCARD,\n ParamsTransformerConfig,\n} from '@solana/rpc-transformers';\n\nimport { GetAccountInfoApi } from './getAccountInfo';\nimport { GetBalanceApi } from './getBalance';\nimport { GetBlockApi } from './getBlock';\nimport { GetBlockCommitmentApi } from './getBlockCommitment';\nimport { GetBlockHeightApi } from './getBlockHeight';\nimport { GetBlockProductionApi } from './getBlockProduction';\nimport { GetBlocksApi } from './getBlocks';\nimport { GetBlocksWithLimitApi } from './getBlocksWithLimit';\nimport { GetBlockTimeApi } from './getBlockTime';\nimport { GetClusterNodesApi } from './getClusterNodes';\nimport { GetEpochInfoApi } from './getEpochInfo';\nimport { GetEpochScheduleApi } from './getEpochSchedule';\nimport { GetFeeForMessageApi } from './getFeeForMessage';\nimport { GetFirstAvailableBlockApi } from './getFirstAvailableBlock';\nimport { GetGenesisHashApi } from './getGenesisHash';\nimport { GetHealthApi } from './getHealth';\nimport { GetHighestSnapshotSlotApi } from './getHighestSnapshotSlot';\nimport { GetIdentityApi } from './getIdentity';\nimport { GetInflationGovernorApi } from './getInflationGovernor';\nimport { GetInflationRateApi } from './getInflationRate';\nimport { GetInflationRewardApi } from './getInflationReward';\nimport { GetLargestAccountsApi } from './getLargestAccounts';\nimport { GetLatestBlockhashApi } from './getLatestBlockhash';\nimport { GetLeaderScheduleApi } from './getLeaderSchedule';\nimport { GetMaxRetransmitSlotApi } from './getMaxRetransmitSlot';\nimport { GetMaxShredInsertSlotApi } from './getMaxShredInsertSlot';\nimport { GetMinimumBalanceForRentExemptionApi } from './getMinimumBalanceForRentExemption';\nimport { GetMultipleAccountsApi } from './getMultipleAccounts';\nimport { GetProgramAccountsApi } from './getProgramAccounts';\nimport { GetRecentPerformanceSamplesApi } from './getRecentPerformanceSamples';\nimport { GetRecentPrioritizationFeesApi } from './getRecentPrioritizationFees';\nimport { GetSignaturesForAddressApi } from './getSignaturesForAddress';\nimport { GetSignatureStatusesApi } from './getSignatureStatuses';\nimport { GetSlotApi } from './getSlot';\nimport { GetSlotLeaderApi } from './getSlotLeader';\nimport { GetSlotLeadersApi } from './getSlotLeaders';\nimport { GetStakeActivationApi } from './getStakeActivation';\nimport { GetStakeMinimumDelegationApi } from './getStakeMinimumDelegation';\nimport { GetSupplyApi } from './getSupply';\nimport { GetTokenAccountBalanceApi } from './getTokenAccountBalance';\nimport { GetTokenAccountsByDelegateApi } from './getTokenAccountsByDelegate';\nimport { GetTokenAccountsByOwnerApi } from './getTokenAccountsByOwner';\nimport { GetTokenLargestAccountsApi } from './getTokenLargestAccounts';\nimport { GetTokenSupplyApi } from './getTokenSupply';\nimport { GetTransactionApi } from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetVersionApi } from './getVersion';\nimport { GetVoteAccountsApi } from './getVoteAccounts';\nimport { IsBlockhashValidApi } from './isBlockhashValid';\nimport { MinimumLedgerSlotApi } from './minimumLedgerSlot';\nimport { RequestAirdropApi } from './requestAirdrop';\nimport { SendTransactionApi } from './sendTransaction';\nimport { SimulateTransactionApi } from './simulateTransaction';\n\ntype SolanaRpcApiForAllClusters = GetAccountInfoApi &\n GetBalanceApi &\n GetBlockApi &\n GetBlockCommitmentApi &\n GetBlockHeightApi &\n GetBlockProductionApi &\n GetBlocksApi &\n GetBlocksWithLimitApi &\n GetBlockTimeApi &\n GetClusterNodesApi &\n GetEpochInfoApi &\n GetEpochScheduleApi &\n GetFeeForMessageApi &\n GetFirstAvailableBlockApi &\n GetGenesisHashApi &\n GetHealthApi &\n GetHighestSnapshotSlotApi &\n GetIdentityApi &\n GetInflationGovernorApi &\n GetInflationRateApi &\n GetInflationRewardApi &\n GetLargestAccountsApi &\n GetLatestBlockhashApi &\n GetLeaderScheduleApi &\n GetMaxRetransmitSlotApi &\n GetMaxShredInsertSlotApi &\n GetMinimumBalanceForRentExemptionApi &\n GetMultipleAccountsApi &\n GetProgramAccountsApi &\n GetRecentPerformanceSamplesApi &\n GetRecentPrioritizationFeesApi &\n GetSignaturesForAddressApi &\n GetSignatureStatusesApi &\n GetSlotApi &\n GetSlotLeaderApi &\n GetSlotLeadersApi &\n GetStakeActivationApi &\n GetStakeMinimumDelegationApi &\n GetSupplyApi &\n GetTokenAccountBalanceApi &\n GetTokenAccountsByDelegateApi &\n GetTokenAccountsByOwnerApi &\n GetTokenLargestAccountsApi &\n GetTokenSupplyApi &\n GetTransactionApi &\n GetTransactionCountApi &\n GetVersionApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n SendTransactionApi &\n SimulateTransactionApi;\ntype SolanaRpcApiForTestClusters = SolanaRpcApiForAllClusters & RequestAirdropApi;\nexport type SolanaRpcApi = SolanaRpcApiForTestClusters;\nexport type SolanaRpcApiDevnet = SolanaRpcApiForTestClusters;\nexport type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;\nexport type SolanaRpcApiMainnet = SolanaRpcApiForAllClusters;\n\nexport type {\n GetAccountInfoApi,\n GetBalanceApi,\n GetBlockApi,\n GetBlockCommitmentApi,\n GetBlockHeightApi,\n GetBlockProductionApi,\n GetBlocksApi,\n GetBlocksWithLimitApi,\n GetBlockTimeApi,\n GetClusterNodesApi,\n GetEpochInfoApi,\n GetEpochScheduleApi,\n GetFeeForMessageApi,\n GetFirstAvailableBlockApi,\n GetGenesisHashApi,\n GetHealthApi,\n GetHighestSnapshotSlotApi,\n GetIdentityApi,\n GetInflationGovernorApi,\n GetInflationRateApi,\n GetInflationRewardApi,\n GetLargestAccountsApi,\n GetLatestBlockhashApi,\n GetLeaderScheduleApi,\n GetMaxRetransmitSlotApi,\n GetMaxShredInsertSlotApi,\n GetMinimumBalanceForRentExemptionApi,\n GetMultipleAccountsApi,\n GetProgramAccountsApi,\n GetRecentPerformanceSamplesApi,\n GetRecentPrioritizationFeesApi,\n GetSignaturesForAddressApi,\n GetSignatureStatusesApi,\n GetSlotApi,\n GetSlotLeaderApi,\n GetSlotLeadersApi,\n GetStakeActivationApi,\n GetStakeMinimumDelegationApi,\n GetSupplyApi,\n GetTokenAccountBalanceApi,\n GetTokenAccountsByDelegateApi,\n GetTokenAccountsByOwnerApi,\n GetTokenLargestAccountsApi,\n GetTokenSupplyApi,\n GetTransactionApi,\n GetTransactionCountApi,\n GetVersionApi,\n GetVoteAccountsApi,\n IsBlockhashValidApi,\n MinimumLedgerSlotApi,\n RequestAirdropApi,\n SendTransactionApi,\n SimulateTransactionApi,\n};\n\ntype Config = ParamsTransformerConfig;\n\nexport function createSolanaRpcApi<\n TRpcMethods extends SolanaRpcApi | SolanaRpcApiDevnet | SolanaRpcApiTestnet | SolanaRpcApiMainnet = SolanaRpcApi,\n>(config?: Config): RpcApi<TRpcMethods> {\n return createRpcApi<TRpcMethods>({\n parametersTransformer: getDefaultParamsTransformerForSolanaRpc(config) as (params: unknown[]) => unknown[],\n responseTransformer: getDefaultResponseTransformerForSolanaRpc({\n allowedNumericKeyPaths: getAllowedNumericKeypaths(),\n }),\n });\n}\n\nlet memoizedKeypaths: AllowedNumericKeypaths<RpcApi<SolanaRpcApi>>;\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<RpcApi<SolanaRpcApi>> {\n if (!memoizedKeypaths) {\n memoizedKeypaths = {\n getAccountInfo: jsonParsedAccountsConfigs.map(c => ['value', ...c]),\n getBlock: [\n ['blockTime'],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, 'accountIndex'],\n [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'preTokenBalances',\n KEYPATH_WILDCARD,\n 'uiTokenAmount',\n 'decimals',\n ],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, 'accountIndex'],\n [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'postTokenBalances',\n KEYPATH_WILDCARD,\n 'uiTokenAmount',\n 'decimals',\n ],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'innerInstructions', KEYPATH_WILDCARD, 'index'],\n [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n 'instructions',\n KEYPATH_WILDCARD,\n 'programIdIndex',\n ],\n [\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 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'addressTableLookups',\n KEYPATH_WILDCARD,\n 'writableIndexes',\n KEYPATH_WILDCARD,\n ],\n [\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'addressTableLookups',\n KEYPATH_WILDCARD,\n 'readonlyIndexes',\n KEYPATH_WILDCARD,\n ],\n [\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'instructions',\n KEYPATH_WILDCARD,\n 'programIdIndex',\n ],\n [\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'instructions',\n KEYPATH_WILDCARD,\n 'accounts',\n KEYPATH_WILDCARD,\n ],\n ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', 'header', 'numReadonlySignedAccounts'],\n ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', 'header', 'numReadonlyUnsignedAccounts'],\n ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', 'header', 'numRequiredSignatures'],\n ['rewards', KEYPATH_WILDCARD, 'commission'],\n ],\n getBlockTime: [[]],\n getClusterNodes: [\n [KEYPATH_WILDCARD, 'featureSet'],\n [KEYPATH_WILDCARD, 'shredVersion'],\n ],\n getInflationGovernor: [['initial'], ['foundation'], ['foundationTerm'], ['taper'], ['terminal']],\n getInflationRate: [['foundation'], ['total'], ['validator']],\n getInflationReward: [[KEYPATH_WILDCARD, 'commission']],\n getMultipleAccounts: jsonParsedAccountsConfigs.map(c => ['value', KEYPATH_WILDCARD, ...c]),\n getProgramAccounts: jsonParsedAccountsConfigs.flatMap(c => [\n ['value', KEYPATH_WILDCARD, 'account', ...c],\n [KEYPATH_WILDCARD, 'account', ...c],\n ]),\n getRecentPerformanceSamples: [[KEYPATH_WILDCARD, 'samplePeriodSecs']],\n getTokenAccountBalance: [\n ['value', 'decimals'],\n ['value', 'uiAmount'],\n ],\n getTokenAccountsByDelegate: jsonParsedTokenAccountsConfigs.map(c => [\n 'value',\n KEYPATH_WILDCARD,\n 'account',\n ...c,\n ]),\n getTokenAccountsByOwner: jsonParsedTokenAccountsConfigs.map(c => [\n 'value',\n KEYPATH_WILDCARD,\n 'account',\n ...c,\n ]),\n getTokenLargestAccounts: [\n ['value', KEYPATH_WILDCARD, 'decimals'],\n ['value', KEYPATH_WILDCARD, 'uiAmount'],\n ],\n getTokenSupply: [\n ['value', 'decimals'],\n ['value', 'uiAmount'],\n ],\n getTransaction: [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, 'accountIndex'],\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, 'uiTokenAmount', 'decimals'],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, 'accountIndex'],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, 'uiTokenAmount', 'decimals'],\n ['meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ['meta', 'innerInstructions', KEYPATH_WILDCARD, 'index'],\n ['meta', 'innerInstructions', KEYPATH_WILDCARD, 'instructions', KEYPATH_WILDCARD, 'programIdIndex'],\n [\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n 'instructions',\n KEYPATH_WILDCARD,\n 'accounts',\n KEYPATH_WILDCARD,\n ],\n [\n 'transaction',\n 'message',\n 'addressTableLookups',\n KEYPATH_WILDCARD,\n 'writableIndexes',\n KEYPATH_WILDCARD,\n ],\n [\n 'transaction',\n 'message',\n 'addressTableLookups',\n KEYPATH_WILDCARD,\n 'readonlyIndexes',\n KEYPATH_WILDCARD,\n ],\n ['transaction', 'message', 'instructions', KEYPATH_WILDCARD, 'programIdIndex'],\n ['transaction', 'message', 'instructions', KEYPATH_WILDCARD, 'accounts', KEYPATH_WILDCARD],\n ['transaction', 'message', 'header', 'numReadonlySignedAccounts'],\n ['transaction', 'message', 'header', 'numReadonlyUnsignedAccounts'],\n ['transaction', 'message', 'header', 'numRequiredSignatures'],\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ],\n simulateTransaction: jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n };\n }\n return memoizedKeypaths;\n}\n"]}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var rpcSpec = require('@solana/rpc-spec');
|
|
4
|
+
var rpcTransformers = require('@solana/rpc-transformers');
|
|
5
|
+
|
|
6
|
+
// src/index.ts
|
|
7
|
+
function createSolanaRpcApi(config) {
|
|
8
|
+
return rpcSpec.createRpcApi({
|
|
9
|
+
parametersTransformer: rpcTransformers.getDefaultParamsTransformerForSolanaRpc(config),
|
|
10
|
+
responseTransformer: rpcTransformers.getDefaultResponseTransformerForSolanaRpc({
|
|
11
|
+
allowedNumericKeyPaths: getAllowedNumericKeypaths()
|
|
12
|
+
})
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
var memoizedKeypaths;
|
|
16
|
+
function getAllowedNumericKeypaths() {
|
|
17
|
+
if (!memoizedKeypaths) {
|
|
18
|
+
memoizedKeypaths = {
|
|
19
|
+
getAccountInfo: rpcTransformers.jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
|
|
20
|
+
getBlock: [
|
|
21
|
+
["blockTime"],
|
|
22
|
+
["transactions", rpcTransformers.KEYPATH_WILDCARD, "meta", "preTokenBalances", rpcTransformers.KEYPATH_WILDCARD, "accountIndex"],
|
|
23
|
+
[
|
|
24
|
+
"transactions",
|
|
25
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
26
|
+
"meta",
|
|
27
|
+
"preTokenBalances",
|
|
28
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
29
|
+
"uiTokenAmount",
|
|
30
|
+
"decimals"
|
|
31
|
+
],
|
|
32
|
+
["transactions", rpcTransformers.KEYPATH_WILDCARD, "meta", "postTokenBalances", rpcTransformers.KEYPATH_WILDCARD, "accountIndex"],
|
|
33
|
+
[
|
|
34
|
+
"transactions",
|
|
35
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
36
|
+
"meta",
|
|
37
|
+
"postTokenBalances",
|
|
38
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
39
|
+
"uiTokenAmount",
|
|
40
|
+
"decimals"
|
|
41
|
+
],
|
|
42
|
+
["transactions", rpcTransformers.KEYPATH_WILDCARD, "meta", "rewards", rpcTransformers.KEYPATH_WILDCARD, "commission"],
|
|
43
|
+
["transactions", rpcTransformers.KEYPATH_WILDCARD, "meta", "innerInstructions", rpcTransformers.KEYPATH_WILDCARD, "index"],
|
|
44
|
+
[
|
|
45
|
+
"transactions",
|
|
46
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
47
|
+
"meta",
|
|
48
|
+
"innerInstructions",
|
|
49
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
50
|
+
"instructions",
|
|
51
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
52
|
+
"programIdIndex"
|
|
53
|
+
],
|
|
54
|
+
[
|
|
55
|
+
"transactions",
|
|
56
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
57
|
+
"meta",
|
|
58
|
+
"innerInstructions",
|
|
59
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
60
|
+
"instructions",
|
|
61
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
62
|
+
"accounts",
|
|
63
|
+
rpcTransformers.KEYPATH_WILDCARD
|
|
64
|
+
],
|
|
65
|
+
[
|
|
66
|
+
"transactions",
|
|
67
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
68
|
+
"transaction",
|
|
69
|
+
"message",
|
|
70
|
+
"addressTableLookups",
|
|
71
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
72
|
+
"writableIndexes",
|
|
73
|
+
rpcTransformers.KEYPATH_WILDCARD
|
|
74
|
+
],
|
|
75
|
+
[
|
|
76
|
+
"transactions",
|
|
77
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
78
|
+
"transaction",
|
|
79
|
+
"message",
|
|
80
|
+
"addressTableLookups",
|
|
81
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
82
|
+
"readonlyIndexes",
|
|
83
|
+
rpcTransformers.KEYPATH_WILDCARD
|
|
84
|
+
],
|
|
85
|
+
[
|
|
86
|
+
"transactions",
|
|
87
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
88
|
+
"transaction",
|
|
89
|
+
"message",
|
|
90
|
+
"instructions",
|
|
91
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
92
|
+
"programIdIndex"
|
|
93
|
+
],
|
|
94
|
+
[
|
|
95
|
+
"transactions",
|
|
96
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
97
|
+
"transaction",
|
|
98
|
+
"message",
|
|
99
|
+
"instructions",
|
|
100
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
101
|
+
"accounts",
|
|
102
|
+
rpcTransformers.KEYPATH_WILDCARD
|
|
103
|
+
],
|
|
104
|
+
["transactions", rpcTransformers.KEYPATH_WILDCARD, "transaction", "message", "header", "numReadonlySignedAccounts"],
|
|
105
|
+
["transactions", rpcTransformers.KEYPATH_WILDCARD, "transaction", "message", "header", "numReadonlyUnsignedAccounts"],
|
|
106
|
+
["transactions", rpcTransformers.KEYPATH_WILDCARD, "transaction", "message", "header", "numRequiredSignatures"],
|
|
107
|
+
["rewards", rpcTransformers.KEYPATH_WILDCARD, "commission"]
|
|
108
|
+
],
|
|
109
|
+
getBlockTime: [[]],
|
|
110
|
+
getClusterNodes: [
|
|
111
|
+
[rpcTransformers.KEYPATH_WILDCARD, "featureSet"],
|
|
112
|
+
[rpcTransformers.KEYPATH_WILDCARD, "shredVersion"]
|
|
113
|
+
],
|
|
114
|
+
getInflationGovernor: [["initial"], ["foundation"], ["foundationTerm"], ["taper"], ["terminal"]],
|
|
115
|
+
getInflationRate: [["foundation"], ["total"], ["validator"]],
|
|
116
|
+
getInflationReward: [[rpcTransformers.KEYPATH_WILDCARD, "commission"]],
|
|
117
|
+
getMultipleAccounts: rpcTransformers.jsonParsedAccountsConfigs.map((c) => ["value", rpcTransformers.KEYPATH_WILDCARD, ...c]),
|
|
118
|
+
getProgramAccounts: rpcTransformers.jsonParsedAccountsConfigs.flatMap((c) => [
|
|
119
|
+
["value", rpcTransformers.KEYPATH_WILDCARD, "account", ...c],
|
|
120
|
+
[rpcTransformers.KEYPATH_WILDCARD, "account", ...c]
|
|
121
|
+
]),
|
|
122
|
+
getRecentPerformanceSamples: [[rpcTransformers.KEYPATH_WILDCARD, "samplePeriodSecs"]],
|
|
123
|
+
getTokenAccountBalance: [
|
|
124
|
+
["value", "decimals"],
|
|
125
|
+
["value", "uiAmount"]
|
|
126
|
+
],
|
|
127
|
+
getTokenAccountsByDelegate: rpcTransformers.jsonParsedTokenAccountsConfigs.map((c) => [
|
|
128
|
+
"value",
|
|
129
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
130
|
+
"account",
|
|
131
|
+
...c
|
|
132
|
+
]),
|
|
133
|
+
getTokenAccountsByOwner: rpcTransformers.jsonParsedTokenAccountsConfigs.map((c) => [
|
|
134
|
+
"value",
|
|
135
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
136
|
+
"account",
|
|
137
|
+
...c
|
|
138
|
+
]),
|
|
139
|
+
getTokenLargestAccounts: [
|
|
140
|
+
["value", rpcTransformers.KEYPATH_WILDCARD, "decimals"],
|
|
141
|
+
["value", rpcTransformers.KEYPATH_WILDCARD, "uiAmount"]
|
|
142
|
+
],
|
|
143
|
+
getTokenSupply: [
|
|
144
|
+
["value", "decimals"],
|
|
145
|
+
["value", "uiAmount"]
|
|
146
|
+
],
|
|
147
|
+
getTransaction: [
|
|
148
|
+
["meta", "preTokenBalances", rpcTransformers.KEYPATH_WILDCARD, "accountIndex"],
|
|
149
|
+
["meta", "preTokenBalances", rpcTransformers.KEYPATH_WILDCARD, "uiTokenAmount", "decimals"],
|
|
150
|
+
["meta", "postTokenBalances", rpcTransformers.KEYPATH_WILDCARD, "accountIndex"],
|
|
151
|
+
["meta", "postTokenBalances", rpcTransformers.KEYPATH_WILDCARD, "uiTokenAmount", "decimals"],
|
|
152
|
+
["meta", "rewards", rpcTransformers.KEYPATH_WILDCARD, "commission"],
|
|
153
|
+
["meta", "innerInstructions", rpcTransformers.KEYPATH_WILDCARD, "index"],
|
|
154
|
+
["meta", "innerInstructions", rpcTransformers.KEYPATH_WILDCARD, "instructions", rpcTransformers.KEYPATH_WILDCARD, "programIdIndex"],
|
|
155
|
+
[
|
|
156
|
+
"meta",
|
|
157
|
+
"innerInstructions",
|
|
158
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
159
|
+
"instructions",
|
|
160
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
161
|
+
"accounts",
|
|
162
|
+
rpcTransformers.KEYPATH_WILDCARD
|
|
163
|
+
],
|
|
164
|
+
[
|
|
165
|
+
"transaction",
|
|
166
|
+
"message",
|
|
167
|
+
"addressTableLookups",
|
|
168
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
169
|
+
"writableIndexes",
|
|
170
|
+
rpcTransformers.KEYPATH_WILDCARD
|
|
171
|
+
],
|
|
172
|
+
[
|
|
173
|
+
"transaction",
|
|
174
|
+
"message",
|
|
175
|
+
"addressTableLookups",
|
|
176
|
+
rpcTransformers.KEYPATH_WILDCARD,
|
|
177
|
+
"readonlyIndexes",
|
|
178
|
+
rpcTransformers.KEYPATH_WILDCARD
|
|
179
|
+
],
|
|
180
|
+
["transaction", "message", "instructions", rpcTransformers.KEYPATH_WILDCARD, "programIdIndex"],
|
|
181
|
+
["transaction", "message", "instructions", rpcTransformers.KEYPATH_WILDCARD, "accounts", rpcTransformers.KEYPATH_WILDCARD],
|
|
182
|
+
["transaction", "message", "header", "numReadonlySignedAccounts"],
|
|
183
|
+
["transaction", "message", "header", "numReadonlyUnsignedAccounts"],
|
|
184
|
+
["transaction", "message", "header", "numRequiredSignatures"]
|
|
185
|
+
],
|
|
186
|
+
getVersion: [["feature-set"]],
|
|
187
|
+
getVoteAccounts: [
|
|
188
|
+
["current", rpcTransformers.KEYPATH_WILDCARD, "commission"],
|
|
189
|
+
["delinquent", rpcTransformers.KEYPATH_WILDCARD, "commission"]
|
|
190
|
+
],
|
|
191
|
+
simulateTransaction: rpcTransformers.jsonParsedAccountsConfigs.map((c) => ["value", "accounts", rpcTransformers.KEYPATH_WILDCARD, ...c])
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
return memoizedKeypaths;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
exports.createSolanaRpcApi = createSolanaRpcApi;
|
|
198
|
+
//# sourceMappingURL=out.js.map
|
|
199
|
+
//# sourceMappingURL=index.node.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { createRpcApi, RpcApi } from '@solana/rpc-spec';\nimport {\n AllowedNumericKeypaths,\n getDefaultParamsTransformerForSolanaRpc,\n getDefaultResponseTransformerForSolanaRpc,\n jsonParsedAccountsConfigs,\n jsonParsedTokenAccountsConfigs,\n KEYPATH_WILDCARD,\n ParamsTransformerConfig,\n} from '@solana/rpc-transformers';\n\nimport { GetAccountInfoApi } from './getAccountInfo';\nimport { GetBalanceApi } from './getBalance';\nimport { GetBlockApi } from './getBlock';\nimport { GetBlockCommitmentApi } from './getBlockCommitment';\nimport { GetBlockHeightApi } from './getBlockHeight';\nimport { GetBlockProductionApi } from './getBlockProduction';\nimport { GetBlocksApi } from './getBlocks';\nimport { GetBlocksWithLimitApi } from './getBlocksWithLimit';\nimport { GetBlockTimeApi } from './getBlockTime';\nimport { GetClusterNodesApi } from './getClusterNodes';\nimport { GetEpochInfoApi } from './getEpochInfo';\nimport { GetEpochScheduleApi } from './getEpochSchedule';\nimport { GetFeeForMessageApi } from './getFeeForMessage';\nimport { GetFirstAvailableBlockApi } from './getFirstAvailableBlock';\nimport { GetGenesisHashApi } from './getGenesisHash';\nimport { GetHealthApi } from './getHealth';\nimport { GetHighestSnapshotSlotApi } from './getHighestSnapshotSlot';\nimport { GetIdentityApi } from './getIdentity';\nimport { GetInflationGovernorApi } from './getInflationGovernor';\nimport { GetInflationRateApi } from './getInflationRate';\nimport { GetInflationRewardApi } from './getInflationReward';\nimport { GetLargestAccountsApi } from './getLargestAccounts';\nimport { GetLatestBlockhashApi } from './getLatestBlockhash';\nimport { GetLeaderScheduleApi } from './getLeaderSchedule';\nimport { GetMaxRetransmitSlotApi } from './getMaxRetransmitSlot';\nimport { GetMaxShredInsertSlotApi } from './getMaxShredInsertSlot';\nimport { GetMinimumBalanceForRentExemptionApi } from './getMinimumBalanceForRentExemption';\nimport { GetMultipleAccountsApi } from './getMultipleAccounts';\nimport { GetProgramAccountsApi } from './getProgramAccounts';\nimport { GetRecentPerformanceSamplesApi } from './getRecentPerformanceSamples';\nimport { GetRecentPrioritizationFeesApi } from './getRecentPrioritizationFees';\nimport { GetSignaturesForAddressApi } from './getSignaturesForAddress';\nimport { GetSignatureStatusesApi } from './getSignatureStatuses';\nimport { GetSlotApi } from './getSlot';\nimport { GetSlotLeaderApi } from './getSlotLeader';\nimport { GetSlotLeadersApi } from './getSlotLeaders';\nimport { GetStakeActivationApi } from './getStakeActivation';\nimport { GetStakeMinimumDelegationApi } from './getStakeMinimumDelegation';\nimport { GetSupplyApi } from './getSupply';\nimport { GetTokenAccountBalanceApi } from './getTokenAccountBalance';\nimport { GetTokenAccountsByDelegateApi } from './getTokenAccountsByDelegate';\nimport { GetTokenAccountsByOwnerApi } from './getTokenAccountsByOwner';\nimport { GetTokenLargestAccountsApi } from './getTokenLargestAccounts';\nimport { GetTokenSupplyApi } from './getTokenSupply';\nimport { GetTransactionApi } from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetVersionApi } from './getVersion';\nimport { GetVoteAccountsApi } from './getVoteAccounts';\nimport { IsBlockhashValidApi } from './isBlockhashValid';\nimport { MinimumLedgerSlotApi } from './minimumLedgerSlot';\nimport { RequestAirdropApi } from './requestAirdrop';\nimport { SendTransactionApi } from './sendTransaction';\nimport { SimulateTransactionApi } from './simulateTransaction';\n\ntype SolanaRpcApiForAllClusters = GetAccountInfoApi &\n GetBalanceApi &\n GetBlockApi &\n GetBlockCommitmentApi &\n GetBlockHeightApi &\n GetBlockProductionApi &\n GetBlocksApi &\n GetBlocksWithLimitApi &\n GetBlockTimeApi &\n GetClusterNodesApi &\n GetEpochInfoApi &\n GetEpochScheduleApi &\n GetFeeForMessageApi &\n GetFirstAvailableBlockApi &\n GetGenesisHashApi &\n GetHealthApi &\n GetHighestSnapshotSlotApi &\n GetIdentityApi &\n GetInflationGovernorApi &\n GetInflationRateApi &\n GetInflationRewardApi &\n GetLargestAccountsApi &\n GetLatestBlockhashApi &\n GetLeaderScheduleApi &\n GetMaxRetransmitSlotApi &\n GetMaxShredInsertSlotApi &\n GetMinimumBalanceForRentExemptionApi &\n GetMultipleAccountsApi &\n GetProgramAccountsApi &\n GetRecentPerformanceSamplesApi &\n GetRecentPrioritizationFeesApi &\n GetSignaturesForAddressApi &\n GetSignatureStatusesApi &\n GetSlotApi &\n GetSlotLeaderApi &\n GetSlotLeadersApi &\n GetStakeActivationApi &\n GetStakeMinimumDelegationApi &\n GetSupplyApi &\n GetTokenAccountBalanceApi &\n GetTokenAccountsByDelegateApi &\n GetTokenAccountsByOwnerApi &\n GetTokenLargestAccountsApi &\n GetTokenSupplyApi &\n GetTransactionApi &\n GetTransactionCountApi &\n GetVersionApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n SendTransactionApi &\n SimulateTransactionApi;\ntype SolanaRpcApiForTestClusters = SolanaRpcApiForAllClusters & RequestAirdropApi;\nexport type SolanaRpcApi = SolanaRpcApiForTestClusters;\nexport type SolanaRpcApiDevnet = SolanaRpcApiForTestClusters;\nexport type SolanaRpcApiTestnet = SolanaRpcApiForTestClusters;\nexport type SolanaRpcApiMainnet = SolanaRpcApiForAllClusters;\n\nexport type {\n GetAccountInfoApi,\n GetBalanceApi,\n GetBlockApi,\n GetBlockCommitmentApi,\n GetBlockHeightApi,\n GetBlockProductionApi,\n GetBlocksApi,\n GetBlocksWithLimitApi,\n GetBlockTimeApi,\n GetClusterNodesApi,\n GetEpochInfoApi,\n GetEpochScheduleApi,\n GetFeeForMessageApi,\n GetFirstAvailableBlockApi,\n GetGenesisHashApi,\n GetHealthApi,\n GetHighestSnapshotSlotApi,\n GetIdentityApi,\n GetInflationGovernorApi,\n GetInflationRateApi,\n GetInflationRewardApi,\n GetLargestAccountsApi,\n GetLatestBlockhashApi,\n GetLeaderScheduleApi,\n GetMaxRetransmitSlotApi,\n GetMaxShredInsertSlotApi,\n GetMinimumBalanceForRentExemptionApi,\n GetMultipleAccountsApi,\n GetProgramAccountsApi,\n GetRecentPerformanceSamplesApi,\n GetRecentPrioritizationFeesApi,\n GetSignaturesForAddressApi,\n GetSignatureStatusesApi,\n GetSlotApi,\n GetSlotLeaderApi,\n GetSlotLeadersApi,\n GetStakeActivationApi,\n GetStakeMinimumDelegationApi,\n GetSupplyApi,\n GetTokenAccountBalanceApi,\n GetTokenAccountsByDelegateApi,\n GetTokenAccountsByOwnerApi,\n GetTokenLargestAccountsApi,\n GetTokenSupplyApi,\n GetTransactionApi,\n GetTransactionCountApi,\n GetVersionApi,\n GetVoteAccountsApi,\n IsBlockhashValidApi,\n MinimumLedgerSlotApi,\n RequestAirdropApi,\n SendTransactionApi,\n SimulateTransactionApi,\n};\n\ntype Config = ParamsTransformerConfig;\n\nexport function createSolanaRpcApi<\n TRpcMethods extends SolanaRpcApi | SolanaRpcApiDevnet | SolanaRpcApiTestnet | SolanaRpcApiMainnet = SolanaRpcApi,\n>(config?: Config): RpcApi<TRpcMethods> {\n return createRpcApi<TRpcMethods>({\n parametersTransformer: getDefaultParamsTransformerForSolanaRpc(config) as (params: unknown[]) => unknown[],\n responseTransformer: getDefaultResponseTransformerForSolanaRpc({\n allowedNumericKeyPaths: getAllowedNumericKeypaths(),\n }),\n });\n}\n\nlet memoizedKeypaths: AllowedNumericKeypaths<RpcApi<SolanaRpcApi>>;\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<RpcApi<SolanaRpcApi>> {\n if (!memoizedKeypaths) {\n memoizedKeypaths = {\n getAccountInfo: jsonParsedAccountsConfigs.map(c => ['value', ...c]),\n getBlock: [\n ['blockTime'],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'preTokenBalances', KEYPATH_WILDCARD, 'accountIndex'],\n [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'preTokenBalances',\n KEYPATH_WILDCARD,\n 'uiTokenAmount',\n 'decimals',\n ],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'postTokenBalances', KEYPATH_WILDCARD, 'accountIndex'],\n [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'postTokenBalances',\n KEYPATH_WILDCARD,\n 'uiTokenAmount',\n 'decimals',\n ],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ['transactions', KEYPATH_WILDCARD, 'meta', 'innerInstructions', KEYPATH_WILDCARD, 'index'],\n [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n 'instructions',\n KEYPATH_WILDCARD,\n 'programIdIndex',\n ],\n [\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 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'addressTableLookups',\n KEYPATH_WILDCARD,\n 'writableIndexes',\n KEYPATH_WILDCARD,\n ],\n [\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'addressTableLookups',\n KEYPATH_WILDCARD,\n 'readonlyIndexes',\n KEYPATH_WILDCARD,\n ],\n [\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'instructions',\n KEYPATH_WILDCARD,\n 'programIdIndex',\n ],\n [\n 'transactions',\n KEYPATH_WILDCARD,\n 'transaction',\n 'message',\n 'instructions',\n KEYPATH_WILDCARD,\n 'accounts',\n KEYPATH_WILDCARD,\n ],\n ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', 'header', 'numReadonlySignedAccounts'],\n ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', 'header', 'numReadonlyUnsignedAccounts'],\n ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', 'header', 'numRequiredSignatures'],\n ['rewards', KEYPATH_WILDCARD, 'commission'],\n ],\n getBlockTime: [[]],\n getClusterNodes: [\n [KEYPATH_WILDCARD, 'featureSet'],\n [KEYPATH_WILDCARD, 'shredVersion'],\n ],\n getInflationGovernor: [['initial'], ['foundation'], ['foundationTerm'], ['taper'], ['terminal']],\n getInflationRate: [['foundation'], ['total'], ['validator']],\n getInflationReward: [[KEYPATH_WILDCARD, 'commission']],\n getMultipleAccounts: jsonParsedAccountsConfigs.map(c => ['value', KEYPATH_WILDCARD, ...c]),\n getProgramAccounts: jsonParsedAccountsConfigs.flatMap(c => [\n ['value', KEYPATH_WILDCARD, 'account', ...c],\n [KEYPATH_WILDCARD, 'account', ...c],\n ]),\n getRecentPerformanceSamples: [[KEYPATH_WILDCARD, 'samplePeriodSecs']],\n getTokenAccountBalance: [\n ['value', 'decimals'],\n ['value', 'uiAmount'],\n ],\n getTokenAccountsByDelegate: jsonParsedTokenAccountsConfigs.map(c => [\n 'value',\n KEYPATH_WILDCARD,\n 'account',\n ...c,\n ]),\n getTokenAccountsByOwner: jsonParsedTokenAccountsConfigs.map(c => [\n 'value',\n KEYPATH_WILDCARD,\n 'account',\n ...c,\n ]),\n getTokenLargestAccounts: [\n ['value', KEYPATH_WILDCARD, 'decimals'],\n ['value', KEYPATH_WILDCARD, 'uiAmount'],\n ],\n getTokenSupply: [\n ['value', 'decimals'],\n ['value', 'uiAmount'],\n ],\n getTransaction: [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, 'accountIndex'],\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, 'uiTokenAmount', 'decimals'],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, 'accountIndex'],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, 'uiTokenAmount', 'decimals'],\n ['meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ['meta', 'innerInstructions', KEYPATH_WILDCARD, 'index'],\n ['meta', 'innerInstructions', KEYPATH_WILDCARD, 'instructions', KEYPATH_WILDCARD, 'programIdIndex'],\n [\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n 'instructions',\n KEYPATH_WILDCARD,\n 'accounts',\n KEYPATH_WILDCARD,\n ],\n [\n 'transaction',\n 'message',\n 'addressTableLookups',\n KEYPATH_WILDCARD,\n 'writableIndexes',\n KEYPATH_WILDCARD,\n ],\n [\n 'transaction',\n 'message',\n 'addressTableLookups',\n KEYPATH_WILDCARD,\n 'readonlyIndexes',\n KEYPATH_WILDCARD,\n ],\n ['transaction', 'message', 'instructions', KEYPATH_WILDCARD, 'programIdIndex'],\n ['transaction', 'message', 'instructions', KEYPATH_WILDCARD, 'accounts', KEYPATH_WILDCARD],\n ['transaction', 'message', 'header', 'numReadonlySignedAccounts'],\n ['transaction', 'message', 'header', 'numReadonlyUnsignedAccounts'],\n ['transaction', 'message', 'header', 'numRequiredSignatures'],\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ],\n simulateTransaction: jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n };\n }\n return memoizedKeypaths;\n}\n"]}
|