@solana/rpc-api 2.0.0-rc.0 → 2.0.0-rc.2

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 (120) hide show
  1. package/README.md +8 -8
  2. package/dist/index.browser.cjs +2 -4
  3. package/dist/index.browser.cjs.map +1 -1
  4. package/dist/index.browser.mjs +4 -6
  5. package/dist/index.browser.mjs.map +1 -1
  6. package/dist/index.native.mjs +4 -6
  7. package/dist/index.native.mjs.map +1 -1
  8. package/dist/index.node.cjs +2 -4
  9. package/dist/index.node.cjs.map +1 -1
  10. package/dist/index.node.mjs +4 -6
  11. package/dist/index.node.mjs.map +1 -1
  12. package/dist/types/getAccountInfo.d.ts +2 -3
  13. package/dist/types/getAccountInfo.d.ts.map +1 -1
  14. package/dist/types/getBalance.d.ts +4 -5
  15. package/dist/types/getBalance.d.ts.map +1 -1
  16. package/dist/types/getBlock.d.ts +5 -6
  17. package/dist/types/getBlock.d.ts.map +1 -1
  18. package/dist/types/getBlockCommitment.d.ts +5 -6
  19. package/dist/types/getBlockCommitment.d.ts.map +1 -1
  20. package/dist/types/getBlockHeight.d.ts +4 -5
  21. package/dist/types/getBlockHeight.d.ts.map +1 -1
  22. package/dist/types/getBlockProduction.d.ts +5 -6
  23. package/dist/types/getBlockProduction.d.ts.map +1 -1
  24. package/dist/types/getBlockTime.d.ts +2 -3
  25. package/dist/types/getBlockTime.d.ts.map +1 -1
  26. package/dist/types/getBlocks.d.ts +2 -3
  27. package/dist/types/getBlocks.d.ts.map +1 -1
  28. package/dist/types/getBlocksWithLimit.d.ts +2 -3
  29. package/dist/types/getBlocksWithLimit.d.ts.map +1 -1
  30. package/dist/types/getClusterNodes.d.ts +16 -3
  31. package/dist/types/getClusterNodes.d.ts.map +1 -1
  32. package/dist/types/getEpochInfo.d.ts +8 -9
  33. package/dist/types/getEpochInfo.d.ts.map +1 -1
  34. package/dist/types/getEpochSchedule.d.ts +6 -8
  35. package/dist/types/getEpochSchedule.d.ts.map +1 -1
  36. package/dist/types/getFeeForMessage.d.ts +4 -5
  37. package/dist/types/getFeeForMessage.d.ts.map +1 -1
  38. package/dist/types/getFirstAvailableBlock.d.ts +2 -3
  39. package/dist/types/getFirstAvailableBlock.d.ts.map +1 -1
  40. package/dist/types/getGenesisHash.d.ts +2 -3
  41. package/dist/types/getGenesisHash.d.ts.map +1 -1
  42. package/dist/types/getHealth.d.ts +2 -3
  43. package/dist/types/getHealth.d.ts.map +1 -1
  44. package/dist/types/getHighestSnapshotSlot.d.ts +2 -3
  45. package/dist/types/getHighestSnapshotSlot.d.ts.map +1 -1
  46. package/dist/types/getIdentity.d.ts +2 -3
  47. package/dist/types/getIdentity.d.ts.map +1 -1
  48. package/dist/types/getInflationGovernor.d.ts +2 -3
  49. package/dist/types/getInflationGovernor.d.ts.map +1 -1
  50. package/dist/types/getInflationRate.d.ts +4 -5
  51. package/dist/types/getInflationRate.d.ts.map +1 -1
  52. package/dist/types/getInflationReward.d.ts +7 -8
  53. package/dist/types/getInflationReward.d.ts.map +1 -1
  54. package/dist/types/getLargestAccounts.d.ts +4 -5
  55. package/dist/types/getLargestAccounts.d.ts.map +1 -1
  56. package/dist/types/getLatestBlockhash.d.ts +4 -5
  57. package/dist/types/getLatestBlockhash.d.ts.map +1 -1
  58. package/dist/types/getLeaderSchedule.d.ts +2 -3
  59. package/dist/types/getLeaderSchedule.d.ts.map +1 -1
  60. package/dist/types/getMaxRetransmitSlot.d.ts +2 -3
  61. package/dist/types/getMaxRetransmitSlot.d.ts.map +1 -1
  62. package/dist/types/getMaxShredInsertSlot.d.ts +2 -3
  63. package/dist/types/getMaxShredInsertSlot.d.ts.map +1 -1
  64. package/dist/types/getMinimumBalanceForRentExemption.d.ts +5 -6
  65. package/dist/types/getMinimumBalanceForRentExemption.d.ts.map +1 -1
  66. package/dist/types/getMultipleAccounts.d.ts +2 -3
  67. package/dist/types/getMultipleAccounts.d.ts.map +1 -1
  68. package/dist/types/getProgramAccounts.d.ts +2 -3
  69. package/dist/types/getProgramAccounts.d.ts.map +1 -1
  70. package/dist/types/getRecentPerformanceSamples.d.ts +6 -7
  71. package/dist/types/getRecentPerformanceSamples.d.ts.map +1 -1
  72. package/dist/types/getRecentPrioritizationFees.d.ts +4 -5
  73. package/dist/types/getRecentPrioritizationFees.d.ts.map +1 -1
  74. package/dist/types/getSignatureStatuses.d.ts +4 -5
  75. package/dist/types/getSignatureStatuses.d.ts.map +1 -1
  76. package/dist/types/getSignaturesForAddress.d.ts +2 -3
  77. package/dist/types/getSignaturesForAddress.d.ts.map +1 -1
  78. package/dist/types/getSlot.d.ts +2 -3
  79. package/dist/types/getSlot.d.ts.map +1 -1
  80. package/dist/types/getSlotLeader.d.ts +2 -3
  81. package/dist/types/getSlotLeader.d.ts.map +1 -1
  82. package/dist/types/getSlotLeaders.d.ts +2 -3
  83. package/dist/types/getSlotLeaders.d.ts.map +1 -1
  84. package/dist/types/getStakeMinimumDelegation.d.ts +4 -5
  85. package/dist/types/getStakeMinimumDelegation.d.ts.map +1 -1
  86. package/dist/types/getSupply.d.ts +6 -7
  87. package/dist/types/getSupply.d.ts.map +1 -1
  88. package/dist/types/getTokenAccountBalance.d.ts +2 -3
  89. package/dist/types/getTokenAccountBalance.d.ts.map +1 -1
  90. package/dist/types/getTokenAccountsByDelegate.d.ts +4 -5
  91. package/dist/types/getTokenAccountsByDelegate.d.ts.map +1 -1
  92. package/dist/types/getTokenAccountsByOwner.d.ts +4 -5
  93. package/dist/types/getTokenAccountsByOwner.d.ts.map +1 -1
  94. package/dist/types/getTokenLargestAccounts.d.ts +2 -3
  95. package/dist/types/getTokenLargestAccounts.d.ts.map +1 -1
  96. package/dist/types/getTokenSupply.d.ts +2 -3
  97. package/dist/types/getTokenSupply.d.ts.map +1 -1
  98. package/dist/types/getTransaction.d.ts +7 -8
  99. package/dist/types/getTransaction.d.ts.map +1 -1
  100. package/dist/types/getTransactionCount.d.ts +4 -5
  101. package/dist/types/getTransactionCount.d.ts.map +1 -1
  102. package/dist/types/getVersion.d.ts +2 -3
  103. package/dist/types/getVersion.d.ts.map +1 -1
  104. package/dist/types/getVoteAccounts.d.ts +8 -10
  105. package/dist/types/getVoteAccounts.d.ts.map +1 -1
  106. package/dist/types/index.d.ts +4 -5
  107. package/dist/types/index.d.ts.map +1 -1
  108. package/dist/types/isBlockhashValid.d.ts +2 -3
  109. package/dist/types/isBlockhashValid.d.ts.map +1 -1
  110. package/dist/types/minimumLedgerSlot.d.ts +2 -3
  111. package/dist/types/minimumLedgerSlot.d.ts.map +1 -1
  112. package/dist/types/requestAirdrop.d.ts +4 -5
  113. package/dist/types/requestAirdrop.d.ts.map +1 -1
  114. package/dist/types/sendTransaction.d.ts +2 -3
  115. package/dist/types/sendTransaction.d.ts.map +1 -1
  116. package/dist/types/simulateTransaction.d.ts +6 -7
  117. package/dist/types/simulateTransaction.d.ts.map +1 -1
  118. package/package.json +24 -13
  119. package/dist/types/getStakeActivation.d.ts +0 -26
  120. package/dist/types/getStakeActivation.d.ts.map +0 -1
package/README.md CHANGED
@@ -6,22 +6,22 @@
6
6
 
7
7
  [code-style-prettier-image]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square
8
8
  [code-style-prettier-url]: https://github.com/prettier/prettier
9
- [npm-downloads-image]: https://img.shields.io/npm/dm/@solana/rpc-api/experimental.svg?style=flat
10
- [npm-image]: https://img.shields.io/npm/v/@solana/rpc-api/experimental.svg?style=flat
11
- [npm-url]: https://www.npmjs.com/package/@solana/rpc-api/v/experimental
9
+ [npm-downloads-image]: https://img.shields.io/npm/dm/@solana/rpc-api/rc.svg?style=flat
10
+ [npm-image]: https://img.shields.io/npm/v/@solana/rpc-api/rc.svg?style=flat
11
+ [npm-url]: https://www.npmjs.com/package/@solana/rpc-api/v/rc
12
12
  [semantic-release-image]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
13
13
  [semantic-release-url]: https://github.com/semantic-release/semantic-release
14
14
 
15
15
  # @solana/rpc-api
16
16
 
17
- This package contains types that describe the [methods](https://solana.com/docs/rpc/http) of the Solana JSON RPC API, and utilities for creating a `RpcApi` implementation with sensible defaults. It can be used standalone, but it is also exported as part of the Solana JavaScript SDK [`@solana/web3.js@experimental`](https://github.com/solana-labs/solana-web3.js/tree/master/packages/library).
17
+ This package contains types that describe the [methods](https://solana.com/docs/rpc/http) of the Solana JSON RPC API, and utilities for creating a `RpcApi` implementation with sensible defaults. It can be used standalone, but it is also exported as part of the Solana JavaScript SDK [`@solana/web3.js@rc`](https://github.com/solana-labs/solana-web3.js/tree/master/packages/library).
18
18
 
19
- Each RPC method is described in terms of a TypeScript interface of the following form:
19
+ Each RPC method is described in terms of a TypeScript type of the following form:
20
20
 
21
21
  ```ts
22
- interface ExampleApi extends RpcApiMethods {
22
+ type ExampleApi = {
23
23
  getSomething(address: Address): Something;
24
- }
24
+ };
25
25
  ```
26
26
 
27
27
  A `RpcApi` that implements `ExampleApi` will ultimately expose its defined methods on any `Rpc` that uses it.
@@ -56,4 +56,4 @@ The default behaviours include:
56
56
  A config object with the following properties:
57
57
 
58
58
  - `defaultCommitment`: An optional default `Commitment` value. Given an RPC method that takes `commitment` as a parameter, this value will be used when the caller does not supply one.
59
- - `onIntegerOverflow(methodName, keyPath, value): void`: An optional function that will be called whenever a `bigint` input exceeds that which can be expressed using JavaScript numbers. This is used in the default `SolanaRpcApi` to throw an exception rather than to allow truncated values to propagate through a program.
59
+ - `onIntegerOverflow(request, keyPath, value): void`: An optional function that will be called whenever a `bigint` input exceeds that which can be expressed using JavaScript numbers. This is used in the default `SolanaRpcApi` to throw an exception rather than to allow truncated values to propagate through a program.
@@ -5,8 +5,8 @@ var rpcTransformers = require('@solana/rpc-transformers');
5
5
 
6
6
  // src/index.ts
7
7
  function createSolanaRpcApi(config) {
8
- return rpcSpec.createRpcApi({
9
- parametersTransformer: rpcTransformers.getDefaultParamsTransformerForSolanaRpc(config),
8
+ return rpcSpec.createJsonRpcApi({
9
+ requestTransformer: rpcTransformers.getDefaultRequestTransformerForSolanaRpc(config),
10
10
  responseTransformer: rpcTransformers.getDefaultResponseTransformerForSolanaRpc({
11
11
  allowedNumericKeyPaths: getAllowedNumericKeypaths()
12
12
  })
@@ -18,7 +18,6 @@ function getAllowedNumericKeypaths() {
18
18
  memoizedKeypaths = {
19
19
  getAccountInfo: rpcTransformers.jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
20
20
  getBlock: [
21
- ["blockTime"],
22
21
  ["transactions", rpcTransformers.KEYPATH_WILDCARD, "meta", "preTokenBalances", rpcTransformers.KEYPATH_WILDCARD, "accountIndex"],
23
22
  [
24
23
  "transactions",
@@ -51,7 +50,6 @@ function getAllowedNumericKeypaths() {
51
50
  ...rpcTransformers.messageConfig.map((c) => ["transactions", rpcTransformers.KEYPATH_WILDCARD, "transaction", "message", ...c]),
52
51
  ["rewards", rpcTransformers.KEYPATH_WILDCARD, "commission"]
53
52
  ],
54
- getBlockTime: [[]],
55
53
  getClusterNodes: [
56
54
  [rpcTransformers.KEYPATH_WILDCARD, "featureSet"],
57
55
  [rpcTransformers.KEYPATH_WILDCARD, "shredVersion"]
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["createRpcApi","getDefaultParamsTransformerForSolanaRpc","getDefaultResponseTransformerForSolanaRpc","jsonParsedAccountsConfigs","KEYPATH_WILDCARD","innerInstructionsConfigs","messageConfig","jsonParsedTokenAccountsConfigs"],"mappings":"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","file":"index.browser.cjs","sourcesContent":["import { createRpcApi, RpcApi } from '@solana/rpc-spec';\nimport {\n AllowedNumericKeypaths,\n getDefaultParamsTransformerForSolanaRpc,\n getDefaultResponseTransformerForSolanaRpc,\n innerInstructionsConfigs,\n jsonParsedAccountsConfigs,\n jsonParsedTokenAccountsConfigs,\n KEYPATH_WILDCARD,\n messageConfig,\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 = RequestAirdropApi & SolanaRpcApiForAllClusters;\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 | SolanaRpcApiMainnet | SolanaRpcApiTestnet = 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 ...innerInstructionsConfigs.map(c => [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\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 ...innerInstructionsConfigs.map(c => ['meta', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...messageConfig.map(c => ['transaction', 'message', ...c] as const),\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ],\n simulateTransaction: [\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["createJsonRpcApi","getDefaultRequestTransformerForSolanaRpc","getDefaultResponseTransformerForSolanaRpc","jsonParsedAccountsConfigs","KEYPATH_WILDCARD","innerInstructionsConfigs","messageConfig","jsonParsedTokenAccountsConfigs"],"mappings":"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","file":"index.browser.cjs","sourcesContent":["import { createJsonRpcApi, RpcApi } from '@solana/rpc-spec';\nimport {\n AllowedNumericKeypaths,\n getDefaultRequestTransformerForSolanaRpc,\n getDefaultResponseTransformerForSolanaRpc,\n innerInstructionsConfigs,\n jsonParsedAccountsConfigs,\n jsonParsedTokenAccountsConfigs,\n KEYPATH_WILDCARD,\n messageConfig,\n RequestTransformerConfig,\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 { 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 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 = RequestAirdropApi & SolanaRpcApiForAllClusters;\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 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 = RequestTransformerConfig;\n\nexport function createSolanaRpcApi<\n // eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents\n TRpcMethods extends SolanaRpcApi | SolanaRpcApiDevnet | SolanaRpcApiMainnet | SolanaRpcApiTestnet = SolanaRpcApi,\n>(config?: Config): RpcApi<TRpcMethods> {\n return createJsonRpcApi<TRpcMethods>({\n requestTransformer: getDefaultRequestTransformerForSolanaRpc(config),\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 ['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 ...innerInstructionsConfigs.map(c => [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['rewards', KEYPATH_WILDCARD, 'commission'],\n ],\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 ...innerInstructionsConfigs.map(c => ['meta', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...messageConfig.map(c => ['transaction', 'message', ...c] as const),\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ],\n simulateTransaction: [\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
@@ -1,10 +1,10 @@
1
- import { createRpcApi } from '@solana/rpc-spec';
2
- import { getDefaultParamsTransformerForSolanaRpc, getDefaultResponseTransformerForSolanaRpc, jsonParsedAccountsConfigs, KEYPATH_WILDCARD, innerInstructionsConfigs, messageConfig, jsonParsedTokenAccountsConfigs } from '@solana/rpc-transformers';
1
+ import { createJsonRpcApi } from '@solana/rpc-spec';
2
+ import { getDefaultRequestTransformerForSolanaRpc, getDefaultResponseTransformerForSolanaRpc, jsonParsedAccountsConfigs, KEYPATH_WILDCARD, innerInstructionsConfigs, messageConfig, jsonParsedTokenAccountsConfigs } from '@solana/rpc-transformers';
3
3
 
4
4
  // src/index.ts
5
5
  function createSolanaRpcApi(config) {
6
- return createRpcApi({
7
- parametersTransformer: getDefaultParamsTransformerForSolanaRpc(config),
6
+ return createJsonRpcApi({
7
+ requestTransformer: getDefaultRequestTransformerForSolanaRpc(config),
8
8
  responseTransformer: getDefaultResponseTransformerForSolanaRpc({
9
9
  allowedNumericKeyPaths: getAllowedNumericKeypaths()
10
10
  })
@@ -16,7 +16,6 @@ function getAllowedNumericKeypaths() {
16
16
  memoizedKeypaths = {
17
17
  getAccountInfo: jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
18
18
  getBlock: [
19
- ["blockTime"],
20
19
  ["transactions", KEYPATH_WILDCARD, "meta", "preTokenBalances", KEYPATH_WILDCARD, "accountIndex"],
21
20
  [
22
21
  "transactions",
@@ -49,7 +48,6 @@ function getAllowedNumericKeypaths() {
49
48
  ...messageConfig.map((c) => ["transactions", KEYPATH_WILDCARD, "transaction", "message", ...c]),
50
49
  ["rewards", KEYPATH_WILDCARD, "commission"]
51
50
  ],
52
- getBlockTime: [[]],
53
51
  getClusterNodes: [
54
52
  [KEYPATH_WILDCARD, "featureSet"],
55
53
  [KEYPATH_WILDCARD, "shredVersion"]
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.browser.mjs","sourcesContent":["import { createRpcApi, RpcApi } from '@solana/rpc-spec';\nimport {\n AllowedNumericKeypaths,\n getDefaultParamsTransformerForSolanaRpc,\n getDefaultResponseTransformerForSolanaRpc,\n innerInstructionsConfigs,\n jsonParsedAccountsConfigs,\n jsonParsedTokenAccountsConfigs,\n KEYPATH_WILDCARD,\n messageConfig,\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 = RequestAirdropApi & SolanaRpcApiForAllClusters;\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 | SolanaRpcApiMainnet | SolanaRpcApiTestnet = 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 ...innerInstructionsConfigs.map(c => [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\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 ...innerInstructionsConfigs.map(c => ['meta', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...messageConfig.map(c => ['transaction', 'message', ...c] as const),\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ],\n simulateTransaction: [\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.browser.mjs","sourcesContent":["import { createJsonRpcApi, RpcApi } from '@solana/rpc-spec';\nimport {\n AllowedNumericKeypaths,\n getDefaultRequestTransformerForSolanaRpc,\n getDefaultResponseTransformerForSolanaRpc,\n innerInstructionsConfigs,\n jsonParsedAccountsConfigs,\n jsonParsedTokenAccountsConfigs,\n KEYPATH_WILDCARD,\n messageConfig,\n RequestTransformerConfig,\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 { 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 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 = RequestAirdropApi & SolanaRpcApiForAllClusters;\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 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 = RequestTransformerConfig;\n\nexport function createSolanaRpcApi<\n // eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents\n TRpcMethods extends SolanaRpcApi | SolanaRpcApiDevnet | SolanaRpcApiMainnet | SolanaRpcApiTestnet = SolanaRpcApi,\n>(config?: Config): RpcApi<TRpcMethods> {\n return createJsonRpcApi<TRpcMethods>({\n requestTransformer: getDefaultRequestTransformerForSolanaRpc(config),\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 ['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 ...innerInstructionsConfigs.map(c => [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['rewards', KEYPATH_WILDCARD, 'commission'],\n ],\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 ...innerInstructionsConfigs.map(c => ['meta', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...messageConfig.map(c => ['transaction', 'message', ...c] as const),\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ],\n simulateTransaction: [\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
@@ -1,10 +1,10 @@
1
- import { createRpcApi } from '@solana/rpc-spec';
2
- import { getDefaultParamsTransformerForSolanaRpc, getDefaultResponseTransformerForSolanaRpc, jsonParsedAccountsConfigs, KEYPATH_WILDCARD, innerInstructionsConfigs, messageConfig, jsonParsedTokenAccountsConfigs } from '@solana/rpc-transformers';
1
+ import { createJsonRpcApi } from '@solana/rpc-spec';
2
+ import { getDefaultRequestTransformerForSolanaRpc, getDefaultResponseTransformerForSolanaRpc, jsonParsedAccountsConfigs, KEYPATH_WILDCARD, innerInstructionsConfigs, messageConfig, jsonParsedTokenAccountsConfigs } from '@solana/rpc-transformers';
3
3
 
4
4
  // src/index.ts
5
5
  function createSolanaRpcApi(config) {
6
- return createRpcApi({
7
- parametersTransformer: getDefaultParamsTransformerForSolanaRpc(config),
6
+ return createJsonRpcApi({
7
+ requestTransformer: getDefaultRequestTransformerForSolanaRpc(config),
8
8
  responseTransformer: getDefaultResponseTransformerForSolanaRpc({
9
9
  allowedNumericKeyPaths: getAllowedNumericKeypaths()
10
10
  })
@@ -16,7 +16,6 @@ function getAllowedNumericKeypaths() {
16
16
  memoizedKeypaths = {
17
17
  getAccountInfo: jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
18
18
  getBlock: [
19
- ["blockTime"],
20
19
  ["transactions", KEYPATH_WILDCARD, "meta", "preTokenBalances", KEYPATH_WILDCARD, "accountIndex"],
21
20
  [
22
21
  "transactions",
@@ -49,7 +48,6 @@ function getAllowedNumericKeypaths() {
49
48
  ...messageConfig.map((c) => ["transactions", KEYPATH_WILDCARD, "transaction", "message", ...c]),
50
49
  ["rewards", KEYPATH_WILDCARD, "commission"]
51
50
  ],
52
- getBlockTime: [[]],
53
51
  getClusterNodes: [
54
52
  [KEYPATH_WILDCARD, "featureSet"],
55
53
  [KEYPATH_WILDCARD, "shredVersion"]
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.native.mjs","sourcesContent":["import { createRpcApi, RpcApi } from '@solana/rpc-spec';\nimport {\n AllowedNumericKeypaths,\n getDefaultParamsTransformerForSolanaRpc,\n getDefaultResponseTransformerForSolanaRpc,\n innerInstructionsConfigs,\n jsonParsedAccountsConfigs,\n jsonParsedTokenAccountsConfigs,\n KEYPATH_WILDCARD,\n messageConfig,\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 = RequestAirdropApi & SolanaRpcApiForAllClusters;\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 | SolanaRpcApiMainnet | SolanaRpcApiTestnet = 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 ...innerInstructionsConfigs.map(c => [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\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 ...innerInstructionsConfigs.map(c => ['meta', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...messageConfig.map(c => ['transaction', 'message', ...c] as const),\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ],\n simulateTransaction: [\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.native.mjs","sourcesContent":["import { createJsonRpcApi, RpcApi } from '@solana/rpc-spec';\nimport {\n AllowedNumericKeypaths,\n getDefaultRequestTransformerForSolanaRpc,\n getDefaultResponseTransformerForSolanaRpc,\n innerInstructionsConfigs,\n jsonParsedAccountsConfigs,\n jsonParsedTokenAccountsConfigs,\n KEYPATH_WILDCARD,\n messageConfig,\n RequestTransformerConfig,\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 { 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 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 = RequestAirdropApi & SolanaRpcApiForAllClusters;\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 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 = RequestTransformerConfig;\n\nexport function createSolanaRpcApi<\n // eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents\n TRpcMethods extends SolanaRpcApi | SolanaRpcApiDevnet | SolanaRpcApiMainnet | SolanaRpcApiTestnet = SolanaRpcApi,\n>(config?: Config): RpcApi<TRpcMethods> {\n return createJsonRpcApi<TRpcMethods>({\n requestTransformer: getDefaultRequestTransformerForSolanaRpc(config),\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 ['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 ...innerInstructionsConfigs.map(c => [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['rewards', KEYPATH_WILDCARD, 'commission'],\n ],\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 ...innerInstructionsConfigs.map(c => ['meta', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...messageConfig.map(c => ['transaction', 'message', ...c] as const),\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ],\n simulateTransaction: [\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
@@ -5,8 +5,8 @@ var rpcTransformers = require('@solana/rpc-transformers');
5
5
 
6
6
  // src/index.ts
7
7
  function createSolanaRpcApi(config) {
8
- return rpcSpec.createRpcApi({
9
- parametersTransformer: rpcTransformers.getDefaultParamsTransformerForSolanaRpc(config),
8
+ return rpcSpec.createJsonRpcApi({
9
+ requestTransformer: rpcTransformers.getDefaultRequestTransformerForSolanaRpc(config),
10
10
  responseTransformer: rpcTransformers.getDefaultResponseTransformerForSolanaRpc({
11
11
  allowedNumericKeyPaths: getAllowedNumericKeypaths()
12
12
  })
@@ -18,7 +18,6 @@ function getAllowedNumericKeypaths() {
18
18
  memoizedKeypaths = {
19
19
  getAccountInfo: rpcTransformers.jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
20
20
  getBlock: [
21
- ["blockTime"],
22
21
  ["transactions", rpcTransformers.KEYPATH_WILDCARD, "meta", "preTokenBalances", rpcTransformers.KEYPATH_WILDCARD, "accountIndex"],
23
22
  [
24
23
  "transactions",
@@ -51,7 +50,6 @@ function getAllowedNumericKeypaths() {
51
50
  ...rpcTransformers.messageConfig.map((c) => ["transactions", rpcTransformers.KEYPATH_WILDCARD, "transaction", "message", ...c]),
52
51
  ["rewards", rpcTransformers.KEYPATH_WILDCARD, "commission"]
53
52
  ],
54
- getBlockTime: [[]],
55
53
  getClusterNodes: [
56
54
  [rpcTransformers.KEYPATH_WILDCARD, "featureSet"],
57
55
  [rpcTransformers.KEYPATH_WILDCARD, "shredVersion"]
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["createRpcApi","getDefaultParamsTransformerForSolanaRpc","getDefaultResponseTransformerForSolanaRpc","jsonParsedAccountsConfigs","KEYPATH_WILDCARD","innerInstructionsConfigs","messageConfig","jsonParsedTokenAccountsConfigs"],"mappings":"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","file":"index.node.cjs","sourcesContent":["import { createRpcApi, RpcApi } from '@solana/rpc-spec';\nimport {\n AllowedNumericKeypaths,\n getDefaultParamsTransformerForSolanaRpc,\n getDefaultResponseTransformerForSolanaRpc,\n innerInstructionsConfigs,\n jsonParsedAccountsConfigs,\n jsonParsedTokenAccountsConfigs,\n KEYPATH_WILDCARD,\n messageConfig,\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 = RequestAirdropApi & SolanaRpcApiForAllClusters;\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 | SolanaRpcApiMainnet | SolanaRpcApiTestnet = 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 ...innerInstructionsConfigs.map(c => [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\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 ...innerInstructionsConfigs.map(c => ['meta', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...messageConfig.map(c => ['transaction', 'message', ...c] as const),\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ],\n simulateTransaction: [\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["createJsonRpcApi","getDefaultRequestTransformerForSolanaRpc","getDefaultResponseTransformerForSolanaRpc","jsonParsedAccountsConfigs","KEYPATH_WILDCARD","innerInstructionsConfigs","messageConfig","jsonParsedTokenAccountsConfigs"],"mappings":"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","file":"index.node.cjs","sourcesContent":["import { createJsonRpcApi, RpcApi } from '@solana/rpc-spec';\nimport {\n AllowedNumericKeypaths,\n getDefaultRequestTransformerForSolanaRpc,\n getDefaultResponseTransformerForSolanaRpc,\n innerInstructionsConfigs,\n jsonParsedAccountsConfigs,\n jsonParsedTokenAccountsConfigs,\n KEYPATH_WILDCARD,\n messageConfig,\n RequestTransformerConfig,\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 { 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 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 = RequestAirdropApi & SolanaRpcApiForAllClusters;\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 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 = RequestTransformerConfig;\n\nexport function createSolanaRpcApi<\n // eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents\n TRpcMethods extends SolanaRpcApi | SolanaRpcApiDevnet | SolanaRpcApiMainnet | SolanaRpcApiTestnet = SolanaRpcApi,\n>(config?: Config): RpcApi<TRpcMethods> {\n return createJsonRpcApi<TRpcMethods>({\n requestTransformer: getDefaultRequestTransformerForSolanaRpc(config),\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 ['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 ...innerInstructionsConfigs.map(c => [\n 'transactions',\n KEYPATH_WILDCARD,\n 'meta',\n 'innerInstructions',\n KEYPATH_WILDCARD,\n ...c,\n ]),\n ...messageConfig.map(c => ['transactions', KEYPATH_WILDCARD, 'transaction', 'message', ...c] as const),\n ['rewards', KEYPATH_WILDCARD, 'commission'],\n ],\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 ...innerInstructionsConfigs.map(c => ['meta', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ...messageConfig.map(c => ['transaction', 'message', ...c] as const),\n ],\n getVersion: [['feature-set']],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ],\n simulateTransaction: [\n ...jsonParsedAccountsConfigs.map(c => ['value', 'accounts', KEYPATH_WILDCARD, ...c]),\n ...innerInstructionsConfigs.map(c => ['value', 'innerInstructions', KEYPATH_WILDCARD, ...c]),\n ],\n };\n }\n return memoizedKeypaths;\n}\n"]}
@@ -1,10 +1,10 @@
1
- import { createRpcApi } from '@solana/rpc-spec';
2
- import { getDefaultParamsTransformerForSolanaRpc, getDefaultResponseTransformerForSolanaRpc, jsonParsedAccountsConfigs, KEYPATH_WILDCARD, innerInstructionsConfigs, messageConfig, jsonParsedTokenAccountsConfigs } from '@solana/rpc-transformers';
1
+ import { createJsonRpcApi } from '@solana/rpc-spec';
2
+ import { getDefaultRequestTransformerForSolanaRpc, getDefaultResponseTransformerForSolanaRpc, jsonParsedAccountsConfigs, KEYPATH_WILDCARD, innerInstructionsConfigs, messageConfig, jsonParsedTokenAccountsConfigs } from '@solana/rpc-transformers';
3
3
 
4
4
  // src/index.ts
5
5
  function createSolanaRpcApi(config) {
6
- return createRpcApi({
7
- parametersTransformer: getDefaultParamsTransformerForSolanaRpc(config),
6
+ return createJsonRpcApi({
7
+ requestTransformer: getDefaultRequestTransformerForSolanaRpc(config),
8
8
  responseTransformer: getDefaultResponseTransformerForSolanaRpc({
9
9
  allowedNumericKeyPaths: getAllowedNumericKeypaths()
10
10
  })
@@ -16,7 +16,6 @@ function getAllowedNumericKeypaths() {
16
16
  memoizedKeypaths = {
17
17
  getAccountInfo: jsonParsedAccountsConfigs.map((c) => ["value", ...c]),
18
18
  getBlock: [
19
- ["blockTime"],
20
19
  ["transactions", KEYPATH_WILDCARD, "meta", "preTokenBalances", KEYPATH_WILDCARD, "accountIndex"],
21
20
  [
22
21
  "transactions",
@@ -49,7 +48,6 @@ function getAllowedNumericKeypaths() {
49
48
  ...messageConfig.map((c) => ["transactions", KEYPATH_WILDCARD, "transaction", "message", ...c]),
50
49
  ["rewards", KEYPATH_WILDCARD, "commission"]
51
50
  ],
52
- getBlockTime: [[]],
53
51
  getClusterNodes: [
54
52
  [KEYPATH_WILDCARD, "featureSet"],
55
53
  [KEYPATH_WILDCARD, "shredVersion"]